code window

2024年4月29日星期一

白話LLaMA-3大模型原理

 LLaMA-3 最酷的地方就是它用了一個「全部通通丟進去」的方法(就是 SFT、拒絕採樣、DPO 和 PPO 啦!)來讓模型變得更棒...

一開始先用大概 20-30K 個人工挑選的範例做一些有監督的微調(SFT),接著 LLaMA-2 就開始一個反反覆覆的過程,透過人類的回饋來做強化學習(RLHF):

1. 做好幾輪的拒絕採樣

2. 最後用 PPO 作結

就像上面看到的,我們可以發現每做完一輪這個反覆的調整過程,模型的品質就明顯變好了。拒絕採樣和 PPO 這兩步真的幫助很大。

但 LLaMA-3 就不一樣,它在調整的過程中用了一大堆不同的訓練方法:

- SFT

- 拒絕採樣

- PPO 

- DPO

目前還不確定這些方法是不是每個模型都有用到,還是說 8B 和 80B 的版本只是用了不同的調整策略。不過,LLaMA-2 和 LLaMA-3 有一個很像的地方,就是都用了拒絕採樣!拒絕採樣其實是個簡單的調整策略,它是這樣運作的:

1. 先拿用 SFT 訓練過的模型

2. 用這個模型生出一堆結果

3. 用一個排序模型(是用人們的偏好資料訓練的)來給這些結果打分數 

4. 拿分數最高的那些結果,用類似 SFT 的有監督學習方式來訓練模型

跟 PPO/DPO 比起來,這個策略算是蠻簡單的。LLaMA-3 說他們會用這個方法,是因為它穩定又好上手。拒絕採樣是個可靠的方式,要讓它work起來很容易。

PPO 和 DPO 都是用於大型語言模型(LLM)對齊的強化學習方法,屬於對 LLM 進行人類反饋訓練(RLHF)的兩種主要技術路線:

PPO(Proximal Policy Optimization,近端策略優化):

- 這是一種基於「獎勵」的強化學習方法。

- 在訓練過程中,需要一個單獨的「獎勵模型」來評估 LLM 生成文本的品質,給出數值化的獎勵分數。

- PPO 算法根據獎勵分數來優化 LLM 的策略(即參數),使其傾向於生成高分的文本。

- 優點是訓練目標明確,可以針對特定目標進行優化;缺點是需要訓練獎勵模型,增加了複雜性。

DPO(Decision Transformer Pre-training from Offline data,從離線數據進行決策變換器預訓練):

- 這是一種不需要顯式獎勵的強化學習方法,也稱為「免獎勵」學習。  

- DPO 直接從人類標註的偏好資料中學習,偏好資料包含了成對的文本示例,表示人類偏好哪個文本。

- DPO 訓練目標是最大化被標註為"更好"的文本的概率。

- 優點是不需要訓練單獨的獎勵模型,實現起來更簡單;缺點是訓練數據獲取較為間接,訓練目標也沒那麼明確。

PPO 和 DPO 都旨在通過人類偏好資料來調整 LLM 的行為,使其生成更符合人類意圖的文本。實際應用中,有些研究者會將兩者結合使用。比如先用 PPO 進行初步對齊,然後用 DPO 進一步微調。

總的來說,PPO 的訓練目標更直接,而 DPO 的實現更簡單。兩者各有優缺點,選擇哪種方法取決於具體任務和可用資源。隨著預訓練、監督式微調和 RLHF 的 LLM 訓練範式日益成熟,之前缺乏將無需獎勵的 DPO(從離線數據進行決策變換器預訓練)和基於獎勵的 PPO(近端策略優化)應用於同一模型和資料集時的直接比較。這篇論文有助於彌補這一空白。

PPO 整體上優於 DPO,尤其是在分佈外資料方面。在實際應用中,我們必須記住,DPO 更容易受到分佈偏移的影響。

在應用 DPO 之前,對偏好資料進行監督式微調的建議是一個寶貴的見解。此外,使用訓練好的獎勵模型標註更多數據的迭代式 DPO 方法,優於在現有偏好資料上直接使用 DPO,這也很符合直覺。

對於 PPO 而言,確定的成功因素包括大批量大小、優勢歸一化和 EMA 參數更新,這些都是實施時的有用提示。歸一化優勢有助於減少方差,而指數移動平均提供了更穩定的訓練目標。

根據這篇綜述,LLaMa-3 在 RLHF 訓練流程中實際上同時利用了 PPO 和 DPO,這是一個有趣的細節。在監督式微調之後,依次進行拒絕採樣、PPO 和 DPO 是一種創新的方法。拒絕採樣是在 RLHF 步驟之前過濾預訓練數據,以提高資料品質的一種方式。

https://arxiv.org/pdf/2404.10719.pdf

這項研究為希望應用 RLHF 來對齊 LLM 的從業者提供了寶貴的指導。儘管 DPO 因其簡單性而廣受歡迎,但這篇論文表明,PPO 方法雖然稍微複雜一些,但可能會帶來更優異的結果,特別是在應對分佈偏移方面更加穩健。

LLaMa-3 再次提醒大家有關模型放大定律的誤解:並不是說更大的模型永遠更好,而是如果你想達到同樣的效能,訓練一個更大的模型反而更加經濟。

LLaMa-3語言模型的8B和70B版本重點:

支援8k的上下文長度(context length)。

使用150億個tokens在自建的24k GPU叢集上訓練。

在各種基準測試中表現優異。有趣的是,在某些情況下Llama3-8B的表現甚至超過Llama2-70B。

LLaMa-3在規模、訓練資料量和效能指標上都有顯著提升。8k的上下文長度尤其驚人,讓模型能處理更長、更複雜的輸入。


同時值得注意的是,8B的小模型在某些任務上竟然表現得比70B版本還好。顯示了模型架構和訓練方法的巧妙設計,讓效能不完全取決於參數量的多寡。

沒錯,這可能有點違反直覺,但這是語言大模型(LLM)Scaling laws的一個重要發現:

更大的模型在資料利用上非常有效率,甚至可以抵銷單次訓練步驟所需的額外訓練成本。為了讓一個較小的模型達到和大模型同等的效能,你必須訓練更多步驟,或者使用更大的批次大小。

但我認為,大家可能有點過度強調最佳的訓練運算了。隨著 LLMs 的使用者群快速成長,訓練成本與推論成本相比,將會變得比較不那麼重要。這將促使人們去訓練那些訓練成本雖然較高,但體積更小、效能也更好的模型。

沒有留言:

發佈留言

SambaNova SN40L: 利用Dataflow和專家組合(COE)來克服AI記憶牆的大模型

摘要 GPT-4等整體式大型語言模型(LLM)為現代生成AI應用鋪路。然而,大規模訓練、服務及維護整體式LLM仍然極其昂貴和充滿挑戰。現代AI加速器計算能力與記憶體比例的不成比例增長已經造成了記憶體壁障,需要新的方法來部署AI。最近的研究顯示,許多小型專家模型的組合,每個模型參數...