UCLA華人提出全新自我對弈機制!LLM自己訓自己,效果碾壓GPT-4專家指導
合成數據已經成為了大語言模型進化之路上最重要的一塊基石了。
在去年底,有網友扒出前OpenAI首席科學家Ilya曾經在很多場合表示過,LLM的發展不存在數據瓶頸,合成數據可以解決大部分的問題。
圖片
英偉達高級科學家Jim Fan在看了最近的一批論文后也認為,使用合成數據,再加上傳統用于游戲和圖像生成的技術思路,可以讓LLM完成大幅度的自我進化。
圖片
而正式提出這個方法的論文,是由來自UCLA的華人團隊。
圖片
論文地址:https://arxiv.org/abs/2401.01335v1
他們通過自我對弈機制(SPIN)生成合成數據,再通過自我微調的方法,不使用新的數據集,讓性能較弱的LLM在Open LLM Leaderboard Benchmark上將平均分從58.14提升至63.16。
研究人員提出了一種名為SPIN的自我微調的方法,通過自我對弈的方式——LLM與其前一輪迭代版本進行對抗,從而逐步提升語言模型的性能。
圖片
這樣就無需額外的人類標注數據或更高級語言模型的反饋,也能完成模型的自我進化。
主模型和對手模型的參數完全一致。用兩個不同的版本進行自我對弈。
對弈過程用公式可以概括為:
圖片
自我對弈的訓練方式,總結起來思路大概是這樣:
通過訓練主模型來區分對手模型生成的響應和人類目標響應,對手模型是輪迭代獲得的語言模型,目標是生成盡可能難以區分的響應。
假設第t輪迭代得到的語言模型參數為θt,則在第t+1輪迭代中,使用θt作為對手玩家,針對監督微調數據集中每個prompt x,使用θt生成響應y'。
然后優化新語言模型參數θt+1,使其可以區分y'和監督微調數據集中人類響應y。如此可以形成一個漸進的過程,逐步逼近目標響應分布。
這里,主模型的損失函數采用對數損失,考慮y和y'的函數值差。
對手模型加入KL散度正則化,防止模型參數偏離太多。
具體的對抗博弈訓練目標如公式4.7所示。從理論分析可以看出,當語言模型的響應分布等于目標響應分布時,優化過程收斂。
如果使用對弈之后生成的合成數據進行訓練,再使用SPIN進行自我微調,能有效提高LLM的性能。
圖片
但之后在初始的微調數據上再次簡單地微調卻又會導致性能下降。
而SPIN僅需要初始模型本身和現有的微調數據集,就能使得LLM通過SPIN獲得自我提升。
特別是,SPIN甚至超越了通過DPO使用額外的GPT-4偏好數據訓練的模型。
圖片
而且實驗還表明,迭代訓練比更多epoch的訓練能更加有效地提升模型性能。
圖片
延長單次迭代的訓練持續時間不會降低SPIN的性能,但會達到極限。
迭代次數越多,SPIN的效果的就越明顯。
網友在看完這篇論文之后感嘆:
合成數據將主宰大語言模型的發展,對于大語言模型的研究者來說將會是非常好的消息!
圖片
自我對弈讓LLM能不斷提高
具體來說,研究人員開發的SPIN系統,是由兩個相互影響的模型相互促進的系統。
用表示的前一次迭代t的LLM,研究人員使用它來生成對人工注釋的SFT數據集中的提示x的響應y。
接下來的目標是找到一個新的LLM,能夠區分
生成的響應y和人類生成的響應y'。
這個過程可以看作是一個兩人游戲:
主要玩家或新的LLM試圖辨別對手玩家的響應和人類生成的響應,而對手或舊的LLM
生成響應與人工注釋的SFT數據集中的數據盡可能相似。
通過對舊的進行微調而獲得的新LLM
更喜歡
的響應,從而產生與
更一致的分布
。
在下一次迭代中,新獲得的LLM成為響應生成的對手,自我對弈過程的目標是LLM最終收斂到
,使得最強的LLM不再能夠區分其先前生成的響應版本和人類生成的版本。
如何使用SPIN提升模型性能
研究人員設計了個兩人游戲,其中主要模型的目標是區分LLM生成的響應和人類生成的響應。與此同時,對手的作用是產生與人類的反應無法區分的反應。研究人員的方法的核心是訓練主要模型。
首先說明如何訓練主要模型來區分LLM的回復和人類的回復。
研究人員方法的核心是自我博弈機制,其中主玩家和對手都是相同的LLM,但來自不同的迭代。
更具體地說,對手是上一次迭代中的舊LLM,而主玩家是當前迭代中要學習的新LLM。在迭代t+1時包括以下兩個步驟:(1)訓練主模型,(2)更新對手模型。
訓練主模型
首先,研究人員將說明如何訓練主玩家區分LLM反應和人類反應。受積分概率度量(IPM)的啟發,研究人員制定了目標函數:
圖片
更新對手模型
對手模型的目標是找到更好的LLM,使其產生的響應與主模型的p數據無異。
實驗
SPIN有效提升基準性能
研究人員使用HuggingFace Open LLM Leaderboard作為廣泛的評估來證明 SPIN的有效性。
在下圖中,研究人員將經過0到3次迭代后通過SPIN微調的模型與基本模型zephyr-7b-sft-full的性能進行了比較。
研究人員可以觀察到,SPIN通過進一步利用SFT數據集,在提高模型性能方面表現出了顯著的效果,而基礎模型已經在該數據集上進行了充分的微調。
在第0次迭代中,模型響應是從zephyr-7b-sft-full生成的,研究人員觀察到平均得分總體提高了2.66%。
在TruthfulQA和GSM8k基準測試中,這一改進尤其顯著,分別提高了超過5%和10%。
在迭代1中,研究人員采用迭代0中的LLM模型來生成SPIN的新響應,遵循算法1中概述的過程。
此迭代平均產生1.32%的進一步增強,在Arc Challenge和TruthfulQA基準測試中尤其顯著。
隨后的迭代延續了各種任務增量改進的趨勢。同時,迭代t+1時的改進自然更小
圖片
zephyr-7b-beta是從zephyr-7b-sft-full衍生出來的模型,使用DPO在大約62k個偏好數據上訓練而成。
研究人員注意到,DPO需要人工輸入或高級語言模型反饋來確定偏好,因此數據生成是一個相當昂貴的過程。
相比之下,研究人員的SPIN只需要初始模型本身就可以。
此外,與需要新數據源的DPO不同,研究人員的方法完全利用現有的SFT數據集。
下圖顯示了SPIN在迭代0和1(采用50k SFT數據)與DPO訓練的性能比較。
圖片
研究人員可以觀察到,雖然DPO利用了更多新來源的數據,但基于現有SFT數據的SPIN從迭代1開始,SPIN甚至超過了DPO的性能、SPIN在排行榜基準測試中的表現甚至超過了DPO。
參考資料: