目錄
- 4 參數高效微調
- 4.1 參數高效微調簡介
- 4.1.1 下游任務適配
- 1)上下文學習(In-context learning)
- 2)指令微調(Instruction Tuning)
- 4.1.2 參數高效微調
- 4.1.3 參數高效微調的優勢
4 參數高效微調
大語言模型雖知識豐富,但在垂直領域適配性不足,僅靠提示工程難以解決,需通過微調參數來提升適配性。然而,大語言模型參數量巨大,微調成本高,限制了其在垂直領域的應用。因此,實現效果可靠、成本可控的參數高效微調技術成為關鍵。
下面探討主流的參數高效微調技術:參數附加方法、參數選擇方法和低秩適配方法的代表性算法實現與優勢。
.
4.1 參數高效微調簡介
大語言模型在垂直領域適配時,上下文學習和指令微調雖是有效途徑但存在不足。為此,參數高效微調(Parameter-Efficient Fine-Tuning, PEFT)技術出現。
本節先回顧前兩者并分析其局限,再介紹PEFT概念及優勢,最后分類講解主流PEFT方法,包括參數附加、選擇和低秩適配,闡述其原理和代表性工作。
.
4.1.1 下游任務適配
為提高大語言模型在垂直和細分領域的性能,需進行下游任務適配,主流方法有:
-
上下文學習(In-context learning)
-
指令微調(Instruction Tuning)
1)上下文學習(In-context learning)
上下文學習通過設計Prompt,將任務轉化為生成任務,驅動模型完成任務。
小樣本上下文學習(Few-shotin-contextlearning):
-
將樣本-標簽對轉化為自然語言指令(Instruction)和樣例(Demonstrations),
-
拼接測試樣本輸入模型,輸出作為預測結果。
-
該方法無需更新模型參數,可快速應用于多種任務。
上下文學習雖能有效利用大語言模型的能力,但存在明顯缺點:
-
性能與微調有差距,Prompt設計耗費人力且不同設計導致性能差異大,
-
推理代價隨Prompt樣例增多而快速上升。
因此,微調大語言模型在許多場景和垂直領域仍有必要。
2)指令微調(Instruction Tuning)
指令微調(Instruction Tuning)通過構建指令數據集并在其上進行監督微調,使模型更好地理解和執行自然語言處理任務指令。其過程如下:
-
指令數據構建:指令數據包含指令、示例(可選)、問題和回答,構造方式有:1)數據集成,即將帶標簽的自然語言數據集通過模板轉換為指令格式的<輸入,輸出>對,如Flan和P3數據集;2)大語言模型生成,即人工收集少量指令數據后,使用大語言模型進行指令擴展,如InstructWild和Self-Instruct數據集。
-
監督微調:構建數據集后,采用完全監督的方式對預訓練模型進行微調,通過順序預測輸出中的每個token來訓練模型,從而顯著提升模型的指令遵循能力,增強其推理水平和泛化到新任務、新領域的能力。
指令微調雖能提升大語言模型在下游任務的性能,但監督微調需大量計算資源。如LLaMA2-7B全量微調需近60GB內存,消費級GPU(如RTX4090)無法勝任。因此,在資源受限環境下,研究參數高效微調技術至關重要。
.
4.1.2 參數高效微調
參數高效微調(Parameter-Efficient Fine-Tuning,PEFT)旨在避免微調全部參數,減少在微調過程中需要更新的參數數量和計算開銷,從而提高微調大語言模型的效率。
圖4.2: 高效參數微調方法分類學。
以下是三種參數高效微調方法的精簡總結:
-
參數附加方法(Additional Parameters Methods):在模型結構中附加較小的可訓練模塊(如適配器層),凍結原始參數,僅微調新模塊,典型方法有適配器微調(Adapter-tuning)、提示微調(Prompt-tuning)、前綴微調(Prefix-tuning)和代理微調(Proxy-tuning)等。
-
參數選擇方法(Parameter Selection Methods):僅選擇模型部分參數微調,凍結其余參數,利用部分參數對下游任務的決定性作用,典型方法包括BitFit、Child-tuning和FishMask等。
-
低秩適配方法(Low-rank Adaptation Methods):通過低秩矩陣近似原始權重更新矩陣,凍結原始參數,僅微調低秩更新矩陣,大幅節省內存開銷,經典方法有LoRA及其變體如AdaLoRA、DyLoRA和DoRA等。
三種參數高效微調(PEFT)方法:
-
參數附加方法(Additional Parameters Methods):在模型結構中附加較小的可訓練模塊(如適配器層),凍結原始參數,僅微調新模塊,典型方法有適配器微調(Adapter-tuning)、提示微調(Prompt-tuning)、前綴微調(Prefix-tuning)和代理微調(Proxy-tuning)等。
-
參數選擇方法(Parameter Selection Methods):僅選擇模型部分參數微調,凍結其余參數,利用部分參數對下游任務的決定性作用,典型方法包括BitFit、Child-tuning和FishMask等。
-
低秩適配方法(Low-rank Adaptation Methods):通過低秩矩陣近似原始權重更新矩陣,凍結原始參數,僅微調低秩更新矩陣,大幅節省內存開銷,經典方法有LoRA及其變體如AdaLoRA、DyLoRA和DoRA等。
.
4.1.3 參數高效微調的優勢
參數高效微調(PEFT)有以下優勢:
-
計算效率高:減少需更新參數數量,降低訓練時計算資源消耗。
-
存儲效率高:減少微調參數數量,顯著降低模型存儲空間,適用于內存受限設備。
-
適應性強:可快速適應不同任務,無需重新訓練整個模型,提升模型在變化環境中的靈活性。
表4.1: 全量參數微調和參數高效微調顯存占用對比(OOM代表超出內存限制)
模型名 | 全量參數微調 | 參數高效微調 (LoRA) |
---|---|---|
bigscience/T0_3B | 47.14GB GPU / 2.96GB CPU | 14.4GB GPU / 2.96GB CPU |
bigscience/mt0-xxl (12B params) | OOM GPU | 56GB GPU / 3GB CPU |
bigscience/bloomz-7b1 (7B params) | OOM GPU | 32GB GPU / 3.8GB CPU |
.
其他參考:【大模型基礎_毛玉仁】系列文章
聲明:資源可能存在第三方來源,若有侵權請聯系刪除!