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 的使用者群快速成長,訓練成本與推論成本相比,將會變得比較不那麼重要。這將促使人們去訓練那些訓練成本雖然較高,但體積更小、效能也更好的模型。
沒有留言:
發佈留言