Fine-tuning LLM 實務教學

AI 2025-01-01T04:00:00.000Z

Fine-tuning LLM 實務教學

全參數微調一個 7B 模型需要約 56GB VRAM,這對大多數團隊來說成本過高。參數高效微調(PEFT)技術讓我們只需訓練 1-2% 的參數,就能達到接近全參數微調的效果。

LoRA 原理

Low-Rank Adaptation 的核心假設:模型更新具有低秩特性。透過兩個小矩陣 A 和 B 來近似權重變化:

ΔW = BA

其中 A ∈ ℝ^{r×k},B ∈ ℝ^{d×r},r << min(d, k)。Rank 通常設為 8-64。

QLoRA

在 LoRA 基礎上結合 4-bit 量化基座模型,進一步降低記憶體需求:

  • 使用 NF4(4-bit Normal Float)量化
  • 分頁 optimizer 防止記憶體峰值
  • 在 48GB GPU 上可微調 65B 模型

完整訓練流程

1. 資料準備

微調資料必須是高品質、格式一致的問答對。建議至少 100-1000 筆。

{
  "instruction": "將下列英文翻譯成繁體中文",
  "input": "Hello, how are you?",
  "output": "你好,你好嗎?"
}

2. 訓練環境

from peft import LoraConfig, get_peft_model
config = LoraConfig(r=16, lora_alpha=32, target_modules=["q_proj", "v_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM")
model = get_peft_model(base_model, config)

3. 評估

微調後必須用保留測試集評估,並與基座模型比較。常見指標包括 BLEU、ROUGE 以及人工評分。