清華&通院推出"絕對零"訓(xùn)練法,零外部數(shù)據(jù)大模型自我博弈解鎖推理能力
不用引入外部數(shù)據(jù),通過自我博弈(Self-play)就能讓預(yù)訓(xùn)練大模型學(xué)會推理?
來自清華、北京通用人工智能研究院和賓夕法尼亞州立大學(xué)的研究人員,提出了一種名為“絕對零”(Absolute Zero)的訓(xùn)練方式。
這種方法通過讓大模型根據(jù)推理目標(biāo),自己生成并解決任務(wù),便可以獲得推理能力。
測試中,用“絕對零”訓(xùn)練出的模型,表現(xiàn)已經(jīng)超過了用專家標(biāo)注樣本訓(xùn)練的模型。
并且“絕對零”方法只需在代碼環(huán)境中訓(xùn)練,但可以讓模型在數(shù)學(xué)推理上也取得顯著進步。
這項研究也在Reddit上引發(fā)了討論,開帖轉(zhuǎn)載的網(wǎng)友驚嘆:會自我進化的AI已經(jīng)被解鎖了?
在出題-做題中自我學(xué)習(xí)
“絕對零”采用了一種自我博弈的學(xué)習(xí)范式。在這個范式下,一個統(tǒng)一的語言模型扮演Proposer和Solver兩個角色。
Proposer負(fù)責(zé)生成新的推理任務(wù),Solver負(fù)責(zé)解決這些任務(wù)。通過兩個角色的交替和協(xié)同,模型可以自主地構(gòu)建學(xué)習(xí)任務(wù)分布,并在求解任務(wù)的過程中不斷提升推理能力。
“絕對零”將所有的推理任務(wù)統(tǒng)一表示為(p,i,o)(即程序,輸入,輸出)的三元組形式。
這里的程序是一段可執(zhí)行的代碼,輸入是該程序的輸入數(shù)據(jù),輸出是程序在給定輸入下的輸出結(jié)果。
通過這種形式化的表示,原本抽象的推理任務(wù)被轉(zhuǎn)化為了一個個具體的程序設(shè)計問題,語言模型可以通過生成和操作代碼來完成任務(wù)的生成和求解。
根據(jù)p、i、o是否已知,“絕對零”將推理任務(wù)劃分為三種基本類型——溯因(Abduction)、演繹(Deduction)和歸納(Induction):
- 溯因任務(wù):已知p和對應(yīng)的o,求可能的i。這類任務(wù)考察模型根據(jù)結(jié)果反推條件、理解代碼語義的能力;
- 演繹任務(wù):已知p和i,求o。這類任務(wù)考察模型運行和理解代碼邏輯的能力;
- 歸納任務(wù):已知一組i-o樣例,求一個統(tǒng)一p。這類任務(wù)考察模型歸納總結(jié)規(guī)律、生成代碼的能力。
在自我博弈的訓(xùn)練開始前,“絕對零”需要一個初始的任務(wù)集合作為種子(如果基礎(chǔ)模型足夠強也可以不用)。這個種子集合通過基礎(chǔ)語言模型生成一些有效的代碼(p,i,o)得到。
當(dāng)種子集合為空時,“絕對零”會使用一個預(yù)定義的“zero triplet”作為起點,實際上就是一個簡單的恒等函數(shù):
在每一輪迭代中,Proposer首先根據(jù)當(dāng)前已有的任務(wù)集合和給定的任務(wù)類型,生成一個新的推理任務(wù)。
具體來說,它會先從歷史任務(wù)中采樣一些相關(guān)的例子作為參考,然后利用語言模型的生成能力,產(chǎn)生一個新的(p,i,o)三元組。
- 對于abduction任務(wù),需要生成p和o,但不生成i;
- 對于deduction任務(wù),需要生成p和i,但不生成o;
- 對于induction任務(wù),需要生成一組輸入輸出對(i,o),但不生成p。
另外對于induction任務(wù),Proposer還會從歷史的abduction和deduction任務(wù)中采樣一個程序p,然后生成與之匹配的N個輸入輸出對(i,o),以及一段自然語言描述。
這種做法可以為induction任務(wù)提供更豐富的上下文信息,幫助Solver更好地理解和求解任務(wù)。
在生成過程中,Proposer會嘗試控制新任務(wù)的難度和新穎度,以確保生成的任務(wù)對于當(dāng)前的Solver來說既有意義又具備挑戰(zhàn)性。
具體來說,“絕對零”引入了一個“可學(xué)習(xí)性”(learnability)的概念,用于估計一個任務(wù)對于當(dāng)前的Solver模型來說有多大的學(xué)習(xí)價值。
它的計算方法是讓Solver試著解決這個任務(wù)并統(tǒng)計其成功的概率。如果任務(wù)太簡單或太難,那么這個任務(wù)的可學(xué)習(xí)性就會很低。Proposer的目標(biāo)就是生成可學(xué)習(xí)性適中的任務(wù)。
生成出的新任務(wù)將被送到一個獨立的代碼執(zhí)行器中進行驗證,執(zhí)行器會實際運行Proposer生成的程序,檢查其是否滿足以下條件:
- 語法正確性:程序能夠在Python解釋器中正常執(zhí)行,沒有語法錯誤;
- 安全性:程序沒有使用任何不安全的操作或庫,如文件讀寫、系統(tǒng)調(diào)用等;
- 確定性:程序在相同的輸入下,總是產(chǎn)生相同的輸出,沒有隨機性或不確定性。
通過這三個條件的檢查,執(zhí)行器可以濾除絕大部分無效或有害的任務(wù)。
對于通過驗證的任務(wù),執(zhí)行器還會計算“可學(xué)習(xí)性獎勵”,作為對Proposer行為的反饋。
最后,所有通過驗證的任務(wù)會被存入一個任務(wù)buffer池中,供后續(xù)的訓(xùn)練使用。
在篩選完推理任務(wù)后,“絕對零”會轉(zhuǎn)換為Solver的角色,開始解決這些任務(wù),具體方式同樣會根據(jù)任務(wù)的類型而有所不同:
- 對于abduction任務(wù),Solver要根據(jù)給定的p和o推斷可能的i。這個過程類似于“反向執(zhí)行”程序;
- 對于deduction任務(wù),Solver要根據(jù)給定的p和i推斷出o。Solver需要模擬程序的執(zhí)行過程,得出最終的輸出結(jié)果;
- 對于induction任務(wù),Solver要根據(jù)輸入輸出對(i,o),推斷可能的程序p。Solver需要從有限的樣本中總結(jié)出一般性的規(guī)律。
在求解任務(wù)的過程中,Solver可以利用語言模型已有的知識(如常見的算法模式、編程慣例等)來輔助任務(wù)的求解。
Solver生成的解會再次通過代碼執(zhí)行器進行驗證。執(zhí)行器會檢查Solver給出的輸入、輸出或程序是否真的滿足任務(wù)的要求。
如果滿足,則視為Solver成功解決了任務(wù),并給予相應(yīng)的獎勵;否則視為Solver失敗,不給予獎勵或給予懲罰。
這個獎勵信號會作為Solver行為的反饋,幫助Solver學(xué)習(xí)如何更好地解決各種類型的推理任務(wù)。
同時,Solver的解決方案也會被記錄下來,作為未來生成和求解類似任務(wù)的參考。
在每一輪迭代結(jié)束時,“絕對零”都會使用Proposer和Solver收集到的反饋信號,對整個模型進行聯(lián)合優(yōu)化和更新,使得Proposer生成的任務(wù)更有利于學(xué)習(xí),Solver解決任務(wù)的能力也越來越強。
經(jīng)過多輪迭代,“絕對零”最終可以收斂到一個很好的均衡點,在這個點上,Proposer生成的任務(wù)恰好匹配Solver的能力,Solver又能夠從這些任務(wù)中學(xué)到足夠多的知識。
數(shù)學(xué)代碼任務(wù)性能雙提升
在編程任務(wù)上,研究者使用了HumanEval+、MBPP+和LCB三個數(shù)據(jù)集。
與未經(jīng)“絕對零”訓(xùn)練的版本相比,“絕對零”將Qwen-2.5-7B-Coder的HumanEval+通過率從80.5%提高到了83.5%,將MBPP+的通過率從69.3%提高到了69.6%,將LCB的通過率從19.9%提高到了31.7%。
在數(shù)學(xué)推理任務(wù)上,研究者選取了6個具有代表性的數(shù)據(jù)集進行評測,包括AME’24、AME’25、AMC’23、MATH500、Minerva和Olypiad。
“絕對零”在這6個數(shù)據(jù)集上的平均準(zhǔn)確率達(dá)到了39.1%,比未經(jīng)“絕對零”訓(xùn)練的baseline高出了15.2個百分點。
其中,在MATH500數(shù)據(jù)集上,“絕對零”的準(zhǔn)確率達(dá)到了72.6%,超出baseline 22.6個百分點;在AMC’23數(shù)據(jù)集上,“絕對零”的準(zhǔn)確率為57.5%,超出baseline 17.5個百分點。
除了Qwen-2.5-7B-Coder,研究者還在其他幾個預(yù)訓(xùn)練語言模型上測試了“絕對零”的性能:
- Qwen-2.5-3B-Coder:應(yīng)用“絕對零”后編程任務(wù)平均通過率從51.2%提高到了54.9%,在數(shù)學(xué)任務(wù)上的平均準(zhǔn)確率從18.8%提高到了26.5%;
- Qwen-2.5-14B-Coder:應(yīng)用“絕對零”后,在編程任務(wù)上的平均通過率從60.0%提高到了63.6%,在數(shù)學(xué)任務(wù)上的平均準(zhǔn)確率從20.2%提高到了43.0%;
- Llama-3.1-8B:應(yīng)用“絕對零”后在編程任務(wù)上的平均通過率從28.5%提高到了31.6%,在數(shù)學(xué)任務(wù)上的平均準(zhǔn)確率從3.4%提高到了6.8%。
通過對不同規(guī)模和類型的語言模型的測試,研究者還發(fā)現(xiàn)“絕對零”的性能提升與模型規(guī)模呈正相關(guān)——參數(shù)越多的模型,訓(xùn)練后的性能提升也越大。
例如在數(shù)學(xué)任務(wù)上,30億參數(shù)的Qwen-2.5-3B-Coder模型提升了7.7個百分點,而140億參數(shù)的Qwen-2.5-14B-Coder模型則提升了22.8個百分點。
這表明“絕對零”能夠有效地利用大模型的能力,實現(xiàn)更高的推理性能提升。
論文地址:
https://arxiv.org/abs/2505.03335
參考鏈接:
https://www.reddit.com/r/singularity/comments/1kgr5h3/selfimproving_ai_unlocked/