Qwen3-8B-DRCD-zhTW-QA-GGUF

steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA 的量化部署版,繁體中文抽取式閱讀理解(extractive QA)。輸出固定 JSON schema: {"answer": "文中連續原文片段", "answerable": true|false}

已知限制:這個 checkpoint 在 DRCD 抽取式 QA 上表現接近滿分,代價是通用能力小幅退步。 TMMLU+(通用知識選擇題)test split 全量 20,118 題上,macro accuracy 從原廠的 0.5936 掉到 0.5604(**Δ = −3.32 個百分點,95% CI [−3.96, −2.69]**,配對分層 bootstrap)。

退步的型態是選項偏誤而不是知識遺忘:微調後模型選 B 的次數比原廠少 1,946 次、選 D 多 1,889 次,於是 gold 為 B 的題目掉 16.9 個百分點,而 gold 為 D 的題目反而進步 7.7 個 百分點。忘掉知識的模型不會在某個子集上變強。

這個偏誤有 45% 校正得回來(160,880 次推論實測):把四個選項的內容做循環位移、 讓正確答案輪流落在 A/B/C/D 再投票,Δ 從 −3.46 pp 縮到 −1.92 pp,回收 +1.54 pp (95% CI [+0.90, +2.19])。偏誤撐過了位移(位移後 FT 仍只有 14.7% 選 B、32.2% 選 D), 確認是位置偏誤而非集成效應。

剩下的約 1.9 pp 不能反推為「知識遺忘」——這個實驗只隔離位置偏誤,沒有檢定跟選項 內容綁在一起的偏誤。另外多數決是評分協定、不是模型本身的性質:你直接使用時拿到的 仍是單一順序的行為,投票要付 4 倍推論成本。

如果需要保留通用能力,建議:(a) 只在需要精確抽取式 QA 的場景使用這個 adapter, (b) 選擇題場景加上選項順序隨機化的多數投票(實測可回收約四成退步), (c) 或參考本專案方法論自行用較低 epoch / 加入通用資料混合訓練。

檔案

檔名 量化 大小 用途
qwen3-8b-drcd-qa-Q8_0.gguf Q8_0 ~8.7GB 近無損參考/驗證用
qwen3-8b-drcd-qa-Q4_K_M.gguf Q4_K_M ~5.0GB 建議部署版(4090 本機評估確認量化幾乎零損耗)

轉檔鏈:unsloth/Qwen3-8B + LoRA → bf16 merge → f16 GGUF (convert_hf_to_gguf.py)→ llama-quantize。llama.cpp build commit:a5822222909b785f23ddc74ce3c8f85bd0e38562

評估結果(DRCD dev,完整 4,699 題)

# 組別 overall EM overall F1 JSON 合法率
1 base zero-shot(原廠) 0.4756 0.6858 95.62%
2 base few-shot(3-shot) 0.8253 0.9191 99.98%
3 本 adapter(未量化 bf16) 0.9325 0.9704 100%
4 本 GGUF(Q8_0) 0.9328 0.9706 100%
5 本 GGUF(Q4_K_M,部署建議) 0.9330 0.9700 100%

n=4,699(DRCD 官方 dev split 完整題目,3,524 可回答 + 1,175 unanswerable,未抽樣)。 **量化最多吃掉微調增益的 0.65%**(EM,配對分層 bootstrap 的 95% CI 下界;點估計實際還 微幅為正)。不過量化並非 no-op:Q4 有 2.68% 題目的答案文字與未量化不同,只是變好 33 題、 變壞 35 題互相抵銷(McNemar p=0.90),所以整體指標看起來沒動。

詳細方法論、TMMLU+ forgetting check(全量 20,118 題,macro accuracy −3.32 個百分點)、 錯誤案例分析見專案 EVAL_REPORT.md。

用法

llama.cpp

llama-server -m qwen3-8b-drcd-qa-Q4_K_M.gguf -ngl 99 -c 4096 --jinja
# --jinja 讓 llama-server 直接執行 GGUF 內嵌的原生 chat_template(非思考模式)

呼叫 OpenAI 相容 API 時記得帶 "chat_template_kwargs": {"enable_thinking": false} (本模型訓練時一律非思考模式;GGUF 內嵌 template 在 enable_thinking=false 時會自動插入 空 <think> block,不需要另外處理)。

Ollama

ollama create qwen3-8b-drcd-qa -f Modelfile
ollama run qwen3-8b-drcd-qa --think=false

Modelfile 範例:

FROM qwen3-8b-drcd-qa-Q4_K_M.gguf
PARAMETER temperature 0
PARAMETER num_ctx 4096
SYSTEM """你是精確的閱讀理解助手。根據「文章」回答「問題」:
- 答案必須是文章中的連續原文片段,一字不改
- 若文章中找不到答案,answer 填空字串、answerable 填 false
- 只輸出 JSON:{"answer": "...", "answerable": true|false}"""

實測:Ollama 新版引擎會直接讀取並執行 GGUF 內嵌的原生 jinja template(不是退化成內建 Go template 比對),不需要手寫 TEMPLATE。務必用 ollama show <model> --template 確認實際套用的 模板,並用 --think=false 關閉思考模式。

LM Studio

lms import qwen3-8b-drcd-qa-Q4_K_M.gguf --copy

匯入後於 Developer 分頁確認渲染的 prompt 沒有 <think> 外洩;建議設定 temperature=0、 context length=4096。

資料授權與歸屬

完整專案(Colab QLoRA → 本機合併/量化 → Ollama/LM Studio 部署 → 五組評估 + TMMLU+ 全量 forgetting check):https://github.com/kuotunyu/local-llm-lifecycle (方法論與逐 Phase 實作紀錄見 PLAN.md,完整評估報告見 EVAL_REPORT.md)。

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

4-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for steven0226/Qwen3-8B-DRCD-zhTW-QA-GGUF

Finetuned
Qwen/Qwen3-8B
Finetuned
unsloth/Qwen3-8B
Quantized
(4)
this model

Paper for steven0226/Qwen3-8B-DRCD-zhTW-QA-GGUF