LLM基礎(chǔ)模型系列:Fine-Tuning總覽 原創(chuàng)
由于對(duì)大型語言模型,人工智能從業(yè)者經(jīng)常被問到這樣的問題:如何訓(xùn)練自己的數(shù)據(jù)?回答這個(gè)問題遠(yuǎn)非易事。生成式人工智能的最新進(jìn)展是由具有許多參數(shù)的大規(guī)模模型驅(qū)動(dòng)的,而訓(xùn)練這樣的模型LLM需要昂貴的硬件(即許多具有大量?jī)?nèi)存的昂貴GPU)和花哨的訓(xùn)練技術(shù)(例如,完全分片的數(shù)據(jù)并行訓(xùn)練)。
幸運(yùn)的是,這些模型通常分兩個(gè)階段進(jìn)行訓(xùn)練——預(yù)訓(xùn)練和微調(diào)。其中前一個(gè)階段(要)昂貴得多。鑒于高質(zhì)量的預(yù)訓(xùn)練LLMs很容易在網(wǎng)上獲得,大多數(shù)人工智能從業(yè)者可以簡(jiǎn)單地下載一個(gè)預(yù)訓(xùn)練的模型,并專注于使這個(gè)模型(通過微調(diào))適應(yīng)他們想要的任務(wù)。
“就所需的硬件和為不同任務(wù)托管獨(dú)立實(shí)例的存儲(chǔ)/交換成本而言,微調(diào)龐大的語言模型的成本高得令人望而卻步?!?/p>
模型的大小并沒有在微調(diào)過程中改變。因此微調(diào)一個(gè)LLM雖然比預(yù)訓(xùn)練便宜,可是也不是易事,仍然需要訓(xùn)練技術(shù)和硬件來處理這樣的模型。每次微調(diào)運(yùn)行都會(huì)創(chuàng)建一個(gè)完全獨(dú)立的“副本”。
參數(shù)高效微調(diào)(PEFT)是微調(diào)一種比較好的技術(shù),它不是端到端地訓(xùn)練完整的模型,而是固定預(yù)訓(xùn)練的模型權(quán)重,并且在微調(diào)期間僅調(diào)整少量特定于任務(wù)的參數(shù)。這種方法大大減少了內(nèi)存開銷,簡(jiǎn)化了存儲(chǔ)/部署過程,并允許使用更易于訪問的硬件進(jìn)行微調(diào)LLMs。
1.微調(diào)與轉(zhuǎn)移學(xué)習(xí)
首先先來明確兩個(gè)概念,微調(diào)和轉(zhuǎn)移學(xué)習(xí)。轉(zhuǎn)移學(xué)習(xí)是將一個(gè)通用的預(yù)訓(xùn)練模型應(yīng)用到全新的但是相關(guān)領(lǐng)域的過程。而微調(diào)是將通用的預(yù)訓(xùn)練模型進(jìn)一步的訓(xùn)練。一般而言,微調(diào)是包含轉(zhuǎn)移學(xué)習(xí)的。
上圖展示了預(yù)訓(xùn)練,特征提取和微調(diào)的過程,預(yù)訓(xùn)練就是使用訓(xùn)練數(shù)據(jù)直接訓(xùn)練基礎(chǔ)模型,比較常見的有T5,BloombergGPT,GPT-4。特征提取一般是利用基礎(chǔ)模型進(jìn)行內(nèi)容的Embedding,然后在另接其他的模型進(jìn)行預(yù)測(cè),例如Bert。微調(diào)是利用訓(xùn)練數(shù)據(jù)訓(xùn)練完基礎(chǔ)模型,然后采用微調(diào)技術(shù)(例如更新部分參數(shù),更新所有層或者額外添加層)進(jìn)行二次訓(xùn)練。
微調(diào)和Prompt Engineering(通過提示詞優(yōu)化結(jié)果,基礎(chǔ)模型的參數(shù)是凍結(jié)的,經(jīng)常在論文中會(huì)用雪花圖標(biāo)標(biāo)識(shí))不同,它重新精校模型參數(shù)的數(shù)值。若是全部精校所有的參數(shù),讀者需要大量的計(jì)算資源。
上圖為2018年的一篇論文的插圖,有三幅圖片分別代表著:a為預(yù)訓(xùn)練,b為全量參數(shù)微調(diào),c為分類器微調(diào)。
Instruction-tuned就是全量微調(diào)中的一種,F(xiàn)LAN在基礎(chǔ)模型上面,通過指令調(diào)整(在通過指令描述的數(shù)據(jù)集集合上微調(diào)語言模型)可以顯著提高未見任務(wù)的零樣本性能。它采用 137B參數(shù)預(yù)訓(xùn)練語言模型,并在通過自然語言指令模板表達(dá)的60多個(gè)NLP數(shù)據(jù)集上對(duì)其進(jìn)行指令調(diào)整。
FLAN 顯著提高了其未修改版本的性能,并在評(píng)估的25個(gè)數(shù)據(jù)集中的20個(gè)數(shù)據(jù)集上超越了零樣本175B GPT-3。FLAN 甚至在 ANLI、RTE、BoolQ、AI2-ARC、OpenbookQA和StoryCloze上的表現(xiàn)遠(yuǎn)遠(yuǎn)優(yōu)于少樣本 GPT-3。消融研究表明,微調(diào)數(shù)據(jù)集的數(shù)量、模型規(guī)模和自然語言指令是指令調(diào)整成功的關(guān)鍵。大白話而言,它將這些數(shù)據(jù)集根據(jù)不同的模版構(gòu)建不同的指令訓(xùn)練樣本,然后再次訓(xùn)練模型:
全量微調(diào)是美味的,但是若沒有太多的計(jì)算資源,那么存在兩種方法可以在有限的資源下將模型調(diào)教得較為服帖。一 種是X-shot Prompt,這點(diǎn)在介紹Dspy的時(shí)候說過了。另外一種是高效參數(shù)微調(diào)(微調(diào)部分參數(shù)),簡(jiǎn)稱PEFT(Parameter-efficient fine tuning)。本系列還是會(huì)將重點(diǎn)放在PEFT的技術(shù)上面。
2.PEFT概覽
最后先來看看PEFT的技術(shù)分類和全景圖,大致可分為四類:
- Additive PEFT:通過注入新的可訓(xùn)練模塊或參數(shù)來修改模型架構(gòu);Selective PEFT:使選擇部分的參數(shù)子集在微調(diào)期間可訓(xùn)練,其余的凍結(jié);
- Reparameterization PEFT:將原來的參數(shù)重新結(jié)構(gòu)化,比如用低軼矩陣重新表示以進(jìn)行訓(xùn)練,然后等效地將其轉(zhuǎn)換推理。
- Hybrid PEFT,它結(jié)合了不同PEFT方法的優(yōu)點(diǎn),建立了一個(gè)統(tǒng)一的PEFT模型。
上圖為各種算法,都是圍繞著各種主流微調(diào)技術(shù)的微調(diào)方法,比如之前的文章已經(jīng)介紹過的LoRA,后續(xù)將圍繞這根主線開展學(xué)習(xí)之旅。
本文轉(zhuǎn)載自 ??魯班模錘??,作者: 龐德公
