CoolFace
Modelpublic

potsunwu/taiwan-llm-taigi-reading-lora

sourceHugging Faceapache-2.0updated 9mo agoView on Hugging Face
0likes9downloads
Model Card

Taiwan-LLM Taigi Reading Comprehension LoRA

台語閱讀理解任務的 LoRA adapter,基於 Taiwan-LLM-7B-v2.1-chat 微調。

模型效能

  • —Test Accuracy: 73.33%
  • —Validation Loss: 0.573 (最佳 checkpoint)
  • —Baseline: 53.7% (2020 競賽最佳成績)
  • —提升: +19.63 百分點

模型資訊

  • —基礎模型: yentinglin/Taiwan-LLM-7B-v2.1-chat
  • —訓練任務: 台語閱讀理解多選題
  • —訓練資料: 13,550 筆台語文章 + 12,195 筆 Alpaca 台語對話
  • —LoRA Rank: 32
  • —LoRA Alpha: 32
  • —Target Modules: qproj, kproj, vproj, oproj, gateproj, upproj, down_proj

使用方法

安裝依賴

bash
pip install transformers peft torch unsloth

載入模型

python
from unsloth import FastLanguageModel
from peft import PeftModel

# 1. 載入基礎模型
base_model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="yentinglin/Taiwan-LLM-7B-v2.1-chat",
    max_seq_length=2048,
    dtype=None,
    load_in_4bit=True,
)

# 2. 載入 LoRA adapter
model = PeftModel.from_pretrained(
    base_model,
    "YOUR_USERNAME/taiwan-llm-taigi-lora"  # 記得改成你的用戶名
)

# 3. 切換到推論模式
FastLanguageModel.for_inference(model)

推論範例

python
# 準備 prompt
prompt = """USER: 請仔細閱讀以下台文文章,並回答問題。

文章:
明年元旦起,交通部新規定,汽車輪胎胎紋深度將納入定期檢驗項之一,一旦深度未達一.六公厘,佮一個月內無換胎,將會去予吊銷牌仔照。

問題:汽車胎紋未到達多毫米將會予人吊銷牌?

選項:
1. 一.五公厘
2. 一.四厘
3. 一.三公厘
4. 一.六公厘

請回答: ASSISTANT:"""

# 生成答案
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(
    **inputs,
    max_new_tokens=10,
    temperature=0.1,
    do_sample=False,
)

answer = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(answer)  # 輸出: 4

訓練細節

訓練超參數

  • —Epochs: 3
  • —Learning Rate: 2e-4 → 5e-5 (cosine decay)
  • —Batch Size: 16 (4 per device × 4 gradient accumulation)
  • —Optimizer: AdamW 8-bit
  • —Weight Decay: 0.01
  • —Warmup Ratio: 0.1

LoRA 配置

python
{
    "r": 32,
    "lora_alpha": 32,
    "lora_dropout": 0.05,
    "bias": "none",
    "target_modules": [
        "q_proj", "k_proj", "v_proj", "o_proj",
        "gate_proj", "up_proj", "down_proj"
    ]
}

訓練過程

  • —Total Steps: ~45,500
  • —Best Checkpoint: Step 30,000-31,000
  • —Training Loss: 1.697 → 0.428
  • —Validation Loss: 1.741 → 0.506

訓練曲線

最佳驗證點在 Step 30,000 左右,之後出現輕微過擬合。

限制

  • —僅適用於台語閱讀理解任務
  • —需要特定的 prompt 格式(USER: ... ASSISTANT:)
  • —繼承 Taiwan-LLM-7B 的所有限制
  • —對於非台語文本可能表現不佳

授權

Apache 2.0

致謝