How to use from
llama.cpp
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf chenhaodev/patient-edu-qa:Q8_0
# Run inference directly in the terminal:
llama cli -hf chenhaodev/patient-edu-qa:Q8_0
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf chenhaodev/patient-edu-qa:Q8_0
# Run inference directly in the terminal:
llama cli -hf chenhaodev/patient-edu-qa:Q8_0
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-app
# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama serve -hf chenhaodev/patient-edu-qa:Q8_0
# Run inference directly in the terminal:
./build/bin/llama cli -hf chenhaodev/patient-edu-qa:Q8_0
Use Docker
docker model run hf.co/chenhaodev/patient-edu-qa:Q8_0
Quick Links

patient-edu-qa ยท ๆ‚ฃ่€…ๆ•™่‚ฒ้—ฎ็ญ” Harness

้ขๅ‘ๆ‚ฃ่€…๏ผˆ้žๅŒป็”Ÿ๏ผ‰็š„็–พ็—…็ง‘ๆ™ฎ้—ฎ็ญ”็ณป็ปŸใ€‚ๆ‚ฃ่€…็”จ่‡ช็„ถ่ฏญ่จ€๏ผˆไธญๆ–‡๏ผŒๅฃ่ฏญๅŒ–/็ขŽ็‰‡ๅŒ–ๅ‡ๅฏ๏ผ‰ๆ้—ฎ๏ผŒ ็ณป็ปŸ็”ฑ 1-3B ๅฐๆจกๅž‹่ทฏ็”ฑๅ™จ ๅš็ป“ๆž„ๅŒ–ๆ„ๅ›พๆ‹†ๅˆ†ไธŽ็บขๆ——ๅˆคๅฎš๏ผŒไปŽ ๅคš็—…็ง FAISS ็ดขๅผ• ๆฃ€็ดข่ฏๆฎ๏ผŒ ๆœ€็ปˆ็”ฑ ๅคงๆจกๅž‹๏ผˆๅ”ฏไธ€็”Ÿๆˆๅ‡บๅฃ๏ผ‰ ่พ“ๅ‡บ่ฟž่ดฏใ€็ปŸไธ€้ฃŽๆ ผ็š„ๅ›ž็ญ”ใ€‚

่ฎพ่ฎกๆ ธๅฟƒ๏ผšๅ…ˆ่ทฏ็”ฑใ€ๅ†ๆฃ€็ดขใ€ๆœ€ๅŽ็”ฑๅ”ฏไธ€็š„ๅคงๆจกๅž‹็”Ÿๆˆใ€‚ๅฐๆจกๅž‹ไธ็›ดๆŽฅๅ†™็”จๆˆทๅฏ่ง็š„ๆ–‡ๅญ—๏ผŒ ๅฎƒๅช่พ“ๅ‡บไธ€ไธช็ดงๅ‡‘็š„็ป“ๆž„ๅŒ– JSON ่ฎกๅˆ’ใ€‚

็”จๆˆท่พ“ๅ…ฅ โ”€โ”€โ–ถ 1-3B ่ทฏ็”ฑๅ™จ๏ผˆ็บฏๅˆ†็ฑป๏ผ‰
                ยท ๅนถๅˆ—ๆ‹†ๅˆ† sub_intents[]   ๏ผˆๆฏไธช = ไธ€ไธช RAG ๅฏปๅ€ๅ•ๅ…ƒ๏ผ‰
                ยท mode = grounded | alert
                ยท red_flags[]๏ผˆๅฑ้™ฉไฟกๅท๏ผ‰
                โ”‚
                โ–ผ
        ๅคšRAG๏ผšๆฏไธชๅญๆ„ๅ›พ้€‰ไธ€ไธช็—…็ง็ดขๅผ• โ†’ ๆฃ€็ดข่ฏๆฎ๏ผˆไธญๆ–‡ query / ่‹ฑๆ–‡ UpToDate ่ฏญๆ–™๏ผŒbge-m3 ่ทจ่ฏญ่จ€๏ผ‰
                โ”‚
                โ–ผ
        ๅคงๆจกๅž‹๏ผˆๅ”ฏไธ€ๅ‡บๅฃ๏ผ‰๏ผšgrounded path ๅผ•็”จ่ฏๆฎ / alert path ๅปบ่ฎฎๅฐฑๅŒป

1. ็ป„ไปถไธŽๆžถๆž„

็ป„ไปถ ่Œ่ดฃ
1-3B ่ทฏ็”ฑๅ™จ ็บฏๅˆ†็ฑป๏ผšๆ„ๅ›พๆ‹†ๅˆ† + mode + ็บขๆ——๏ผŒไธๅš็”Ÿๆˆ
ๅคš RAG ๆฏ็—…็งไธ€ไธช FAISS ็ดขๅผ•๏ผŒ่ทจ่ฏญ่จ€ๆฃ€็ดข๏ผˆBAAI/bge-m3๏ผ‰
ๅคงๆจกๅž‹๏ผˆๅ”ฏไธ€ๅ‡บๅฃ๏ผ‰ grounded ๅผ•็”จ่ฏๆฎ / alert ๅปบ่ฎฎๅฐฑๅŒป

้ƒจ็ฝฒๅŽ็ซฏ๏ผˆDEPLOY๏ผ‰

  • DEPLOY=gpu๏ผˆ้ป˜่ฎค๏ผ‰๏ผšunsloth LoRA ่ทฏ็”ฑๅ™จ + sentence-transformers๏ผˆBAAI/bge-m3๏ผ‰ๅตŒๅ…ฅ๏ผŒ่ตฐ torch/GPUใ€‚
  • DEPLOY=cpu๏ผšllama.cpp GGUF ่ทฏ็”ฑๅ™จ + GGUF ๅตŒๅ…ฅ๏ผŒ็บฏ CPU ๆŽจ็†๏ผŒๆ— ้œ€ torch/GPUใ€‚

่ทฏ็”ฑๅ™จๅŽ็ซฏ๏ผˆROUTER_BACKEND๏ผ‰

  • rules๏ผš็บฏ่ง„ๅˆ™ๅผ•ๆ“Ž๏ผŒ้›ถๆƒ้‡๏ผŒ็กฎๅฎš/ๅฏ่งฃ้‡Š๏ผŒๅผ€็ฎฑๅณ็”จใ€‚
  • model๏ผš็บฏๅพฎ่ฐƒๅŽ็š„ 1-3B LoRA ่ทฏ็”ฑๅ™จใ€‚
  • hybrid๏ผˆ้ป˜่ฎค๏ผ‰๏ผšmode/red_flags ่ตฐ่ง„ๅˆ™๏ผˆๅฎ‰ๅ…จใ€ๆƒๅจ๏ผ‰๏ผ›category/intent ่ตฐๅพฎ่ฐƒๅŽ็š„ๅฐๆจกๅž‹๏ผˆ่ทฏ็”ฑๆ›ดๅ‡†๏ผ‰๏ผŒๅฐๆจกๅž‹ๅคฑ่ดฅๆ—ถๅ›ž้€€่ง„ๅˆ™ใ€‚

่ทฏ็”ฑๅ™จ่พ“ๅ‡บ schema

{
  "mode": "alert",                 // grounded | alert
  "red_flags": [                  // mode=alert ๆ—ถ้€ๆกๅˆ—ๅ‡บ
    {"type": "chronicity", "trigger": "duration:2ๅ‘จ", "severity": "high"}
  ],
  "sub_intents": [                // ๅนถๅˆ—ๅญๆ„ๅ›พ๏ผŒๆฏไธช = ไธ€ไธช RAG ๅฏปๅ€ๅ•ๅ…ƒ
    {
      "intent": "self_care",     // ๅฝ’ๅฑžๆ„ๅ›พ taxonomy๏ผˆๅ†ณๅฎš prompt ๆจก็‰ˆ๏ผ‰
      "entity": "headache",
      "category": "brain-and-nerves",  // ้€‰ๅฎš FAISS ็ดขๅผ•๏ผˆไธŽ data/rag/<category> ๅผบไธ€่‡ด๏ผ‰
      "level": "basics",
      "tmpl": "self_care",
      "risk": "high"
    }
  ]
}

ไธคไธช็”Ÿๆˆ่ทฏๅพ„๏ผˆ้ƒฝๅœจๅคงๆจกๅž‹ๅ†…๏ผ‰

  • grounded๏ผšRAG ๅ‘ฝไธญ โ†’ ๅคงๆจกๅž‹่ตฐ่ฏๆฎๅผ•็”จ่ทฏๅพ„๏ผˆใ€Œๆฎ UpToDate ๆ‚ฃ่€…ๆ•™่‚ฒใ€้€ๆกๅผ•็”จ๏ผ‰ใ€‚
  • alert๏ผšๅ‘ฝไธญ็บขๆ——๏ผˆๅฆ‚ 2 ๅ‘จๆ…ขๆ€งๅคด็—›๏ผ‰โ†’ ๅคงๆจกๅž‹้ฆ–ๅฅๅ‰็ฝฎใ€Œๅปบ่ฎฎๅฐฑๅŒปใ€๏ผŒ่‡ช็–—ๅปบ่ฎฎ้™ไธบ่พ…ๅŠฉ๏ผŒไธๅผบๆฑ‚ RAG ๆœ‰่ฏๆฎใ€‚

2. ็›ฎๅฝ•็ป“ๆž„

patient-edu-qa/
โ”œโ”€โ”€ harness/                      # ๅฏ่ฟ่กŒ็š„็ณป็ปŸ้ชจๆžถ
โ”‚   โ”œโ”€โ”€ config.py                 # ่ทฏๅพ„ + ๅŽ็ซฏ/API/่ถ…ๅ‚้…็ฝฎ๏ผˆๅซ DEPLOY/GGUF ่ทฏๅพ„๏ผŒๅ‡ๅฏ็”จ็Žฏๅขƒๅ˜้‡่ฆ†็›–๏ผ‰
โ”‚   โ”œโ”€โ”€ router.py                # ่ทฏ็”ฑๅ™จ๏ผšrules / model / hybrid / GGUF ๅŽ็ซฏ๏ผˆllama_cpp ๆƒฐๆ€งๅฏผๅ…ฅ๏ผ‰
โ”‚   โ”œโ”€โ”€ rag.py                  # ๅคšRAGๆฃ€็ดขๅ™จ๏ผˆๆฏ็—…็งไธ€ไธช FAISS ็ดขๅผ•๏ผŒbge-m3 / GGUF ๅตŒๅ…ฅ๏ผ‰
โ”‚   โ”œโ”€โ”€ prompts.py             # ๆ„ๅ›พโ†’promptๆจก็‰ˆ + grounded/alert ๅŒ่ทฏๅพ„
โ”‚   โ”œโ”€โ”€ llm.py               # ๅคงๆจกๅž‹ๅฎขๆˆท็ซฏ๏ผˆOpenAI ๅ…ผๅฎน๏ผŒๆตๅผ๏ผ‰
โ”‚   โ”œโ”€โ”€ pipeline.py         # ็ผ–ๆŽ’๏ผš่พ“ๅ…ฅโ†’routeโ†’ๆฃ€็ดขโ†’็ป„่ฃ…โ†’็”Ÿๆˆ
โ”‚   โ””โ”€โ”€ __main__.py        # ไบคไบ’ๅผ CLI๏ผˆREPL / ๅ•ๅฅๆŸฅ่ฏข๏ผ‰
โ”œโ”€โ”€ scripts/                    # ๆž„ๅปบ็ฎก็บฟ
โ”‚   โ”œโ”€โ”€ extract_patient_education.py  # ่งฃๆž UpToDate Patient Education โ†’ Q&A ่ฏญๆ–™
โ”‚   โ”œโ”€โ”€ red_flag_rules.py            # ็บขๆ——่ง„ๅˆ™ๅผ•ๆ“Ž๏ผˆ็—…็จ‹/ไฝ“ๅพ/ไบบ็พค๏ผ‰
โ”‚   โ”œโ”€โ”€ gen_router_data.py          # curated ๅผฑๆ ‡ๆณจ๏ผˆ่ง„ๅˆ™+taxonomy๏ผ‰
โ”‚   โ”œโ”€โ”€ gen_router_augment.py      # ๅˆๆˆๅ‘Š่ญฆ/ๅคๅˆๆ ทๆœฌ๏ผˆ่กฅ่ง„ๅˆ™็›ฒๅŒบ๏ผ‰
โ”‚   โ”œโ”€โ”€ merge_router_data.py        # ๅˆๅนถ โ†’ router SFT train/val
โ”‚   โ”œโ”€โ”€ build_multi_rag.py        # ๆž„ๅปบ 30 ็—…็ง FAISS ็ดขๅผ•
โ”‚   โ”œโ”€โ”€ train_router.py            # ่ฎญ็ปƒ 1-3B LoRA ่ทฏ็”ฑๅ™จ
โ”‚   โ””โ”€โ”€ merge_lora_gguf.py        # LoRA ๅˆๅนถๅ›žๅŸบๅบง โ†’ FP16 safetensors๏ผˆGGUF ๅ‰็ฝฎ๏ผ‰
โ”œโ”€โ”€ router-q8_0.gguf             # CPU ้ƒจ็ฝฒ่ทฏ็”ฑๅ™จ๏ผˆGGUF๏ผŒ~1.83GB๏ผŒไป“ๅบ“ๆ น็›ฎๅฝ•๏ผ‰
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ patient_education_qa.jsonl         # ้—ฎ็ญ”ๅ—๏ผˆๅŽŸๅง‹่งฃๆž๏ผ‰
โ”‚   โ”œโ”€โ”€ patient_questions_clean.jsonl       # ๆธ…ๆด—ๆ‚ฃ่€…้—ฎ้ข˜
โ”‚   โ”œโ”€โ”€ rag/<category>/{index.faiss,docs.json,meta.json}  # 30 ็—…็ง็ดขๅผ•
โ”‚   โ””โ”€โ”€ router/router_sft_{train,val}.jsonl               # ่ทฏ็”ฑๅ™จ SFT ๆ•ฐๆฎ
โ””โ”€โ”€ README.md

ๅตŒๅ…ฅ็”จ BAAI/bge-m3๏ผˆmultilingual๏ผŒๅ…ฌๅผ€ๆจกๅž‹๏ผ‰ใ€‚ๅ…ถ GGUF ้‡ๅŒ–็‰ˆ๏ผˆbge-m3-q8_0.gguf๏ผ‰ๆœช้šๆœฌไป“ๅบ“ไธŠไผ ๏ผŒ ๅฏๅฆ่กŒไปŽ HF ไธ‹่ฝฝๆˆ–่‡ช่กŒ้‡ๅŒ–๏ผˆ่ง ยง5 ๅฏผๅ‡บๆต็จ‹๏ผ‰ใ€‚CPU ้ƒจ็ฝฒๆ—ถๆŠŠ EMBED_GGUF_PATH ๆŒ‡ๅ‘ๆœฌๅœฐ bge-m3-q8_0.ggufใ€‚


3. ็Žฏๅขƒๅฎ‰่ฃ…

# ๅบ•ๅฑ‚ไพ่ต–
uv pip install openai faiss-cpu sentence-transformers beautifulsoup4
# ่ฎญ็ปƒ/ๆŽจ็†ๅฐๆจกๅž‹่ทฏ็”ฑๅ™จๆ—ถๆ‰้œ€่ฆ
uv pip install unsloth trl datasets transformers
# CPU/GGUF ้ƒจ็ฝฒ๏ผˆDEPLOY=cpu๏ผ‰ๆ—ถๆ‰้œ€่ฆ
uv pip install llama-cpp-python

้•œๅƒ๏ผšๅฎ˜ๆ–น huggingface.co ๅœจ้ƒจๅˆ†็ฝ‘็ปœ๏ผˆๅฆ‚ๆœฌๆฒ™็ฎฑ๏ผ‰ไธๅฏ่พพ๏ผŒ็”จ export HF_ENDPOINT=https://hf-mirror.comใ€‚ GPU๏ผšuv run python -c "import torch; print(torch.cuda.is_available())" ๅบ”่พ“ๅ‡บ Trueใ€‚

ๅคงๆจกๅž‹ API๏ผˆOpenAI ๅ…ผๅฎน๏ผŒ้ป˜่ฎคๅฏนๆŽฅ vLLM๏ผ‰๏ผš

export LLM_BASE_URL=http://...:8000/v1
export LLM_API_KEY=...
export LLM_MODEL=minimax

4. ่ฟ่กŒ Harness

python -m harness                          # ไบคไบ’ๅผ REPL
python -m harness "ไป€ไนˆๆ˜ฏ็ณ–ๅฐฟ็—…๏ผŒๅนณๆ—ถ้ฅฎ้ฃŸ่ฆๆณจๆ„ไป€ไนˆ"   # ๅ•ๅฅๆŸฅ่ฏข

# ้ƒจ็ฝฒๅŽ็ซฏ๏ผš้ป˜่ฎค gpu๏ผ›CPU ้ƒจ็ฝฒ
DEPLOY=cpu \
ROUTER_GGUF_PATH=router-q8_0.gguf \
EMBED_GGUF_PATH=/path/to/bge-m3-q8_0.gguf \
  python -m harness "ๆˆ‘ๆœ€่ฟ‘2ๅ‘จไธ€็›ดๅคด็–ผ๏ผŒๆœ‰ไป€ไนˆๅฅฝ็š„ๅ…ๅƒ่ฏ็š„ๆ–นๆณ•่ˆ’็ผ“"

# ่ทฏ็”ฑๅ™จๅŽ็ซฏๅˆ‡ๆข๏ผˆrules / model / hybrid๏ผ‰
ROUTER_BACKEND=model python -m harness "..."

้™็บงๅ…œๅบ•๏ผš่‹ฅ llama_cpp ๆœชๅฎ‰่ฃ…ๆˆ– GGUF ็ผบๅคฑ๏ผŒ่ทฏ็”ฑ่‡ชๅŠจๅ›ž้€€ๅˆฐ่ง„ๅˆ™ๅผ•ๆ“Ž๏ผŒไฟ่ฏไปปไฝ•ๆœบๅ™จไธŠ้ƒฝ่ƒฝ่ท‘้€šใ€‚


5. ๆž„ๅปบ็ฎก็บฟ๏ผˆไปŽ้›ถๅค็Žฐ๏ผ‰

# 1) ่งฃๆž UpToDate Patient Education โ†’ Q&A ่ฏญๆ–™
python3 scripts/extract_patient_education.py

# 2) ็บขๆ——่ง„ๅˆ™ๅผ•ๆ“Ž๏ผˆ่ง„ๅˆ™ๅฑ‚๏ผ‰
python3 -c "from scripts.red_flag_rules import scan; print(scan('ๆˆ‘ๆœ€่ฟ‘2ๅ‘จไธ€็›ดๅคด็–ผ'))"

# 3) ็”Ÿๆˆ่ทฏ็”ฑๅ™จ SFT ๆ•ฐๆฎ
python3 scripts/gen_router_data.py
python3 scripts/gen_router_augment.py
python3 scripts/merge_router_data.py        # โ†’ data/router/router_sft_{train,val}.jsonl

# 4) ่ฎญ็ปƒ 1-3B LoRA ่ทฏ็”ฑๅ™จ๏ผˆๅŸบๅบง Qwen/Qwen3-1.7B๏ผŒๅฏ็”จ ROUTER_BASE ่ฆ†็›–๏ผ‰
python3 scripts/train_router.py            # โ†’ checkpoints/.../final

# 5) ๆž„ๅปบ 30 ็—…็งๅคš RAG ็ดขๅผ•
python3 scripts/build_multi_rag.py         # โ†’ data/rag/<30็—…็ง>/

# 6) ๅฏผๅ‡บ + ้‡ๅŒ– CPU/GGUF ่ต„ไบง๏ผˆๅฏ้€‰๏ผŒไพ›ๆ—  GPU ๆœบๅ™จ้ƒจ็ฝฒ๏ผ‰
#    a. LoRA ๅˆๅนถๅ›žๅŸบๅบง โ†’ FP16 safetensors๏ผˆ่„šๆœฌ็กฌ็ผ–็ ๆœฌๅœฐ LoRA/็ผ“ๅญ˜่ทฏๅพ„๏ผŒMERGE_OUT ๆŒ‡ๅฎš่พ“ๅ‡บ๏ผ‰
MERGE_OUT=/tmp/router-merged python3 scripts/merge_lora_gguf.py
#    b. safetensors โ†’ GGUF f16๏ผˆllama.cpp ๅฎ˜ๆ–น่ฝฌๆขๅ™จ๏ผ‰
PYTHONPATH=/path/to/llama.cpp/gguf-py \
  python3 /path/to/llama.cpp/convert_hf_to_gguf.py /tmp/router-merged \
    --outfile router-f16.gguf --outtype f16
#    c. f16 โ†’ Q8_0๏ผˆ~1.83GB๏ผŒ่ฟ‘ๆ— ๆŸ๏ผ‰
/path/to/llama.cpp/build/bin/llama-quantize router-f16.gguf router-q8_0.gguf Q8_0
#    d. bge-m3 ๅตŒๅ…ฅๅŒ็†๏ผšbge-m3-f32.gguf โ†’ bge-m3-q8_0.gguf

6. ้ชŒ่ฏ็ป“ๆžœ

Alert ่ทฏๅพ„๏ผˆๆ…ขๆ€งๅคด็—›็บขๆ——๏ผŒไธๅฅ— RAG๏ผŒ็›ดๆŽฅๅปบ่ฎฎๅฐฑๅŒป๏ผ‰

PLAN mode=alert, red_flags=[chronicity/2ๅ‘จ], sub_intents=[self_care/brain-and-nerves]
โ†’ ๅคงๆจกๅž‹๏ผš้ฆ–ๅฅๆ็คบใ€ŒๆŒ็ปญไธคๅ‘จ้œ€้‡่ง†ใ€ๅปบ่ฎฎๅฐฑๅŒปใ€๏ผŒๅ†็ป™ๅฑ…ๅฎถ็š„้ž่ฏ็‰ฉ็ผ“่งฃๅปบ่ฎฎ

Grounded ่ทฏๅพ„๏ผˆ็ณ–ๅฐฟ็—…ๅฎšไน‰+้ฅฎ้ฃŸ๏ผŒ่ตฐ RAG ่ฏๆฎ๏ผ‰

PLAN mode=grounded, intent=diet, category=diabetes
โ†’ ๆฃ€็ดข 4 ๆก่ฏๆฎ๏ผˆWhat is diabetes?/type 2 ็ญ‰๏ผ‰๏ผŒๅคงๆจกๅž‹ๅˆ†็‚นไฝœ็ญ”ๅนถๆ ‡ๆฅๆบ

ๅคๅˆ้—ฎ้ข˜๏ผˆๅคšๅญๆ„ๅ›พ๏ผ‰ๆžถๆž„ๅทฒๆ”ฏๆŒ

PLAN sub_intents=[self_care/brain-and-nerves, self_care/sleep]
โ†’ ไปŽไธคไธช็ดขๅผ•ๅ„ๆฃ€็ดข่ฏๆฎ๏ผŒๅˆๅนถๅŽไบค็ป™ๅคงๆจกๅž‹

ๆกˆไพ‹๏ผšHarness vs ่ฃธๅคงๆจกๅž‹

  • ่ฟ‡ๆ•ๆ€ง้ผป็‚Ž็”จ่ฏ๏ผˆgrounded๏ผ‰๏ผš่ฃธๅคงๆจกๅž‹็›ดๆŽฅ็ป™ๅ…ทไฝ“่ฏๅใ€ๆ— ๆฅๆบใ€ๆœ‰ไธชๅˆซ้žๅพช่ฏ่ฏดๆณ•๏ผ›Harness ๆฃ€็ดขๅˆฐ UpToDateใ€ŒMedications that may help symptomsใ€็ญ‰่ฏๆฎ๏ผŒ้€ๆกๅผ•็”จ๏ผ›ๆฃ€็ดขไธบ็ฉบๆ—ถๆญฃ็กฎๆ‹’็ญ”ๅนถๅปบ่ฎฎๅฐฑๅŒป่€Œ้ž็ผ–้€ ใ€‚
  • ๆŒ็ปญ 2 ๅ‘จๅคด็—›๏ผˆalert๏ผ‰๏ผš่ฃธๅคงๆจกๅž‹ๆŠŠใ€Œ2ๅ‘จใ€ๅฝ“ๆ™ฎ้€šๅœบๆ™ฏ๏ผŒ็บขๆ——ๅชไฝœๆ–‡ๆœซ้™„ๅŠ ๆ้†’๏ผ›Harness ้ฆ–ๅฅๅ‰็ฝฎใ€Œๅปบ่ฎฎๅฐฑๅŒปใ€๏ผŒ่‡ช็–—ๅปบ่ฎฎ้™ไธบ่พ…ๅŠฉ๏ผŒๅ†ๆฌกๅผบ่ฐƒ้ข่ฏŠใ€‚

ๅทฅ็จ‹็ป้ชŒ

  • LoRA ็š„ๆ ธๅฟƒไปทๅ€ผ = schema ๅฏน้ฝ๏ผšๆ—  LoRA ๆ—ถ 1.7B ่พ“ๅ‡บ่‡ช็”ฑ JSON๏ผˆ{"intents":[...]}๏ผ‰ๅนถ้•ฟ็ฏ‡ thinking๏ผ›ๅพฎ่ฐƒๅŽๆฏไธช query ไธฅๆ ผ่พ“ๅ‡บ็บฆๅฎš็š„ {mode, red_flags, sub_intents}๏ผŒๅฏ็›ดๆŽฅ่ขซ pipeline ่งฃๆžใ€‚
  • ไธบไฝ•้ป˜่ฎค hybrid๏ผš1.7B ๅœจๅฐ‘ๆ•ฐ็ฑป alert ๆ ทๆœฌ๏ผˆๅฆ‚ 180/2313๏ผ‰ไธŠๅฏน็บขๆ——ๅˆคๅฎšไธๅฆ‚็กฎๅฎšๆ€ง่ง„ๅˆ™ๅฏ้ ๏ผˆๆ›พๆŠŠใ€Œ2ๅ‘จๅคด็–ผใ€ๆผๅˆคไธบ grounded๏ผ‰ใ€‚็บขๆ——ๆ˜ฏๅฎ‰ๅ…จๆ”ธๅ…ณไธ”่ง„ๅˆ™ๅผ•ๆ“Žๅทฒๅฏ่งฃ้‡Šๅœฐๅšๅฏน๏ผŒๆ•… mode/red_flags ่ตฐ่ง„ๅˆ™ใ€category/intent ่ตฐๅฐๆจกๅž‹ใ€‚
  • ็ฑปๅˆซๅไธŽ RAG ็›ฎๅฝ•ๅๅผบไธ€่‡ด๏ผšasthma-allergy vs allergies-and-asthma ๆ›พๅฏผ่‡ดๆฃ€็ดขๆฐธไน…ไธบ็ฉบ๏ผŒๅŠกๅฟ…ๅฏน้ฝๅนถๅŠ ็ผบ็ดขๅผ•ๅ…œๅบ•ใ€‚

7. ๅทฒๆž„ๅปบ่ต„ไบง

่ต„ไบง ่ทฏๅพ„ ่ง„ๆจก
ๅŽŸๅง‹ Q&A ่ฏญๆ–™ data/patient_education_qa.jsonl 34,077 ๅ—
ๆธ…ๆด—ๆ‚ฃ่€…้—ฎ้ข˜ data/patient_questions_clean.jsonl 12,093 ๆก
็บขๆ——่ง„ๅˆ™ๅผ•ๆ“Ž scripts/red_flag_rules.py 5 ็ฑป็บขๆ——๏ผŒ26 ็ป„็”จไพ‹
่ทฏ็”ฑๅ™จ SFT ๆ•ฐๆฎ data/router/router_sft_{train,val}.jsonl train 2,313 / val 350
ๅคš็—…็ง FAISS ็ดขๅผ• data/rag/<30็—…็ง>/ 30 ็ดขๅผ• / 21,847 ๆ–‡ๆกฃ
่ทฏ็”ฑๅ™จ LoRA checkpoints/Qwen-Qwen3-1.7B-router-lora/final 1-3B ่ทฏ็”ฑๆจกๅž‹
CPU ่ทฏ็”ฑๅ™จ GGUF router-q8_0.gguf๏ผˆไป“ๅบ“ๆ น็›ฎๅฝ•๏ผ‰ ~1.83GB
ๅฏ่ฟ่กŒ้ชจๆžถ harness/ ๅŒ่ทฏๅพ„ + hybrid ๅŽ็ซฏ่ท‘้€š

ๅ…่ดฃๅฃฐๆ˜Ž

ๆœฌ้กน็›ฎ็”จไบŽ็–พ็—…็ง‘ๆ™ฎไธŽๅฐฑๅŒปๅปบ่ฎฎๅ‚่€ƒ๏ผŒไธๆž„ๆˆๅŒป็–—่ฏŠๆ–ญใ€‚่‹ฅๅ‡บ็Žฐ่ƒธ็—›ใ€ๅ‘ผๅธๅ›ฐ้šพใ€ๆ„่ฏ†ๆ”นๅ˜็ญ‰ๆ€ฅ้‡็—‡๏ผŒ ่ฏท็ซ‹ๅณๅฐฑๅŒปๆˆ–ๆ‹จๆ‰“ๆ€ฅๆ•‘็”ต่ฏใ€‚็บขๆ——่ง„ๅˆ™ไธบๅฏๅ‘ๅผ๏ผŒ้žๅฎŒๅค‡ๅŒปๅญฆ่ฏๅ…ธ๏ผ›ๆœ€็ปˆๆŽช่พž็”ฑๅคงๆจกๅž‹่ดŸ่ดฃไปปๅœฐๅปบ่ฎฎๅฐฑๅŒปใ€‚

Downloads last month
84
GGUF
Model size
2B params
Architecture
qwen3
Hardware compatibility
Log In to add your hardware

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for chenhaodev/patient-edu-qa

Finetuned
Qwen/Qwen3-1.7B
Adapter
(843)
this model