LoRA(Low-Rank Adaptation、低秩適配)的核心概念是「凍住原模型所有權重、在指定 layer 旁邊掛兩個小矩陣 A、B(rank 很低、如 r=8)、只訓 A、B」。Hu et al. (2021) 提出、是現在 fine-tuning 的主流選擇、大幅降低訓練成本與記憶體需求。

概念位置

LoRA 的數學形式:

1原 layer 輸出:y = W × x       (W 凍住)
2加 LoRA 後:  y = W × x + B × A × x
3                          └──┬──┘
4                       LoRA update(rank r)
5                       A shape: (r, hidden_dim)
6                       B shape: (hidden_dim, r)

關鍵特性:

維度完整 fine-tuningLoRA fine-tuning(r=16)
可訓練參數全部(如 7B、70B)~0.1% ~ 1%(只 A、B)
GPU 記憶體高(要存所有 gradient)大幅降低
Adapter 檔案大小跟原模型同大幾 MB ~ 幾百 MB
訓練成本全模型 backprop只算 A、B 的 gradient
部署載入新模型載入原模型 + adapter、推論時合併
多任務切換載入不同模型切換 adapter 即可(同個底)

QLoRA(Dettmers et al., 2023)進一步把原模型量化到 4-bit、LoRA 訓在量化模型上、消費級 GPU 也能 fine-tune 大模型。

設計責任

讀 fine-tuning 教學 / Hugging Face PEFT 看到 LoRA、QLoRA 是現在主流。寫 code 場景的判讀:LoRA 適合「在現有模型上加領域知識 / 風格」(如教模型用特定 codebase 慣例)、不適合「教模型新世界知識」(仍要 pre-training 級資料);adapter 形式讓「多客戶 / 多風格」場景可以共用 base model、只切換 adapter、節省 GPU 記憶體。