免費全文 模型微調 進階

LoRA 是什麼:用三個參數理解它在做的事

不用讀論文也能正確使用 LoRA。理解 rank、alpha 與目標模組這三件事就夠了。

模型微調教程封面

LoRA 的核心想法是:不要動原本的權重,而是在旁邊加上一組很小的低秩矩陣去學「差異」。訓練時只更新這組小矩陣,記憶體與儲存成本因此大幅下降。

rank(秩)

決定那組小矩陣的容量。rank 越大能學的變化越多,但也越容易過擬合、檔案越大。

  • 格式與語氣調整:8 或 16 通常足夠。
  • 需要學習新任務邏輯:32 到 64。
  • 超過 128 之後,多數情況下收益有限,不如檢查資料品質。

alpha(縮放)

控制 LoRA 分支的影響力,實際縮放係數是 alpha / rank。常見設定是 alpha = 2 × rank,也就是縮放係數維持在 2 左右。換 rank 時記得同步調 alpha,否則等於連學習強度也一起改了。

目標模組

決定要在哪些層加上 LoRA。只加注意力的 q、v 投影最省,加上所有線性層效果最好但成本較高。

from peft import LoraConfig

config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj'],
    lora_dropout=0.05,
    task_type='CAUSAL_LM',
)

為什麼實務上幾乎都用 LoRA

  • 可訓練參數通常不到全參數的百分之一,單卡就能跑。
  • 產出的介面卡(adapter)只有幾十 MB,方便版本管理。
  • 同一個底座可以掛不同介面卡,切換任務不必重新載入整個模型。
先用 rank=16 跑一次當基準,再往上下各試一檔。直接從 rank=128 起跑很容易得到「訓練損失很漂亮但實際更糟」的結果。
下一步

這個主題還有更深入的實戰教程

VIP 專區收錄 50 篇進階內容:架構設計、生產環境取捨、成本與合規。 每週五新增 3 篇。

看訂閱方案 → 先逛逛 VIP 專區

延伸閱讀

更多模型微調 →