參數高效微調 是什麼?

Parameter-Efficient Tuning:參數高效微調 的完整解釋

只調整少量參數即可讓大型預訓練模型適應特定任務的技術,代表方法包括 LoRA、Adapter 和 Prefix Tuning。

隨著語言模型規模從數十億增長到數千億參數,傳統全參數微調(Full Fine-tuning)的計算負擔變得難以承受。以一個 70B 參數的模型為例,儲存所有參數需要 140GB 的空間(float16 精度),訓練時需要同時儲存梯度(另外 140GB)與優化器狀態(Adam 優化器額外需要約 280GB),單次微調的記憶體需求超過 500GB,需要多台高端 GPU 伺服器。參數高效微調(PET)的核心思路是:預訓練模型已經學到了豐富的通用知識,任務適應可能只需要在知識表示的「方向」上做小幅調整,不需要大幅修改所有參數。

LoRA(Low-Rank Adaptation)是目前最流行的 PET 方法。其核心假設是微調過程中模型參數的更新矩陣具有低秩(Low-Rank)結構,即更新量 ΔW 可以分解為兩個小矩陣的乘積:ΔW = AB,其中 A 和 B 是遠小於原始矩陣的低秩矩陣。訓練時,原始權重矩陣 W 保持凍結,只訓練 A 和 B。假設原始矩陣維度是 4096×4096(約 16M 參數),LoRA 秩 r=16 時,A 是 4096×16,B 是 16×4096,共約 131K 參數,是原始的 0.8%。推論時將 W + AB 合併,不增加任何額外延遲。QLoRA 進一步在 4-bit 量化的基礎上應用 LoRA,使 70B 模型的微調在單張 48GB 顯示卡上成為可能。

Adapter 方法是較早的 PET 技術,在 Transformer 的每一層(通常在前向傳播的特定位置)插入小型的「適配器模組」,模組結構通常是一個降維線性層加上激活函數再加上升維線性層(瓶頸架構),參數量遠小於主幹層。訓練時只更新適配器的參數,主幹保持凍結。Adapter 的缺點是推論時增加了每層的計算深度,有一定的延遲開銷。

Prefix Tuning 和 Prompt Tuning 是另一類方法,不修改模型架構,而是在輸入序列前加入可學習的「軟提示詞」(Soft Prompt)向量,透過梯度下降優化這些向量。不同於人工設計的提示詞是離散的文字 token,軟提示詞是連續的嵌入向量,能更靈活地在嵌入空間中「指導」模型輸出。P-Tuning v2 將可學習向量插入每一個 Transformer 層,效果更接近全參數微調。

選擇 PET 方法時有幾個考量面向。計算資源限制是首要因素:若有一張 24GB 顯示卡,LoRA 或 QLoRA 通常是可行選項。任務多樣性也很重要:若需要讓同一個基礎模型服務多個不同任務,Adapter 的模組化設計讓每個任務只需載入對應的適配器,基礎模型共用;LoRA 合併後的模型則需要為每個任務維護一個獨立的完整模型。學習效率方面,LoRA 在多數 NLP 任務上效果與全參數微調相當,是目前業界事實上的標準 PET 方法。

在 AI 應用規劃師的視角,PET 技術的普及大幅降低了企業客製化 AI 模型的門檻。以往只有大型科技公司才能負擔的模型微調,現在中型企業的工程團隊用數張 GPU 和數百筆高品質資料就能完成,推動了垂直行業 AI 應用的爆炸性增長。

在評估是否需要對模型進行微調時,AI 應用規劃師應先確認問題能否透過提示工程解決:良好的系統提示詞在許多情況下已足夠,不必立即跳到微調。若提示工程確實無法解決問題(如需要改變輸出格式、注入大量私有知識、提升特定領域準確度),再考慮 PET 方法,並以 LoRA 作為常用選擇起點,評估效果後再決定是否需要更複雜的方案。 參數高效微調(Parameter-Efficient Fine-Tuning, PEFT)是解決大型語言模型微調成本過高問題的關鍵技術,讓研究者和工程師能以有限的運算資源完成模型的領域適應。

傳統全量微調(Full Fine-Tuning)需要更新模型的全部參數,對於擁有數十億甚至千億參數的 LLM 而言,這需要多張高端 GPU 和大量記憶體,成本高昂。PEFT 方法透過只更新模型的一小部分參數(通常不到總參數量的 1%),在大幅降低計算和記憶體成本的同時,達到接近全量微調的性能。

LoRA(Low-Rank Adaptation)是目前最廣泛採用的 PEFT 方法,其核心思想是:預訓練模型的權重矩陣更新具有低秩特性,因此可以用兩個小矩陣的乘積來近似。實際部署時,LoRA 的低秩矩陣可以直接合併回原始權重,不增加推論時的延遲。

Prefix Tuning 和 Prompt Tuning 則採用另一種思路:在模型輸入前添加可學習的「前綴」向量,引導模型以特定方式回應。這些軟提示(Soft Prompt)的訓練不涉及模型主體參數,記憶體需求極小,適合多任務學習場景(每個任務只需儲存一組前綴向量)。

Adapter 方法在 Transformer 各層之間插入小型瓶頸模塊,只訓練這些適配器的參數。雖然會略微增加推論延遲,但不同任務的適配器可以動態切換,適合需要快速切換多個專業領域的應用場景。

PEFT 技術的成熟使得在消費級 GPU(如 RTX 4090)上微調 7B-13B 參數模型成為可能,顯著降低了 AI 領域適應的門檻。

中英對照與常見說法

說法 出現場合
參數高效微調 台灣正式用語
高效参数微调、参数高效微调 簡體寫法
Parameter-Efficient Fine-Tuning 英文原名
PEFT 標準縮寫,也是 Hugging Face 同名套件的名稱

跟全參數微調的差別

全參數微調 參數高效微調
更新哪些權重 全部 只更新新加入的少量參數,原模型凍結
可訓練參數比例 100% 常見在 0.1% 到 1%
記憶體需求 高,最佳化器狀態通常是模型大小的數倍 低很多,單張消費級顯示卡常常就夠
多任務部署 每個任務一份完整模型 共用同一個底模,只換掛載的小模組
災難性遺忘 風險較高 風險較低,原權重沒被動到

多任務部署那一列是實務上最大的價值。十個任務用全參數微調要存十份完整模型,用 LoRA 只需要一份底模加十個幾十 MB 的小檔案,而且可以在同一個服務裡動態切換。

主要方法

LoRA(Low-Rank Adaptation)是目前最主流的做法。它假設微調帶來的權重變化是低秩的,所以不直接更新原權重矩陣,而是在旁邊加兩個小矩陣相乘來表示變化量。推論時可以把這個變化量合併回原權重,不增加任何推論延遲,這是它勝過多數其他方法的關鍵。

QLoRA 進一步把底模量化到 4 位元再掛 LoRA,記憶體需求再降一個量級,讓單張顯示卡也能微調很大的模型。

Adapter 在每一層之間插入小型瓶頸模組。效果好,但因為模組留在推論路徑上,會增加一點延遲。

Prompt Tuning / Prefix Tuning 不改模型權重,改成訓練一段可學習的向量接在輸入前面。參數最少,但通常需要較大的模型才有好效果,且會佔用上下文長度。

兩個實務參數與一個提醒

秩(rank) 決定容量。任務簡單、資料少時 8 到 16 就夠;任務跟原模型差異大時可以提高,但太高就失去了參數高效的意義,效果也不一定更好。

要掛在哪些層。早期只掛在注意力的 Query 與 Value 投影上,後來的實驗顯示掛在所有線性層(含前饋層)通常效果更好,代價是參數變多。

提醒:參數高效微調仍然是微調,不是灌知識的手段。 要讓模型掌握會變動的事實知識,正確做法還是檢索增強。PEFT 解決的是「怎麼用更少資源做微調」,沒有改變「微調適合調行為、不適合灌事實」這件事。

常見問題