低秩適應 是什麼?

Low-Rank Adaptation:低秩適應 的完整解釋

透過在預訓練模型的權重矩陣旁插入低秩分解矩陣來進行參數高效微調的技術。

低秩適應(Low-Rank Adaptation,LoRA)是 2021 年由微軟研究院提出的模型微調技術,論文題為「LoRA: Low-Rank Adaptation of Large Language Models」。它解決了一個核心問題:如何在計算資源有限的情況下,對擁有數十億甚至數千億參數的大型語言模型(LLM)進行任務特定的微調?

傳統全量微調(Full Fine-Tuning)需要更新模型的所有參數,對於一個擁有 700 億個參數的模型,即使使用最先進的 GPU 叢集,成本也相當高昂。LoRA 的核心洞察在於:模型在特定任務上的適應,本質上發生在一個低維的子空間中,這個觀察源於「預訓練模型的權重矩陣具有低的內在維度(Intrinsic Rank)」這一假設。

具體做法是:對於模型中的目標權重矩陣 W(維度為 d × k),LoRA 不直接修改 W,而是在旁邊添加一個低秩分解 ΔW = AB,其中 A 的維度是 d × r,B 的維度是 r × k,r 遠小於 d 和 k(通常 r 設為 4、8、16 或 32)。前向傳播時,輸出變為 Wx + ABx,原始權重 W 保持凍結,只訓練 A 和 B 兩個小矩陣。

以 GPT-3(1750 億參數)為例,使用 LoRA 後可訓練的參數量可以減少至原來的 0.01% 左右,但微調後的模型在許多下游任務上的表現與全量微調幾乎相當。這使得在消費級 GPU(如 RTX 3090、4090)上微調 70 億至 130 億參數級別的模型成為可能,大幅降低了 LLM 落地應用的門檻。

LoRA 的應用範圍非常廣泛。在文字生成領域,開發者使用 LoRA 將通用 LLM 微調成特定領域的專家模型,例如法律文書生成、醫療問答或代碼補全。在圖像生成領域,Stable Diffusion 社群廣泛使用 LoRA 來生成特定風格或特定人物的圖像,使用者可以下載各種社群訓練的 LoRA 檔案並疊加使用。

後續衍生技術包括:QLoRA(結合 4-bit 量化進一步降低記憶體需求)、AdaLoRA(自適應調整不同層的秩大小)、以及 DoRA(分解權重矩陣的大小與方向分別進行學習)。這些技術持續推動 PEFT 領域的發展,使得更多個人與中小型企業能夠在有限資源下訓練自己的專屬 AI 模型。

在 iPAS AI 應用規劃師的考試中,LoRA 常出現在模型微調方法比較、參數高效微調技術以及大型語言模型落地應用的題目中。考生需要理解 LoRA 的核心原理(低秩分解)、與全量微調的差異(參數量、計算成本、記憶體需求),以及適用場景(資源有限但需要模型特化時)。

值得一提的是,LoRA 在初始化上有個重要設計細節:矩陣 A 使用高斯隨機初始化,矩陣 B 初始化為全零,這確保了訓練開始時 ΔW = AB = 0,即 LoRA 對模型初始輸出沒有任何影響,只有隨著訓練進行,B 才逐漸學習到有意義的值。此設計使微調過程更加穩定。此外,LoRA 通常只應用於 Transformer 的注意力模組(Q、K、V 投影矩陣),不應用於前饋層,這是基於研究發現注意力模組的適應對下游任務影響最大的結論。 低秩適應(Low-Rank Adaptation, LoRA)是目前最廣泛使用的大型語言模型參數高效微調(PEFT)方法,由 Hu 等人於 2021 年提出,核心思想是:預訓練模型的權重更新矩陣具有低秩結構,可以用兩個小矩陣的乘積來近似,從而大幅降低微調的參數量和記憶體需求。

LoRA 的數學原理如下:對於預訓練模型的某個全連接層,其權重矩陣 W₀ ∈ R^(d×k),LoRA 不直接微調 W₀,而是學習一個更新矩陣 ΔW = BA,其中 B ∈ R^(d×r) 和 A ∈ R^(r×k),r 為秩(遠小於 d 和 k)。前向傳播時,輸出為 Wx = W₀x + ΔWx = W₀x + BAx。訓練時只更新 A 和 B,W₀ 凍結。

秩 r 的選擇是 LoRA 的關鍵超參數。r=4 到 r=16 在大多數任務上已能達到良好效果;r=1 能進一步壓縮參數但可能性能不足;r=64 或更高則接近全量微調的效果但減少了效率優勢。實踐中通常從 r=8 開始實驗。

LoRA 的一個重要優點是部署靈活性:推論時可以將 BA 合並到 W₀(W₀' = W₀ + BA),不增加任何推論延遲;也可以保持分離,通過切換不同的 B、A 矩陣快速在多個任務之間切換(多租戶 LLM 服務的常見架構)。

LoRA 的演進:QLoRA 結合 4-bit 量化,讓 70B 參數模型能在單張消費級 GPU 上微調;LoRA+(不同學習率)、AdaLoRA(自適應秩分配)、DoRA(權重分解)等改進版本持續提升效果。

在 Hugging Face 的 PEFT 庫中,LoRA 只需幾行代碼即可應用到任何 Transformer 模型,大幅降低了 LLM 微調的門檻。

常見問題