Zubnet AI學習Wiki › LoRA
訓練

LoRA

別名:低秩適配
一種技術,透過僅訓練少量額外參數而非修改整個模型,大幅降低微調成本。LoRA 「adapters」是輕量級附加元件(通常僅需數百MB),能在不重新訓練其數十億個參數的情況下,修改模型的行為。

為什麼重要

LoRA 讓微調變得平民化。在此之前,調整一個7B模型需要強大的GPU資源。現在你可以在數小時內使用單一消費者級GPU進行微調,並分享輕巧的適配器文件。這就是為什麼HuggingFace上擁有數千個專業模型。

深度解析

LoRA 的核心觀點由 Hu 等人在 2021 年提出,其重點在於微調過程中的權重更新傾向於低秩 — 這表示這些變化可以透過兩個更小矩陣的乘積來良好近似。傳統上會更新權重矩陣 W(例如 4096 x 4096 = 1600 萬個參數),而 LoRA 則完全凍結 W,並加入兩個小矩陣 A(4096 x r)和 B(r x 4096),其中 r(秩)通常為 8、16 或 64。有效的更新為 BA,其形狀與 W 相同,但僅由 2 x 4096 x r 個參數定義。當 r 為 16 時,這約為 131,000 個可訓練參數,而非 1600 萬個 — 單一層的參數量減少達 120 倍。若將此應用於模型的所有注意力層,總可訓練參數數量將從十億級降至數百萬級,這就是為何 LoRA 適配器檔案通常僅為 10-50 MB,遠小於多 GB 的基底模型。

調整參數

實際應用中,您會選擇套用 LoRA 的層(通常為注意力投影矩陣:Q、K、V 和輸出投影),並設定秩 r 和一個稱為 alpha 的縮放因子。alpha/r 比率控制適配器相對於凍結基底權重的影響力。更高的秩意味著更高的表達能力,但也需要更多參數和記憶體;實際應用中,秩 16 或 32 已涵蓋大多數使用情境。Dettmers 等人在 2023 年提出的 QLoRA 更進一步提升效率,透過將 LoRA 與基底模型的 4 位量化結合:凍結權重以 NF4(一種針對常態分佈權重優化的 4 位格式)儲存,而 LoRA 適配器則以 bf16 訓練。這讓您能在單一 48GB GPU 上微調 700 億參數模型 — 否則這需要多 GPU 設備與數百 GB 的 VRAM。

工具生態

LoRA 生態系統已快速成熟。HuggingFace 的 PEFT 套件是標準實現,而 Axolotl、LLaMA-Factory 和 Unsloth 等工具則透過更高階的介面封裝它,處理資料格式、預設超參數和訓練迴圈。其中最強大的實用功能是適配器組合性:由於 LoRA 適配器是加法性的,您可以為不同任務訓練獨立的適配器,並在推論時直接合併或切換,而無需重新載入基底模型。某些服務框架如 LoRAX 和 vLLM 利用此特性,從單一基底模型記憶體中同時服務數百個不同 LoRA 適配器,將每個請求路由至適當的適配器。這使得提供每位客戶微調模型成為可能,而無需部署多個模型實例的成本。

權衡考量

LoRA 並非沒有代價。低秩限制意味著它無法學習任意的權重變化 — 如果任務需要大幅重構模型的內部表示,完整微調將優於 LoRA。實際上,這對與基底模型預訓練任務差異極大的任務,或當您試圖教導模型大量新事實知識(而非調整風格或格式)時影響最為顯著。另外,常見的錯誤是設定秩過低,導致困惑為何適配器似乎無法學習,或設定過高,導致適配器在小數據集上過度擬合。秩既是容量控制旋鈕,也是正則化旋鈕,與學習率和訓練步數一同調整對取得良好結果至關重要。

相關概念

← 所有術語
← Liquid AI Luma AI →
ESC