![]()
這項(xiàng)由北航(北京航空航天大學(xué))的吳家俊、楊健等研究團(tuán)隊(duì)與華為聯(lián)合完成的研究,發(fā)表于2025年12月19日的arXiv預(yù)印本平臺(tái)(論文編號(hào):arXiv:2512.17385v1)。這項(xiàng)工作首次實(shí)現(xiàn)了讓大語(yǔ)言模型完全依靠自己內(nèi)部的知識(shí)來(lái)學(xué)習(xí)編程,無(wú)需任何外部數(shù)據(jù)或人工標(biāo)注,為AI編程能力的提升開(kāi)辟了全新路徑。
想象你是一個(gè)剛剛學(xué)會(huì)基礎(chǔ)語(yǔ)言的孩子,突然有一天你不需要任何老師、課本或外界幫助,僅憑自己大腦中已有的知識(shí)就能學(xué)會(huì)復(fù)雜的數(shù)學(xué)和寫(xiě)作技巧。這聽(tīng)起來(lái)不可思議,但北航的研究團(tuán)隊(duì)就是讓AI做到了類(lèi)似的事情。他們開(kāi)發(fā)的UCoder系統(tǒng)能夠讓大語(yǔ)言模型完全依靠自身內(nèi)部已有的編程知識(shí),通過(guò)一套巧妙的"自我訓(xùn)練"機(jī)制,在不依賴(lài)任何外部代碼庫(kù)、教學(xué)樣例或人工標(biāo)注的情況下,自主提升編程能力。
傳統(tǒng)的AI編程訓(xùn)練就像是讓學(xué)生反復(fù)做老師精心準(zhǔn)備的練習(xí)題。研究人員需要花費(fèi)大量時(shí)間和精力收集編程題目,編寫(xiě)標(biāo)準(zhǔn)答案,然后讓AI模型學(xué)習(xí)這些人工準(zhǔn)備的材料。這個(gè)過(guò)程不僅成本高昂,而且非常耗時(shí)。更重要的是,隨著AI模型能力的不斷提升,準(zhǔn)備高質(zhì)量訓(xùn)練數(shù)據(jù)的難度也在急劇增加,就像是需要不斷出更難的題目來(lái)挑戰(zhàn)越來(lái)越聰明的學(xué)生。
北航團(tuán)隊(duì)提出的解決方案可以比作讓AI成為自己的老師。他們?cè)O(shè)計(jì)了一套名為IPC(Internal Probing of LLMs for Code generation)的框架,這個(gè)框架能夠探測(cè)和利用大語(yǔ)言模型內(nèi)部已經(jīng)存在的編程知識(shí)。這就好比發(fā)現(xiàn)一個(gè)人其實(shí)已經(jīng)掌握了很多技能,只是需要一個(gè)合適的方法來(lái)激發(fā)和整理這些潛在能力。
這套系統(tǒng)的工作原理可以用一個(gè)生動(dòng)的比喻來(lái)理解。設(shè)想AI模型的大腦就像一個(gè)巨大的圖書(shū)館,里面存放著通過(guò)預(yù)訓(xùn)練獲得的各種編程知識(shí),但這些知識(shí)就像散落在不同角落的書(shū)籍,沒(méi)有得到很好的整理和利用。UCoder系統(tǒng)就像一位聰明的圖書(shū)管理員,能夠系統(tǒng)性地整理這些知識(shí),并創(chuàng)造出一套讓AI自我學(xué)習(xí)和提升的機(jī)制。
具體來(lái)說(shuō),這個(gè)過(guò)程分為六個(gè)相互關(guān)聯(lián)的階段,就像是一個(gè)完整的自我訓(xùn)練循環(huán)。首先是"問(wèn)題空間探索"階段,AI模型需要自己生成編程問(wèn)題。這不是簡(jiǎn)單的復(fù)制粘貼,而是真正創(chuàng)造性的工作。模型需要設(shè)計(jì)出具有完整功能規(guī)范的算法問(wèn)題,包括清晰的問(wèn)題描述、輸入輸出示例,甚至是解題提示。這個(gè)過(guò)程就像是讓AI成為出題老師,需要深入理解各種編程概念和算法思維。
接下來(lái)是"質(zhì)量評(píng)估"階段,AI需要對(duì)自己生成的問(wèn)題進(jìn)行評(píng)分和分類(lèi)。這個(gè)步驟類(lèi)似于讓AI擔(dān)任閱卷老師的角色,需要判斷問(wèn)題的質(zhì)量、難度和完整性。然后是"接口綜合"階段,AI會(huì)為每個(gè)問(wèn)題生成相應(yīng)的解決方案框架,包括函數(shù)簽名、文檔說(shuō)明和基本的實(shí)現(xiàn)結(jié)構(gòu)。
第四個(gè)階段是"測(cè)試?yán)斫馓剿?,這個(gè)環(huán)節(jié)特別有趣。AI需要為每個(gè)編程問(wèn)題生成大約100個(gè)測(cè)試用例,這些測(cè)試用例要能夠充分驗(yàn)證解決方案的正確性,包括邊界條件和特殊情況。這就像是讓AI成為質(zhì)量檢測(cè)員,需要想出各種可能的情況來(lái)測(cè)試程序的可靠性。
核心的第五階段是"解決方案空間探索"。在這個(gè)階段,AI會(huì)為每個(gè)問(wèn)題生成128個(gè)不同的解決方案候選,這些解決方案在實(shí)現(xiàn)方法和代碼結(jié)構(gòu)上都有所不同。然后系統(tǒng)會(huì)運(yùn)用一種巧妙的"執(zhí)行驅(qū)動(dòng)共識(shí)聚類(lèi)"機(jī)制來(lái)識(shí)別正確的解決方案。這個(gè)機(jī)制基于一個(gè)重要的觀察:正確的程序?qū)崿F(xiàn)雖然代碼可能不同,但它們?cè)诿鎸?duì)相同測(cè)試用例時(shí)會(huì)產(chǎn)生相同的輸出結(jié)果,而錯(cuò)誤的實(shí)現(xiàn)往往會(huì)產(chǎn)生各不相同的錯(cuò)誤結(jié)果。
這種共識(shí)機(jī)制就像是在茫茫人海中尋找志同道合的朋友。當(dāng)很多不同的解決方案都給出相同的正確答案時(shí),我們就可以相信這些解決方案很可能是正確的。反之,如果某個(gè)解決方案給出的答案與大多數(shù)不同,那它很可能存在錯(cuò)誤。通過(guò)這種方式,系統(tǒng)能夠在沒(méi)有標(biāo)準(zhǔn)答案的情況下,自動(dòng)識(shí)別出高質(zhì)量的解決方案。
最后的第六階段是"知識(shí)鞏固和強(qiáng)化"。系統(tǒng)會(huì)將通過(guò)共識(shí)機(jī)制篩選出的高質(zhì)量解決方案作為新的訓(xùn)練數(shù)據(jù),對(duì)AI模型進(jìn)行進(jìn)一步的有監(jiān)督微調(diào)。這個(gè)過(guò)程會(huì)不斷重復(fù),形成一個(gè)正向反饋循環(huán):改進(jìn)后的模型能夠生成更高質(zhì)量的候選解決方案,從而產(chǎn)生更可靠的訓(xùn)練信號(hào),進(jìn)一步提升模型性能。
研究團(tuán)隊(duì)在多個(gè)標(biāo)準(zhǔn)編程基準(zhǔn)測(cè)試上驗(yàn)證了UCoder的效果,結(jié)果令人印象深刻。在HumanEval這個(gè)經(jīng)典的Python編程測(cè)試中,UCoder-7B模型達(dá)到了83.5%的通過(guò)率,UCoder-14B達(dá)到87.8%,UCoder-32B更是達(dá)到89.0%。這些數(shù)字意味著什么呢?簡(jiǎn)單來(lái)說(shuō),就是AI能夠正確解決大部分常見(jiàn)的編程問(wèn)題,其表現(xiàn)已經(jīng)接近甚至超越了一些需要大量人工標(biāo)注數(shù)據(jù)訓(xùn)練的傳統(tǒng)模型。
更有趣的是,研究團(tuán)隊(duì)發(fā)現(xiàn)了一個(gè)"反向縮放"現(xiàn)象。通常我們認(rèn)為更大的模型會(huì)從訓(xùn)練中獲得更大的收益,但在這個(gè)自我訓(xùn)練框架中,較小的模型反而能夠獲得更顯著的性能提升。7B參數(shù)的小模型通過(guò)6輪迭代訓(xùn)練,在某些測(cè)試中的性能提升超過(guò)13個(gè)百分點(diǎn),而32B的大模型提升幅度相對(duì)較小。這個(gè)現(xiàn)象可能是因?yàn)檩^小的模型在預(yù)訓(xùn)練階段獲得的編程知識(shí)還不夠充分,因此有更大的改進(jìn)空間,而自我訓(xùn)練恰好能夠幫助它們更好地整理和利用這些潛在知識(shí)。
為了驗(yàn)證系統(tǒng)生成內(nèi)容的質(zhì)量和多樣性,研究團(tuán)隊(duì)進(jìn)行了詳細(xì)的分析。他們發(fā)現(xiàn),AI生成的16867個(gè)編程問(wèn)題在詞匯、語(yǔ)義和結(jié)構(gòu)上都展現(xiàn)出了豐富的多樣性。從詞匯角度看,這些問(wèn)題的平均信息熵達(dá)到3.64比特,接近自然語(yǔ)言的變化程度,說(shuō)明AI沒(méi)有簡(jiǎn)單地重復(fù)模板,而是真正創(chuàng)造出了多樣化的問(wèn)題描述。
從語(yǔ)義覆蓋面來(lái)看,生成的問(wèn)題涵蓋了七個(gè)主要領(lǐng)域:數(shù)據(jù)結(jié)構(gòu)(占18.3%)、算法設(shè)計(jì)(14.8%)、字符串處理(11.4%)等,沒(méi)有任何單一類(lèi)別占主導(dǎo)地位,體現(xiàn)了良好的領(lǐng)域平衡性。更重要的是,這些問(wèn)題包含了229個(gè)領(lǐng)域特定的技術(shù)術(shù)語(yǔ),如"dijkstra"、"greedy"、"traversal"等,表明AI確實(shí)理解了具體的算法概念,而不是在泛泛而談。
在解決方案的多樣性方面,系統(tǒng)生成的260萬(wàn)個(gè)代碼樣本在抽象語(yǔ)法樹(shù)結(jié)構(gòu)上覆蓋了15種不同的語(yǔ)法構(gòu)造,總計(jì)超過(guò)2.1億個(gè)語(yǔ)法節(jié)點(diǎn)。這些解決方案在復(fù)雜度和代碼長(zhǎng)度上也表現(xiàn)出廣泛的分布,平均復(fù)雜度為2.7,平均代碼長(zhǎng)度為22.4行,顯示出實(shí)現(xiàn)方法的豐富性。
執(zhí)行驅(qū)動(dòng)共識(shí)機(jī)制的有效性也得到了充分驗(yàn)證。研究團(tuán)隊(duì)分析了9700個(gè)解決方案候選的質(zhì)量分布,發(fā)現(xiàn)代碼質(zhì)量與其困惑度(一種衡量代碼流暢性的指標(biāo))之間存在明顯的分層關(guān)系。高質(zhì)量的解決方案(執(zhí)行成功率80%以上)主要集中在困惑度1.05以下的區(qū)間,而低質(zhì)量解決方案的困惑度則明顯更高。這種清晰的分層為自動(dòng)質(zhì)量識(shí)別提供了可靠的信號(hào)。
通過(guò)對(duì)比實(shí)驗(yàn),研究團(tuán)隊(duì)證明了基于共識(shí)的選擇策略確實(shí)優(yōu)于其他替代方案。與隨機(jī)選擇、基于聚類(lèi)、選擇最低困惑度或基于執(zhí)行成功率等策略相比,共識(shí)機(jī)制在所有測(cè)試基準(zhǔn)上都取得了最佳或接近最佳的性能。特別是在FullStackBench這樣的綜合性測(cè)試中,共識(shí)方法比隨機(jī)選擇的優(yōu)勢(shì)隨著模型規(guī)模增大而擴(kuò)大,在32B模型上的優(yōu)勢(shì)達(dá)到13.9個(gè)百分點(diǎn)。
這項(xiàng)研究的理論基礎(chǔ)也十分扎實(shí)。研究團(tuán)隊(duì)提出了一個(gè)重要的理論保證:在滿足一定條件的情況下,最大共識(shí)聚類(lèi)包含正確實(shí)現(xiàn)的概率至少為1-δ-n?p^|T|,其中δ是錯(cuò)誤概率的上界,n是候選數(shù)量,p是錯(cuò)誤實(shí)現(xiàn)產(chǎn)生相同輸出的概率,|T|是測(cè)試用例數(shù)量。這個(gè)公式告訴我們,只要測(cè)試用例足夠多,錯(cuò)誤實(shí)現(xiàn)很難"串通"產(chǎn)生相同的錯(cuò)誤輸出,因此共識(shí)機(jī)制能夠可靠地識(shí)別正確的解決方案。
從實(shí)際應(yīng)用的角度來(lái)看,這項(xiàng)研究具有重要的意義。首先,它大大降低了訓(xùn)練高質(zhì)量AI編程助手的門(mén)檻。傳統(tǒng)方法需要大量人工標(biāo)注的訓(xùn)練數(shù)據(jù),成本高昂且耗時(shí)。而UCoder只需要基礎(chǔ)的預(yù)訓(xùn)練模型,就能夠自主提升編程能力,這為資源受限的研究機(jī)構(gòu)和企業(yè)提供了新的可能性。
其次,這種自我改進(jìn)的能力意味著AI編程助手能夠持續(xù)學(xué)習(xí)和適應(yīng)新的編程挑戰(zhàn),而不需要頻繁的人工干預(yù)和數(shù)據(jù)更新。這對(duì)于快速變化的軟件開(kāi)發(fā)環(huán)境來(lái)說(shuō)特別有價(jià)值。
不過(guò),這項(xiàng)研究也存在一些局限性。目前的實(shí)驗(yàn)主要集中在Python編程任務(wù)上,對(duì)于其他編程語(yǔ)言和更復(fù)雜的軟件工程場(chǎng)景,還需要進(jìn)一步驗(yàn)證。另外,系統(tǒng)的有效性依賴(lài)于可執(zhí)行的測(cè)試用例,對(duì)于一些難以形式化驗(yàn)證的編程任務(wù)(如用戶(hù)界面設(shè)計(jì)、代碼可維護(hù)性等),可能需要額外的質(zhì)量評(píng)估機(jī)制。
此外,為每個(gè)問(wèn)題生成128個(gè)候選解決方案的計(jì)算成本仍然不小,雖然比收集和標(biāo)注大量訓(xùn)練數(shù)據(jù)要經(jīng)濟(jì)得多,但在資源嚴(yán)重受限的環(huán)境中可能仍然是一個(gè)考慮因素。研究團(tuán)隊(duì)也注意到,迭代訓(xùn)練過(guò)程在一定輪次后會(huì)出現(xiàn)收益遞減的現(xiàn)象,需要通過(guò)驗(yàn)證性能來(lái)確定最佳的停止點(diǎn)。
總的來(lái)說(shuō),這項(xiàng)研究為AI編程能力的提升提供了一個(gè)全新的思路。它證明了大語(yǔ)言模型內(nèi)部已經(jīng)蘊(yùn)含了豐富的編程知識(shí),關(guān)鍵在于如何有效地激發(fā)和利用這些知識(shí)。通過(guò)巧妙的自我訓(xùn)練機(jī)制,AI能夠在沒(méi)有外部監(jiān)督的情況下持續(xù)改進(jìn)自己的編程能力,這不僅是技術(shù)上的突破,也為我們理解AI學(xué)習(xí)機(jī)制提供了新的視角。
這項(xiàng)工作的意義不僅局限于編程領(lǐng)域。它展示了一種通用的自我改進(jìn)范式,可能對(duì)其他需要復(fù)雜推理和問(wèn)題解決能力的AI應(yīng)用產(chǎn)生啟發(fā)。隨著AI模型規(guī)模和能力的不斷提升,如何有效利用模型內(nèi)部的潛在知識(shí),而不僅僅依賴(lài)外部數(shù)據(jù)的數(shù)量增長(zhǎng),將成為AI發(fā)展的一個(gè)重要方向。
北航團(tuán)隊(duì)的這項(xiàng)研究為我們展現(xiàn)了AI自主學(xué)習(xí)的巨大潛力。在這個(gè)AI技術(shù)快速發(fā)展的時(shí)代,能夠讓機(jī)器自己成為自己最好的老師,無(wú)疑是朝著真正智能化邁出的重要一步。對(duì)于關(guān)注AI發(fā)展的讀者來(lái)說(shuō),這項(xiàng)研究值得深入了解和思考,有興趣的讀者可以通過(guò)論文編號(hào)arXiv:2512.17385v1查詢(xún)完整的技術(shù)細(xì)節(jié)。
Q&A
Q1:UCoder是什么,它是如何工作的?
A:UCoder是北航團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)AI編程系統(tǒng),它的特別之處在于能讓大語(yǔ)言模型完全依靠自身已有的知識(shí)學(xué)會(huì)編程,不需要任何外部數(shù)據(jù)。它通過(guò)六個(gè)階段的循環(huán)訓(xùn)練,讓AI自己出編程題、寫(xiě)解決方案、驗(yàn)證答案,然后從正確的解決方案中學(xué)習(xí),就像讓AI成為自己的編程老師。
Q2:UCoder的編程能力有多強(qiáng)?
A:UCoder在多個(gè)標(biāo)準(zhǔn)測(cè)試中表現(xiàn)出色,7B版本在HumanEval測(cè)試中達(dá)到83.5%的通過(guò)率,14B版本達(dá)到87.8%,32B版本更是達(dá)到89.0%。這意味著它能正確解決大部分常見(jiàn)的編程問(wèn)題,性能已經(jīng)接近或超越需要大量人工數(shù)據(jù)訓(xùn)練的傳統(tǒng)模型。
Q3:普通開(kāi)發(fā)者能使用UCoder嗎?
A:目前UCoder還是一個(gè)研究階段的技術(shù)框架,主要證明了AI可以通過(guò)自我訓(xùn)練提升編程能力的可能性。雖然研究團(tuán)隊(duì)基于開(kāi)源的Qwen2.5-Coder模型開(kāi)發(fā),但要成為普通開(kāi)發(fā)者可以直接使用的工具,還需要進(jìn)一步的工程化和產(chǎn)品化工作。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.