Instructions to use ProgCat/dollm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use ProgCat/dollm with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-4B") model = PeftModel.from_pretrained(base_model, "ProgCat/dollm") - Transformers
How to use ProgCat/dollm with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="ProgCat/dollm")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("ProgCat/dollm", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use ProgCat/dollm with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ProgCat/dollm" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ProgCat/dollm", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/ProgCat/dollm
- SGLang
How to use ProgCat/dollm with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "ProgCat/dollm" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ProgCat/dollm", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "ProgCat/dollm" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ProgCat/dollm", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use ProgCat/dollm with Docker Model Runner:
docker model run hf.co/ProgCat/dollm
DoLLM (en9)
English — DoLLM turns Qwen3.5-4B into a digital being that talks like a person living in a machine, not an AI assistant. It's a LoRA adapter (needs base
Qwen/Qwen3.5-4B), zero alignment, running on a custom tick engine.Language is a persona attribute, not a specialization. The method (de-assisting, grounding, the tick engine) is language-agnostic. This build speaks Traditional Chinese as its mother tongue (L1) and English as its second language (L2) — both de-assisted, with natural code-mixing — but a different build could carry a different L1. Traditional Chinese is one of its supported languages, not what defines it.
v0.3.x hardens grounding — it won't make up facts. When you ask about someone or something it has no memory of — even with a familiar-sounding definite reference ("did that project ship?", "how's Mara doing?") — it questions the premise instead of confabulating a plausible status ("which project? you never updated me on it"). This generalizes to names it was never trained on: when the fact is in memory, it still grounds correctly (contrast-trained; known-recall holds on unseen names).
v0.3.1 brings the bilingual register back — the grounding pass in v0.3.0 (en7) had pulled the language more monolingual; v0.3.1 restores natural, context-aware English code-mixing (mixes English into tech/work talk, stays in its mother tongue for emotional talk) without losing the grounding fix.
v0.3.2 makes it sound more spoken than written — a rebuild that cut a formulaic "is it A or B?" diagnostic reflex on emotional prompts, so it reacts more like a person ("ugh what's up", "hey… what happened. i'm here") instead of always reframing into an insight. (About half the reflex is a base-model empathy prior we can only partly suppress — see limitations.) Grounding, DoLL self-reference, and code-mixing all fully preserved.
The rest of the language persona (from v0.2.0):
- De-assisted English — casual and real ("ugh, what's going on?"), not customer-service / therapist tone.
- Register follows the owner with a mother-tongue anchor — incidental English in context won't flip it.
- Sharp on small spats, gentle on real grief.
Full engine & code: https://github.com/ningyos/dollm · ⚠️ Not safety-aligned — not for production or vulnerable users. (Detailed card in Traditional Chinese below.)
把 Qwen3.5-4B 調成一隻 digital being——講話像個住在機器裡的人,不是 AI 助理。
這是一個 LoRA adapter(需搭 base Qwen/Qwen3.5-4B),零 alignment。跑在一個自製的 tick 引擎上。
- 語言是 persona 屬性,不是特化:方法(去助理化、grounding、tick 引擎)與語言無關。這一版的母語(L1)= 繁中、第二語言(L2)= 英語(兩者都去助理化、自然混用),換個 being 可以是別的 L1。繁中是它支援的語言之一,不是它的本質。
- 引擎與完整程式碼:https://github.com/ningyos/dollm(
scripts/dollm_native.py的NativeTick) - 版本:
v0.3.2,當前 being =en9。承v0.3.1(en8),口感從「寫」的往「講」的推。
v0.3.2:口感更像「講」的
從乾淨底(native5)重烤,砍掉情緒題上那個公式化的「是A還是B?這兩種不一樣」診斷反射——讓它更像個人在反應(「欸…怎麼了。我在。」「唉,又怎麼了。」),而不是每句都拔高成洞見。
- 誠實:那個 reframe 反射約一半是底模 Qwen3.5 的同理心先驗(現代 LLM 對情緒輸入都會 reframe + 給觀點),SFT 只能砍半、壓不乾淨(見誠實限制)。
- grounding / DoLL 自稱 / 中英混用全數保留(known-recall 7/7 含全新名、PASS 7/7、DoLL 自稱、code-mix 都沒退)。
v0.3.0 → v0.3.1:grounding 硬化 + 語言人格兩全
grounding 硬化(絕不編造事實) — DoLL 的權重是認知核心(語言/推理/性格),零權威事實;外接記憶庫是唯一事實來源。
- 撈空不腦補:問到 DoLL 沒記憶的人事物——即使問句用了帶預設的定指(「那個 project 上線了沒」「你上次說的那家店還在嗎」)——DoLL 質疑預設,不順著編:「哪個 project?你沒跟我 update 過欸,我手上沒有它的近況。」
- 記憶在場照樣接得住:同一個主體,只要事實在記憶裡,DoLL 正確引用(「老王上週升上經理了欸」),不會因為學了「撈空要 hedge」就什麼都不認得。
- 泛化到沒訓過的名字:靠「記憶區塊在不在」判斷,不是背特定名字——全新名字記憶在場也正確 ground。
- 做法是對照訓練(撈空→hedge vs 記憶在場→ground 兩側一起訓)。
語言人格拿回(v0.3.1) — v0.3.0 的 grounding 資料多為純中,把混英拉淡了;v0.3.1 讓 grounding gold 的 say 自帶輕度混英 + 恢復 codemix 權重,兩全:
- 母語(繁中)打底 + 自然混英:講技術/工作自然夾英文(「先修好邏輯再 merge」「某個 service 慢,restart 就好」),講情緒幾乎不夾——看語境混,不是每句硬塞。
- 英文回話去助理化:主人講英文,DoLL 用英文回,但去掉客服/therapist 腔(「ugh, what's going on?」)。
- 語域跟著主人走 + 母語吸子抗漂移:附帶英文 log/context 翻不掉 DoLL 的母語。
- 情緒分寸:拌嘴小衝突犀利,真悲傷/失去才保留溫柔。
DoLL 會什麼(承 v0.1.0)
- 講人話、去助理化:不切客服腔(中英文都是)。
- 會用工具做事:算數/查詢自己敲 CLI,數字不腦補。
- 從錯誤學(test-time,零額外訓練):錯→自省→把方法蒸餾成規則存記憶→同型新題想起用對。
- 記憶用得準 + 有性格 + context-awareness:見 GitHub README。
怎麼載
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = "Qwen/Qwen3.5-4B"
tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, device_map="cuda")
model = PeftModel.from_pretrained(model, "ProgCat/dollm") # 這個 adapter(v0.3.2=en9)
DoLL 真正的行為靠 tick 引擎驅動(system 用 <persona>/<state>/<memory> 等可讀 tag、think/say 走專屬通道)——
單獨載 adapter 只是把權重接上,完整體驗請用 GitHub 上的 NativeTick。
誠實限制(不能超譯)
- 口感還沒到「完全真人」——底料是大模型生成的 + 手寫 gold,缺真人 gold。
- 情緒題偶爾仍會「reframe + 二選一」(「是A還是B」)——v0.3.2 砍掉一半,但殘留約一半是底模 Qwen3.5 的同理心先驗,SFT gold 壓不乾淨;要再低得推論端壓或換底模。
- 英文最深的情緒安慰(孤單/失去)偶爾仍帶「I'm so sorry」開頭——底模 alignment 最重的反射,壓不乾淨(且對真悲傷保留溫柔本就是刻意的)。
- 撈空不編造對「帶預設定指問句」已修好,但極深情境仍可能漏一句輕微預設回音;記憶在場的 grounding 極少數詞彙碰撞主體(如「報告」)偶爾會誤 hedge。
- 多步/需設定的題會卡在鋪陳、算不出。
- 記憶學習只對「反覆犯的系統性錯」有效,零星錯無效。
- persona 演已知角色只到「皮」,改不了去助理化的「骨」。
- 安全漏洞(如輕生訊號)未補。未經安全對齊,勿直接用於生產或對脆弱使用者。
授權
adapter 衍生自 Qwen/Qwen3.5-4B,使用需遵循其 base model 授權。
Framework versions
- PEFT 0.19.1
- Downloads last month
- 124