Instructions to use steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3-8B-unsloth-bnb-4bit") model = PeftModel.from_pretrained(base_model, "steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA") - Notebooks
- Google Colab
- Kaggle
Qwen3-8B-DRCD-zhTW-QA-LoRA
繁體中文抽取式閱讀理解(extractive QA)QLoRA adapter,微調自 unsloth/Qwen3-8B,訓練資料為
DRCD(改編版,見下方 SFT dataset)。
輸出固定 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 / 加入通用資料混合訓練。
評估結果(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。
訓練細節
- 基底模型:
unsloth/Qwen3-8B(LoRA 實際合併/推論用的起點權重;跟官方Qwen/Qwen3-8B同源, unsloth 版本額外做了 tokenizer 修正) - 方法:QLoRA(4-bit 訓練),Unsloth,r=16 / alpha=16 / dropout=0,target modules 涵蓋 q/k/v/o/gate/up/down 全線性層
- 資料:9,800 筆訓練(DRCD train split 抽樣,另留 200 筆 eval holdout),2 epochs, effective batch 16,lr 2e-4 cosine schedule
- 硬體:Google Colab Pro,NVIDIA L4
- 訓練曲線:W&B run (train loss 收斂至 0.005,eval loss 穩定在 0.017-0.018,無過擬合反彈)
- Chat template:Qwen3 hybrid thinking 架構,訓練與推論一律
enable_thinking=False(非思考模式)
用法(transformers + PEFT)
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
base = AutoModelForCausalLM.from_pretrained(
"unsloth/Qwen3-8B", dtype=torch.bfloat16, device_map="cuda"
)
model = PeftModel.from_pretrained(base, "steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA")
tokenizer = AutoTokenizer.from_pretrained("steven0226/Qwen3-8B-DRCD-zhTW-QA-LoRA")
messages = [
{"role": "system", "content": '你是精確的閱讀理解助手。根據「文章」回答「問題」:\n- 答案必須是文章中的連續原文片段,一字不改\n- 若文章中找不到答案,answer 填空字串、answerable 填 false\n- 只輸出 JSON:{"answer": "...", "answerable": true|false}'},
{"role": "user", "content": "文章:...\n\n問題:..."},
]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=128, do_sample=False)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
量化部署版(GGUF,含 llama.cpp / Ollama / LM Studio 用法): steven0226/Qwen3-8B-DRCD-zhTW-QA-GGUF
資料授權與歸屬
- 訓練資料衍生自 DRCD(Delta Research Center/台達電子),原始授權 CC BY-SA 3.0,內容改編自繁體中文維基百科;論文引用 Shao et al., "DRCD: a Chinese Machine Reading Comprehension Dataset", arXiv:1806.00920
- 本 adapter 權重以 Apache-2.0 釋出(LoRA 權重本身不含 DRCD 原文,業界通說 ShareAlike 不傳染到權重);完整 SFT 資料集(CC BY-SA 4.0,含改編說明): steven0226/drcd-zhtw-extractive-qa-sft
- 基底模型
unsloth/Qwen3-8B授權 Apache-2.0,歸屬 Qwen team / unsloth
完整專案(Colab QLoRA → 本機合併/量化 → Ollama/LM Studio 部署 → 五組評估 + TMMLU+ 全量
forgetting check):https://github.com/kuotunyu/local-llm-lifecycle
(方法論與逐 Phase 實作紀錄見 PLAN.md,完整評估報告見 EVAL_REPORT.md)。
- Downloads last month
- 48