新智元報道
編輯:LRS
【新智元導讀】關于語言模型,你的問題可能已經有了答案。
過去幾個月里,Meta的LLaMA引領了一場語言模型的開源狂潮,并且隨著大眾對語言模型訓練研究的深入,很多問題也都有了答案。
比如需要人類反饋和強化學習來對齊語言模型嗎?語言模型在ChatGPT模擬數據上的效果怎么樣?是否可以用多個epoch訓練語言模型?
最近,lighting.AI的首席教研員、前威斯康星大學麥迪遜分校統計學助理教授Sebastian發布了一篇博客,介紹了一些解決上述疑問的研究成果。
在特定任務上微調語言模型
Goat模型是一個基于7B LLaMA微調的模型,在算術任務上的性能優于GPT-4,在零樣本設置中還超越了75倍參數量的540B PaLM
論文鏈接: https://arxiv.org/pdf/2305.14201.pdf
Goat相當于是一個專有用途的微調LLM,從直覺來看也肯定會優于GPT-4等通用聊天機器人。
不過對業務來說,這篇論文也打開了專用模型的大門,畢竟大部分公司追求的都是在某一領域超越GPT-4即可。
雖然Goat并不是第一個針對特定任務進行微調的語言模型,還有大量的基于FLAN微調的工作,但Goat取得成功的兩個要素在于:
1. 在一個更好的基礎語言模型上,在目標任務(相對于通用預訓練或指令微調)上進行有監督微調;
2. LLaMA對數字的分詞技術(將每個數字單獨分配一個token)
從實驗結果可知二者的結合是很重要的,第一點是因為原始7 B LLaMA基礎型號不如GPT-4;第二點是因為對OPT,GPT-J等模型的微調結果不如Goat好,因為其他模型的數字分詞技術不統一。
也有人有疑問,為什么不用Wolfram Alpha或常規計算器等工具進行算數計算,而非要用語言模型算數?
對這篇論文來說,算術任務可以很容易地合成數據集,評估也更方便,方便測試微調性能。
從Goat到Gorilla
另一個微調LLM以提高某一特定功能的例子是Gorilla,一個專門用于生成API調用的LLM。
論文鏈接: https://arxiv.org/abs/2305.15334
研究人員使用LLaMA-7 B基礎模型,并對來自Torch Hub、TensorFlow Hub和HuggingFace的1645個API調用進行了微調,發現經過微調的Gorilla在API調用上優于其他未進行微調的LLM。
讓微調更高效
之前提到的Goat模型使用低秩自適應(LoRA)技術以提高微調的效率,可以在單個24GB顯存GPU上對70億參數LLaMA模型進行微調。
論文鏈接: https://arxiv.org/abs/2305.14314
而最近發布的一個新技術QLoRA(量化LoRA)可以在單個 48GB顯存的GPU上訓練650億參數的LLaMA模型,量化的4位參數設置下,訓練后得到的65B Guanaco模型保持了完整的16位微調任務性能,并且僅在微調24小時后就達到了ChatGPT性能的99.3%。
微調語言模型需要多少數據?
對于想要定制語言模型的從業者和研究人員來說,起步難題就是獲得足夠的數據進行微調。
最近發布的LIMA論文可能是一次微調上的突破,研究結果表明,僅在1000個示例上進行微調的65 B LLaMA模型(以有監督的方式)并不落后于ChatGPT / GPT3.5等更大的模型。
論文鏈接: https://arxiv.org/abs/2305.11206
研究人員發現,在57%的情況下,GPT-4仍然更好,但他們觀察到,在43%的情況下,LIMA優于或相當于GPT-4,已經非常強了;或者從另一個角度來看,大約有一半的情況,LIMA可以優于GPT-4的前身ChatGPT/GPT3.5(也叫DaVinci 003)。
不過還有一個問題是,同樣是有監督微調后的LLaMA模型,為什么LIMA的表現比Alpaca好這么多?
首先,LIMA基于65B LLaMA模型,而原始Alpaca模型基于7B LLaMA基礎模型。
為了公平對比,作者使用65B基礎模型復刻了Alpaca的訓練過程,即使用原始Alpaca項目中描述的52000個樣本進行訓練。
所以可以得出結論,差異實際上來源于作者為LIMA精心策劃的訓練集的質量,使得LIMA可以擊敗在52倍數據上訓練的相同的65B LLaMA基礎模型。
不過還缺少的一個基線對比和消融研究是LIMA與使用RLHF而非有監督學習進行微調的65B LLaMA基礎模型。
雖然LIMA的實驗結果非常有前景,不過有一篇論文的研究結果也需要注意,模仿學習得到的語言模型可能并沒有想象中的那么強。
論文鏈接: https://arxiv.org/abs/2305.15717
最近幾個月,根據來自其他語言模型(如ChatGPT)的數據對LLM進行微調已成為常見做法,不過研究人員發現,眾包工作者對這些所謂的模仿模型評價很高。但事實證明,這些模仿模型只傾向于模仿上游語言模型的風格,而非真實性。
LIMA論文雖然沒有使用模仿數據,而是使用精心設計的數據集,但仍然值得強調的是,評估結果有時似乎好得令人難以置信,我們需要更好的基準測試。
人類反饋強化學習的替代方案
最近幾個月,有監督微調成了微調語言模型的新范式,比如LIMA論文也是使用有監督微調,但也存在其他方法來替代基于人類反饋的強化學習。
直接偏好優化(DPO,Direct Preference Optimization)也是一種全新的、可替代強化學習的方法,使用接近策略優化(PPO)的人類反饋,用于ChatGPT等指令微調模型。
研究人員表明,在RLHF中擬合獎勵模型的交叉熵損失可以直接用于微調語言模型,而且根據基準測試,使用DPO更有效,并且在回復質量方面通常也優于RLHF/PPO
多個epoch訓練會怎么樣?
微調模型需要一個預訓練的基礎模型,所以一個很自然的需求就是獲得更好的基礎模型。
對經典的機器學習模型、深度神經網絡以及最新的視覺Transformer模型訓練數百個epoch是很常見的操作,不過大型語言模型通常指訓練1個epoch,如果訓練超過一個epoch會發生什么?
論文鏈接: https://arxiv.org/pdf/2305.13230.pdf
事實證明,互聯網上的高質量文本數據比想象中的更少,此外,如果受版權保護的材料在未來被要求刪除,可能會進一步縮小數據集的規模。
論文實驗結果表明,要是因為數據量少就訓練多個epoch,可能會導致模型過擬合。
另一個有趣的結論是:dropout可以幫助減少過度擬合,但其他技術如權重衰減卻并不能。
不過現在常用的大型語言模型模型,如LLaMA,Gopher,C hinchilla,GPT-3和PaLM都沒有使用dropout,因為會減慢學習速度。
三個開放問題
1. 只重復訓練像LIMA這樣的高質量數據怎么樣?
從直覺上來看,這是有意義的,可能會對模型質量提升有所幫助,不過壞消息是,從實際來看沒有多大幫助。
研究人員對維基百科的數據進行了一項相關實驗,相比C4來說他們認為維基百科是高質量的,不過事實證明,當維基百科數據在訓練期間重復多個epoch后也發生了類似的退化現象。
2. 數據增強有用嗎?
目前有幾種數據增強技術,包括回譯、同義詞替換、句子重排以及使用模型合成數據(例如GPT-4),但還沒有數據增強對模型訓練效果的全面分析。
3. 微調是什么樣的?同樣的規則適用嗎?
根據作者的經驗,訓練3-5個小epoch是值得的,但目前也沒有相關研究全面分析。
更高效的視覺Transformer
EfficientViT是一種全新的視覺Transformer,在速度和準確性之間提供了良好的平衡,其性能優于其他高效架構,如Mobil.NETV3和MobileViT,同時速度更快。
論文鏈接: https://arxiv.org/abs/2305.07027
研究人員使用級聯組注意力,并為每個注意力頭提供完整特征的不同分割(類似于組卷積)來減少多頭自注意力層中的冗余。
之前的研究主要關注最佳的數據集大小和模型參數量,最近研究人員提出了推斷計算最佳模型形狀的方法,例如寬度和深度,實驗中的視覺Transformer性能優于大兩倍的模型。
論文鏈接: https://arxiv.org/abs/2305.13035
此外,如果使用相同的計算資源預算來訓練較小的計算優化模型,其推理成本不到較大模型的一半。
參考資料:
https://magazine.sebastianraschka.com/p/ahead-of-ai-9-llm-tuning-and-dataset