新智元報道
編輯:潤
【新智元導讀】來自UCLA的華人團隊提出一種全新的LLM自我對弈系統,能夠讓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。
參考資料:
https://arxiv.org/abs/2401.01335v1