自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LLM微調技術調研

發(fā)布于 2024-9-23 11:22
瀏覽
0收藏

ChatGTP、LLaMA2等通用大模型具備優(yōu)秀的推理性能,但在面對復雜多變的業(yè)務場景時,往往難以滿足多樣化的需求。ChatGPT等通用大模型通常需要經過復雜漫長的訓練過程,預訓練期間需要巨大的算力和存儲消耗,大多場景下從0到1訓練一個模型不僅成本高昂,而且沒有必要,因此基于預訓練的模型并對其進行微調成為有價值的研究方向。微調預訓練的通用大模型,不僅可以節(jié)約成本,也可以使模型更符合特定領域的需求,變得更定制化、專業(yè)化。如下圖所示,用戶基于預訓練的基礎模型采用合適的微調技術,以定制化的數據集作為輸入,經過微調訓練最終可輸出一個性能更優(yōu)的微調模型。本文主要調研并梳理了LLM微調常規(guī)流程及常用技術,其中介紹了Fine-Tuning(全量參數微調)及Parameter-Efficient Fine-Tuning(高效參數微調),RLHF(基于人類反饋的強化學習),Fine-Tuning全量參數微調成本巨大,應用較少。鑒此本文重點介紹Adapter、Prefix Tuning、LoRA、RLHF 4種常用微調技術的原理,通過歸納整理相關論文及資料,為模型微調工作的技術選型提供參考。

LLM微調技術調研-AI.x社區(qū)

一、基本概念

1.微調的定義

首先對模型微調下個非嚴謹的定義,大模型微調(Fine-tuning)是指在預訓練模型基礎之上,采用標注的高質量數據集或基于人類反饋機制對基礎模型進行訓練,最終輸出具備或增強特定領域能力模型的技術。

2.微調的必要性

 全量訓練成本高昂

據國盛證券報告《ChatGPT 需要多少算力》估算,GPT-3 訓練一次的成本約為 140 萬美元,對于一些更大的 LLM(大型語言模型),訓練成本介于 200 萬美元至 1200 萬美元之間。以 ChatGPT 在 1 月的獨立訪客平均數 1300 萬計算,其對應芯片需求為 3 萬多片英偉達 A100 GPU,初始投入成本約為 8 億美元,每日電費在 5 萬美元左右。因此全量訓練極其高昂,一般企業(yè)難以承受。

 通用模型難以滿足特定領域需求

例如,通用的語言大模型,經過高質量的醫(yī)療數據訓練,可更加專業(yè)的進行醫(yī)療對話。在面對“感冒了怎么辦?”之類的專業(yè)問題,微調前的模型回答可能相對寬泛,比如多喝水,癥狀嚴重時注意看醫(yī)生等,但微調后的模型會基于與用戶的多輪對話上下文,給出更精準、更專業(yè)的回答,經過醫(yī)療數據集微調后的模型,在面對醫(yī)療專業(yè)知識領域時,將具備更優(yōu)的性能。

3.微調的價值

經過微調后的模型具備更強的專業(yè)能力,諸如在問題回答、語言生成、命名實體識別、情感分析、摘要生成、文本匹配等領域具備更優(yōu)的性能。例如,基于財經新聞數據的預訓練模型經過微調后能夠在金融分析、股票預測等領域表現出色;基于醫(yī)療數據的預訓練模型經過微調后能夠提供患者更精準的醫(yī)療咨詢和用藥建議。模型微調后將具備更專業(yè)化、特定化的推理能力。

LLM微調技術調研-AI.x社區(qū)

二、微調技術

1.微調流程

LLM微調技術調研-AI.x社區(qū)

模型微調是一個循序漸進、不斷優(yōu)化迭代的系統工程,一般需要經過模型選取、任務定義、數據準備、策略選擇、模型配置、模型微調、結果評估、優(yōu)化迭代、模型測試、模型部署等流程,通過系統化、流程化的模型微調,將輸出令人滿意的結果。具體步驟簡述如下:

模型選取選取一個優(yōu)秀的基礎大模型,比如OpenAI的ChatGPT,Meta的LLaMA2等,成熟的大模型有大廠背書及活躍的社區(qū)支持,可以具備高質量的模型能力。

任務定義定義一個特定領域的任務,比如上文所述的醫(yī)療問答任務。

數據準備收集標簽化的專業(yè)數據,比如上文的醫(yī)療問答數據可分為訓練集和測試集,一部分用于訓練,一部分用于測試。

策略選擇選擇合適的模型微調策略,比如下文將詳細描述的PERT或RLHF,選擇更適合的微調技術。

模型配置以第一步選取的基礎模型作為起點,完成模型微調前的前置配置。

模型微調基于選擇的微調技術,不同不斷的迭代訓練模型,期間不斷調整參數并監(jiān)控模型的損失函數即精準度。

結果評估使用測試數據集驗證微調后模型的優(yōu)劣

優(yōu)化迭代基于上一步評估的結果,不斷迭代微調過程直到達到滿意的預期效果。

模型測試使用驗證模型的性能。

模型部署將微調后滿足預期的模型部署后等待投入推理使用

2.Fine-Tuning

Fine-Tuning指的是全量參數微調,訓練時間成本高。一般較少使用,因此本文重點介紹高效參數微調,通過凍結參數,局部微調,顯著提供微調效率。

3.PERT

  • Adapter在《Parameter-Efficient Transfer Learning for NLP 》論文中提出了Adapter方法,論文指出對預訓練模型每層中插入下游任務參數,微調時凍結模型主體參數,僅訓練特定任務的參數,最終顯著減少訓練過程中產生的算力成本。為論證Adapter方法的有效性,論文作者基于BERT Transformer模型,對26種類別的文本任務進行GLUE基準測試,最終Adapter展示了令人滿意的效果,在GLUE基準測試中,相比較于100%的全量參數微調,每個任務在僅添加3.6%參數的情況下,僅有0.4% 以內的性能差異。如下圖所示,Adapter結構在Transformer Layer中加入Adapter Layer,位置分別位于多頭注意力的投影之后及第二個前饋層之后,訓練時固定原始預訓練模型參數,僅對新增的Adapter及Layer Norm層進行微調。其中每個Adapter 由2個Feedward前饋層組成,首個前饋層接受Transformer輸出作為輸入,通過將高維特征d投影至低維特征m以控制模型參數量,低維特征m經過中間非線性層輸出,第二個前饋層將低維特征m反向還原為高維度特征d,最后作為Adapter的輸出。

LLM微調技術調研-AI.x社區(qū)

經實驗結果表明,通過添加并訓練少量參數,Adapter方法的性能可媲美全量微調,論證了Adapter方法可作為一種高效的參數微調方法。

  • Prefix Tuning基于Prompt的設計靈感斯坦福大學團隊在論文中提出的一種通過凍結模型參數,通過連續(xù)的特定任務向量而實現的更輕量級模型微調技術。Prefix Tuning屬于連續(xù)的模板構建,通過把傳統人工設計模版中的token替換成可微調的Virtual Token。其中模型輸入前添加的連續(xù)的針對特定任務的向量序列我們稱之為Prefix,通過更新特定任務的Prefix參數大幅提高微調效率。

LLM微調技術調研-AI.x社區(qū)

對于Decoder-only的GPT,prefix只加在句首,模型的輸入表示為:

LLM微調技術調研-AI.x社區(qū)

對于Encoder-Decoder的BART,prefix同時加在編碼器和解碼器的開頭:

LLM微調技術調研-AI.x社區(qū)

如下圖所示,在下游任務微調時,模型參數被凍結,之后Prefix部分參數被更新,顯著提高訓練效率。

LLM微調技術調研-AI.x社區(qū)

  • LoRA

Prefix Tuning通過輸入序列的前綴加入prefix token,引導模型模型提取x特征相關的信息,以便更好的生成結果y。訓練微調過程中,我們只需要凍結模型其余參數,僅單獨訓練prefix token相關參數即可,每個下游任務均可單獨訓練一套prefix token,Prefix-Tuning雖然過程看似方便,但也存在以下弊端:

  • 訓練難度大原始論文指出,訓練模型的效果并非嚴格隨prefix參數量單調遞增
  • 會降低原始文字prompt表達能力為節(jié)省計算量和顯存,我們一般會固定數據的輸入長度,增加prefix之后,留給原始文本數據的空間會被擠壓,因此可能會降低原始文本prompt的表達能力,使得輸入層有效信息減少。

Prefix Tuning訓練難度大,那是否有其他的微調方法呢?LoRA(Low-Rank Adaptation)是微軟研究團隊提出的一種通過凍結預訓練模型參數,在Transformer每一層中加入2個可供訓練的A、B低秩旁路矩陣(其中一個矩陣負責降維、另一個負責升維),可大幅減少微調參數量的方法。LoRA整體架構如下圖:

LLM微調技術調研-AI.x社區(qū)

如圖左側表示全參微調的場景,參數分為和兩部分:

  • LLM微調技術調研-AI.x社區(qū):預訓練權重
  • LLM微調技術調研-AI.x社區(qū):微調增量更新權重

全參微調可視為凍結的預訓練權重W+微調過程中產生的增量更新權重 LLM微調技術調研-AI.x社區(qū) ,假設輸入為x,輸出為y,則有 LLM微調技術調研-AI.x社區(qū) 。

如圖右側表示LoRA微調場景,我們用矩陣A和矩陣B近似表示 LLM微調技術調研-AI.x社區(qū) :

  • LLM微調技術調研-AI.x社區(qū):低秩矩陣A,其中r被稱為“秩”,對A進行高斯初始化。
  • LLM微調技術調研-AI.x社區(qū):低秩矩陣B,對B采用零初始化。

經過拆分,我們將 LLM微調技術調研-AI.x社區(qū) 改寫成 LLM微調技術調研-AI.x社區(qū) 的等價形式,微調參數 LLM微調技術調研-AI.x社區(qū) 從降為 LLM微調技術調研-AI.x社區(qū) ,同時不改變輸出數據的維度,即在LoRA下我們可以定義為: LLM微調技術調研-AI.x社區(qū) 。

其中,論文指出對于AB兩個低秩矩陣,會使用超參α(常數)來做調整,以適配更優(yōu)的微調性能?;贚oRA架構,在原始預訓練矩陣的旁路,我們用低秩矩陣A和B來近似代替增量更新權重 LLM微調技術調研-AI.x社區(qū) ,訓練過程中通過固定預訓練權重 LLM微調技術調研-AI.x社區(qū) ,只對低秩矩陣A和B進行微調訓練,可大幅提高效率,據論文統計,采用LoRA方法在微調GPT3 175B時,顯存消耗從1.2TB降至350GB,極大的降低了訓練開銷。

4.RLHF

RLHF(Reinforcement Learning from Human Feedback)是基于人類反饋的強化學習。傳統基于prompt提示詞生成的結果相對主觀并依賴上下文,缺少人類的偏好和主觀意見。RLHF中使用人類反饋作為性能衡量標準,不斷通過反饋結果來優(yōu)化模型,可使訓練后的模型更符合人類預期。RLHF涉及多個模型和多個訓練階段,一般分為以下3大核心步驟:

  • 預訓練模型使用標注過的數據來調整預訓練模型參數,例如OpenAI在其InstructGPT中采用較小版本的GPT-3,Anthropic使用1000萬-52B參數的Transformer進行訓練使其更好的適應特定任務領域。

LLM微調技術調研-AI.x社區(qū)

  • 訓練獎勵模型RM獎勵模型用于評估文本序列質量,它接收一系列文本并返回數值,數值對應人類的偏好程度。訓練數據通常由多個語言模型生成的文本序列組成,這些序列經過人工評估或使用其他模型(比如ChatGPT)進行打分。獎勵模型不斷指導模型生成更符合人類預期的高質量文本。

LLM微調技術調研-AI.x社區(qū)

  • 基于強化學習微調利用上一步輸出的獎勵值,采用強化學習進一步微調,在強化學習中需要定義狀態(tài)空間、動作空間、策略函數及價值函數。其中,狀態(tài)空間使輸入的序列分布,動作空間是全量的token(詞匯表中的詞),價值函數基于獎勵模型的輸出和策略約束,用于評估給定狀態(tài)下采取特定動作的價值,策略函數根據當前狀態(tài)選擇下一個動作(token),最大化獎勵。

LLM微調技術調研-AI.x社區(qū)

三、討論與展望

本文重點介紹了幾種常用微調技術,各種技術的特點描述總結如下表所示:

LLM微調技術調研-AI.x社區(qū)

模型微調過程中可根據實際場景選擇合適的微調方案,以獲得更優(yōu)的性能。

參考文獻

[1] Edward Hu?、Yelong Shen?、Phillip Wallis Zeyuan Allen-Zhu、Yuanzhi Li Shean Wang Lu Wang Weizhu Chen 《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》

[2] Neil Houlsby、Andrei Giurgiu、 Stanis?aw Jastrze?bski、Bruna Morrone、Quentin de Laroussilhe、Andrea Gesmundo 、Mona Attariyan、Sylvain Gelly《Parameter-Efficient Transfer Learning for NLP 》

[3] Xiang Lisa Li、Percy Liang 《Prefix-Tuning: Optimizing Continuous Prompts for Generation》

[4] Long Ouyang、Jeff Wu、Xu Jiang、Diogo Almeida、Carroll L. Wainwright、Pamela Mishkin、Chong Zhang Sandhini、Agarwal Katarina Slama Alex Ray、John Schulman、Jacob Hilton、Fraser Kelton、Luke Miller、Maddie Simens《Training language models to follow instructions with human feedback》

[5] https://zhuanlan.zhihu.com/p/646831196

[6] https://zhuanlan.zhihu.com/p/660721012

[7] https://mp.weixin.qq.com/s/Rmnk39w92MDD4255fma-IQ

[8] https://www.theaidream.com/post/fine-tuning-large-language-models-llms-using-peft

[9] https://research.aimultiple.com/llm-fine-tuning/

[10] ??https://www.superannotate.com/blog/llm-fine-tuning??

本文轉載自 ??AI遇見云??,作者: 李飛強

收藏
回復
舉報
回復
相關推薦