這項由阿里巴巴集團(tuán)Qwen團(tuán)隊主導(dǎo)的突破性研究于2025年1月發(fā)表,論文題目為《CODEELO: Benchmarking Competition-level Code Generation of LLMs with Human-comparable Elo Ratings》。研究團(tuán)隊包括權(quán)尚浩然、楊嘉熙、于博文等多位研究人員,他們的研究成果已在arXiv平臺發(fā)布(論文編號:arXiv:2501.01257v2)。有興趣深入了解的讀者可以通過https://CodeElo-bench.github.io和https://hf.co/datasets/Qwen/CodeElo獲取完整研究資料。
當(dāng)前的人工智能發(fā)展到了一個有趣的節(jié)點。OpenAI的o1和o3模型、以及DeepSeek的r1模型都在代碼推理能力上展現(xiàn)出了驚人的進(jìn)步。然而,如何準(zhǔn)確評估這些AI模型在復(fù)雜編程任務(wù)中的真實水平,一直是個令研究人員頭疼的問題。就像體育比賽需要公平的評分系統(tǒng)一樣,AI編程能力的評估也需要一套嚴(yán)格且可比較的標(biāo)準(zhǔn)。
傳統(tǒng)的編程測試就像是在家里自己練習(xí)投籃,而真正的編程競賽則像是NBA總決賽?,F(xiàn)有的評估基準(zhǔn)存在著諸多問題:它們往往無法獲得完整的測試用例,就像考試時只能看到部分答案;無法處理需要特殊評判標(biāo)準(zhǔn)的題目,就像某些體育項目需要專業(yè)裁判而不能簡單計分;同時,不同的測試環(huán)境可能導(dǎo)致不公平的結(jié)果,就像在不同海拔高度比賽會影響運動員表現(xiàn)一樣。
阿里巴巴團(tuán)隊敏銳地意識到了這個問題。他們發(fā)現(xiàn),盡管已有多個編程競賽評估基準(zhǔn),包括LiveCodeBench、USACO和CodeContests等,但這些工具都存在致命缺陷。最核心的問題是,競賽級編程題目往往需要大量精心設(shè)計的測試用例來驗證解決方案的正確性,但在線評判平臺通常會隱藏這些測試用例。這就像是讓廚師在不知道評委口味偏好的情況下參加烹飪比賽。
更復(fù)雜的是,約30%的競賽題目沒有唯一正確答案,需要特殊的評判程序來確定答案是否正確。這種情況就像藝術(shù)創(chuàng)作比賽,不能簡單地用"對"或"錯"來評判,而需要專業(yè)評委根據(jù)創(chuàng)意、技巧等多維度標(biāo)準(zhǔn)進(jìn)行評估。傳統(tǒng)的評估方法完全無法處理這種情況。
此外,競賽編程中執(zhí)行時間是一個關(guān)鍵因素,不同的計算機性能會影響程序運行速度,就像在不同跑道上進(jìn)行短跑比賽會影響成績的公平性?,F(xiàn)有的離線測試方法無法保證執(zhí)行環(huán)境的一致性,這進(jìn)一步損害了評估結(jié)果的可靠性。
面對這些挑戰(zhàn),研究團(tuán)隊提出了一個創(chuàng)新性的解決方案:CODEELO基準(zhǔn)測試系統(tǒng)。這個系統(tǒng)的核心思想是直接利用CodeForces這個世界知名的編程競賽平臺進(jìn)行評估,就像讓AI直接參加真實的編程比賽一樣。
一、革命性的評估方法:讓AI直接上場比賽
CODEELO的最大創(chuàng)新在于其評估方法的根本性變革。傳統(tǒng)方法就像是讓運動員在訓(xùn)練場地練習(xí)后,再去模擬比賽環(huán)境進(jìn)行測試。而CODEELO則讓AI直接在真實的比賽場地上與人類選手使用完全相同的條件進(jìn)行競技。
具體來說,研究團(tuán)隊開發(fā)了一個自動提交機器人,當(dāng)AI模型生成代碼解決方案后,這個機器人會自動將代碼提交到CodeForces官方平臺進(jìn)行判定。這種方法的天才之處在于完全繞過了獲取隱藏測試用例的需求,因為平臺本身就會使用其完整的、經(jīng)過精心設(shè)計的測試套件來評判代碼。
這種直接提交的方式帶來了前所未有的評估準(zhǔn)確性。就像真正的考試中,學(xué)生必須面對完整的題目和標(biāo)準(zhǔn)答案一樣,AI模型也必須通過平臺上所有的測試用例才能獲得"通過"的評判。這徹底解決了傳統(tǒng)方法中因測試用例不完整而導(dǎo)致的誤判問題,實現(xiàn)了研究團(tuán)隊所說的"零假陽性"評估。
更重要的是,這種方法天然支持特殊評判程序。當(dāng)遇到那些沒有唯一正確答案的題目時,平臺會自動調(diào)用相應(yīng)的特殊評判程序來驗證答案的正確性。這就像在花樣滑冰比賽中,不同的裁判會從不同角度評估選手的表現(xiàn),最終給出綜合評分。
執(zhí)行環(huán)境的一致性問題也得到了完美解決。由于所有代碼都在同一個平臺上運行,無論是AI生成的代碼還是人類參賽者的代碼,都面臨完全相同的計算資源和運行環(huán)境。這確保了評估結(jié)果的絕對公平性,就像所有馬拉松選手都在同一條賽道上比賽一樣。
二、全面的問題收集與分類系統(tǒng)
為了構(gòu)建這個綜合性的評估平臺,研究團(tuán)隊從CodeForces收集了大量高質(zhì)量的競賽題目。他們專注于2024年5月4日至11月4日期間舉辦的54場比賽,總共涵蓋387個問題。這個時間范圍的選擇很有講究,既確保了題目的新穎性,避免了可能存在的數(shù)據(jù)污染問題,又保證了足夠的題目數(shù)量來進(jìn)行可靠的統(tǒng)計分析。
研究團(tuán)隊對收集到的問題進(jìn)行了詳細(xì)的分類和標(biāo)注工作,這種分類就像圖書館的分類系統(tǒng)一樣精細(xì)。首先,他們根據(jù)比賽難度將問題分為不同等級。CodeForces將比賽分為四個主要難度級別,從Div.4(最容易)到Div.1(最困難),另外還有結(jié)合了Div.1和Div.2的特殊比賽。這種分級就像學(xué)校的年級制度,確保每個水平的參與者都能找到適合自己的挑戰(zhàn)。
每個問題還有自己的難度評級,這是一個更精細(xì)的衡量標(biāo)準(zhǔn)。問題的難度評級x意味著具有x評級的參賽者在第一次遇到這個問題時有50%的概率能夠解決它。這種評級系統(tǒng)基于大量人類參賽者的實際表現(xiàn)數(shù)據(jù),具有很高的統(tǒng)計學(xué)可靠性。
算法標(biāo)簽系統(tǒng)是另一個重要的分類維度。每個問題都會被標(biāo)注上所需的算法類型,比如數(shù)學(xué)、實現(xiàn)、暴力搜索、動態(tài)規(guī)劃等等。平均而言,每個問題會關(guān)聯(lián)3.9個標(biāo)簽,因為復(fù)雜的編程問題往往需要多種算法技術(shù)的綜合運用。研究團(tuán)隊識別出了35種不同的算法標(biāo)簽,其中前16種標(biāo)簽就覆蓋了近90%的情況。
有趣的是,這些標(biāo)簽對參賽者和AI模型都是不可見的,它們只是用于后續(xù)分析,不會成為解題的提示。這確保了評估的公平性,就像考試時不會提前告訴學(xué)生這道題要用什么解題方法一樣。
三、創(chuàng)新的Elo評級計算系統(tǒng)
CODEELO最具突破性的貢獻(xiàn)之一是開發(fā)了一套與人類參賽者直接可比的Elo評級系統(tǒng)。Elo評級系統(tǒng)最初是為國際象棋比賽設(shè)計的,后來被廣泛應(yīng)用于各種競技活動中,包括編程競賽。
傳統(tǒng)的AI評估通常使用pass@n這樣的指標(biāo),即模型在n次嘗試中至少成功一次的概率。雖然這種方法簡單直觀,但它無法反映問題的相對難度,也無法與人類表現(xiàn)進(jìn)行有意義的比較。這就像用跑步的完成率來評估馬拉松選手,而不考慮他們的具體成績和排名。
研究團(tuán)隊設(shè)計的Elo評級系統(tǒng)則能夠提供更加全面和精準(zhǔn)的評估。對于每場比賽,系統(tǒng)會根據(jù)AI模型的表現(xiàn)和參與該比賽的人類選手的評級來計算模型的預(yù)期評級。具體計算過程涉及復(fù)雜的數(shù)學(xué)公式,但核心思想很簡單:如果你在一場比賽中戰(zhàn)勝了很多高手,你的評級就會大幅提升;如果你只是戰(zhàn)勝了新手,提升幅度就會有限。
這種評級系統(tǒng)的優(yōu)勢在于它考慮了多次嘗試的情況,同時對失敗的嘗試施加了適當(dāng)?shù)膽土P。在實際的編程競賽中,參賽者可以多次提交代碼,但每次失敗的提交都會產(chǎn)生時間懲罰。CODEELO的評級系統(tǒng)巧妙地模擬了這種機制,鼓勵模型解決更困難的問題,同時平衡了嘗試次數(shù)和成功率之間的關(guān)系。
研究團(tuán)隊通過數(shù)學(xué)分析證明,他們的計算方法與CodeForces官方的評級系統(tǒng)具有相同的期望值,但方差更小。這意味著評級結(jié)果更加穩(wěn)定和可靠,就像使用更精確的測量工具得到的結(jié)果一樣。
四、全面的模型評估與令人意外的發(fā)現(xiàn)
研究團(tuán)隊對33個不同的大語言模型進(jìn)行了全面評估,其中包括30個開源模型和3個專有模型。這些模型涵蓋了從10億參數(shù)到700億參數(shù)的廣泛范圍,代表了當(dāng)前AI技術(shù)的最高水平。
評估結(jié)果揭示了一些令人意外的發(fā)現(xiàn)。OpenAI的o1-mini模型以1578的Elo評級遙遙領(lǐng)先,這個成績超過了90%的人類參賽者。這相當(dāng)于在一個大型考試中排名前10%,確實是一個令人印象深刻的成績。
在開源模型中,QwQ-32B-Preview表現(xiàn)最為出色,獲得了1261的Elo評級,大約排在人類參賽者的60%位置。這個結(jié)果特別有意義,因為它展示了開源AI技術(shù)也能達(dá)到相當(dāng)高的水平。
然而,大多數(shù)其他模型的表現(xiàn)卻遠(yuǎn)不如預(yù)期。許多知名的大型模型,甚至包括一些具有數(shù)百億參數(shù)的模型,都難以解決最簡單的問題,它們的評級落在人類參賽者的最低20%范圍內(nèi)。這個結(jié)果提醒我們,在復(fù)雜的推理任務(wù)中,模型規(guī)模的增大并不總是意味著能力的提升。
研究團(tuán)隊還發(fā)現(xiàn)了一個有趣的現(xiàn)象:o1-mini和QwQ-32B-Preview都采用了長鏈思考(Chain of Thought)的推理方法。這種方法讓AI模型在給出最終答案前進(jìn)行詳細(xì)的分析和推理,類似于人類解決復(fù)雜問題時的思考過程。這一發(fā)現(xiàn)強烈暗示,增強模型的推理能力是提高編程表現(xiàn)的關(guān)鍵途徑。
五、算法類型分析揭示的能力差距
通過對不同算法類型的詳細(xì)分析,研究揭示了AI模型在編程能力上的顯著差異。這種分析就像體檢報告一樣,詳細(xì)展示了每個模型的強項和弱點。
在數(shù)學(xué)、實現(xiàn)和排序等相對直接的算法類型上,大多數(shù)模型都表現(xiàn)得相當(dāng)不錯。這些任務(wù)通常有清晰的邏輯步驟和明確的解決方案,類似于按照菜譜做菜或者按照說明書組裝家具。AI模型在這類結(jié)構(gòu)化任務(wù)上的良好表現(xiàn)符合人們的預(yù)期。
然而,當(dāng)面對動態(tài)規(guī)劃、深度優(yōu)先搜索和樹結(jié)構(gòu)等更復(fù)雜的算法時,大多數(shù)模型就顯得力不從心了。這些算法需要更深層的邏輯推理和對問題結(jié)構(gòu)的理解,就像需要根據(jù)具體情況靈活調(diào)整策略的復(fù)雜任務(wù)。許多模型在這些算法類型上的通過率接近零,顯示出AI在復(fù)雜推理方面仍有很大的改進(jìn)空間。
這種能力分布的不均勻性為AI開發(fā)者指明了未來的改進(jìn)方向。如果說數(shù)學(xué)和實現(xiàn)類題目是AI的強項,那么動態(tài)規(guī)劃和樹結(jié)構(gòu)就是它們需要重點攻克的難關(guān)。
六、編程語言選擇的意外發(fā)現(xiàn)
研究過程中一個特別有趣的發(fā)現(xiàn)涉及編程語言的選擇。當(dāng)研究團(tuán)隊讓AI模型自由選擇編程語言時,幾乎所有模型都傾向于使用Python,這個比例超過了95%。這種偏好很容易理解,因為Python語法簡潔,在AI訓(xùn)練數(shù)據(jù)中也非常常見。
然而,當(dāng)研究團(tuán)隊強制要求模型使用C++時,所有測試的模型都表現(xiàn)出了顯著的性能提升。這個結(jié)果與人類程序員的實際行為高度一致——在真實的編程競賽中,約80%的參賽者選擇使用C++,主要原因是C++的執(zhí)行效率更高,能夠更好地滿足競賽中嚴(yán)格的時間限制要求。
這一發(fā)現(xiàn)對AI模型的訓(xùn)練和應(yīng)用具有重要啟示。它表明,盡管Python可能是AI模型最熟悉的語言,但在需要考慮執(zhí)行效率的場景中,使用C++能夠顯著提升模型的實際表現(xiàn)。這就像運動員在不同的比賽環(huán)境中需要選擇不同的裝備一樣,AI模型也需要根據(jù)任務(wù)特點選擇最合適的編程語言。
這個發(fā)現(xiàn)還揭示了現(xiàn)有AI訓(xùn)練方法的一個潛在不足:模型可能過度依賴于訓(xùn)練數(shù)據(jù)中最常見的選擇,而不是針對特定任務(wù)的最優(yōu)選擇。未來的AI訓(xùn)練應(yīng)該更多地考慮任務(wù)特定的優(yōu)化策略。
七、評級穩(wěn)定性與方差分析
為了確保評估結(jié)果的可靠性,研究團(tuán)隊對評級的穩(wěn)定性進(jìn)行了深入分析。他們發(fā)現(xiàn),大多數(shù)模型在不同比賽中的表現(xiàn)都存在一定程度的波動,標(biāo)準(zhǔn)差通常在300到500之間。這種波動在一定程度上反映了模型能力的有限性——當(dāng)模型只能解決很少的問題時,額外解決一個問題就會顯著提升其評級。
通過在54場比賽中進(jìn)行測試,研究團(tuán)隊將總體平均評級的標(biāo)準(zhǔn)差降低到了約50,這是一個可以接受的水平。這種方差的降低說明,通過增加測試的比賽數(shù)量,可以獲得更加穩(wěn)定和可靠的評級結(jié)果。
研究團(tuán)隊還通過小提琴圖展示了幾個代表性模型在所有測試比賽中的評級分布情況。這些可視化結(jié)果清楚地顯示了不同模型之間的性能差異,以及各個模型內(nèi)部的穩(wěn)定性水平。
八、對AI發(fā)展的深遠(yuǎn)影響
CODEELO基準(zhǔn)測試的推出對AI領(lǐng)域具有多重重要意義。首先,它提供了第一個真正意義上與人類表現(xiàn)直接可比的編程能力評估標(biāo)準(zhǔn)。這就像為AI編程能力建立了一個統(tǒng)一的度量衡,使得不同研究團(tuán)隊的工作可以進(jìn)行有意義的比較。
其次,這項研究揭示了當(dāng)前AI模型在復(fù)雜推理任務(wù)中的真實水平。盡管一些模型在簡單編程任務(wù)上表現(xiàn)出色,但在面對需要深度推理和創(chuàng)新思維的競賽級問題時,大多數(shù)模型仍然存在顯著不足。這為AI研究指明了未來的改進(jìn)方向。
研究結(jié)果還強調(diào)了推理能力增強的重要性。o1-mini和QwQ-32B-Preview等采用長鏈思考方法的模型表現(xiàn)明顯優(yōu)于其他模型,這表明未來的AI發(fā)展應(yīng)該更多地關(guān)注推理過程的改進(jìn),而不僅僅是模型規(guī)模的擴(kuò)大。
此外,關(guān)于編程語言選擇的發(fā)現(xiàn)提醒我們,AI模型的訓(xùn)練應(yīng)該更多地考慮任務(wù)特定的優(yōu)化策略。這可能需要在訓(xùn)練過程中引入更多的領(lǐng)域知識和策略選擇機制。
九、技術(shù)實現(xiàn)的創(chuàng)新之處
CODEELO系統(tǒng)的技術(shù)實現(xiàn)體現(xiàn)了多個創(chuàng)新點。自動提交機器人的開發(fā)是一個重要的技術(shù)突破,它需要處理復(fù)雜的網(wǎng)頁交互、代碼解析、結(jié)果獲取等多個環(huán)節(jié)。這個系統(tǒng)必須足夠穩(wěn)定和可靠,能夠處理大規(guī)模的自動化評估任務(wù)。
評級計算系統(tǒng)的設(shè)計也展現(xiàn)了巧妙的數(shù)學(xué)工程。研究團(tuán)隊需要在保持與原始Elo系統(tǒng)兼容性的同時,優(yōu)化計算效率和結(jié)果穩(wěn)定性。他們的數(shù)學(xué)分析證明了新系統(tǒng)在統(tǒng)計特性上的優(yōu)越性。
數(shù)據(jù)收集和處理流程也體現(xiàn)了嚴(yán)謹(jǐn)?shù)墓こ虒嵺`。從HTML格式的原始問題到結(jié)構(gòu)化的測試數(shù)據(jù),整個轉(zhuǎn)換過程需要保持信息的完整性和準(zhǔn)確性。研究團(tuán)隊選擇保持原始HTML格式的決定很有遠(yuǎn)見,因為這樣可以保留題目中的關(guān)鍵格式信息,同時現(xiàn)代AI模型也具備了處理HTML格式的能力。
十、對未來研究的啟示
CODEELO的成功為未來的AI評估研究提供了寶貴的經(jīng)驗和啟示。直接利用真實平臺進(jìn)行評估的方法可能適用于其他領(lǐng)域,比如數(shù)學(xué)競賽、語言理解等。這種"真實環(huán)境測試"的理念可能會成為AI評估的新趨勢。
研究中發(fā)現(xiàn)的AI模型能力分布不均的現(xiàn)象也值得進(jìn)一步探索。為什么AI模型在某些類型的問題上表現(xiàn)出色,而在其他問題上卻幾乎無法處理?這種差異背后的機制是什么?這些問題的答案可能會為AI模型的改進(jìn)指明方向。
長鏈思考方法的成功表明,推理過程的顯式建??赡苁翘嵘鼳I能力的關(guān)鍵。未來的研究可能需要更深入地探索如何設(shè)計和訓(xùn)練具有強大推理能力的AI系統(tǒng)。
編程語言選擇對模型性能的影響也開辟了一個新的研究方向。如何讓AI模型學(xué)會根據(jù)任務(wù)特點自動選擇最優(yōu)的工具和策略,這可能是通用人工智能發(fā)展的一個重要方面。
CODEELO基準(zhǔn)測試的推出標(biāo)志著AI編程能力評估進(jìn)入了一個新的階段。通過提供真實、公平、全面的評估標(biāo)準(zhǔn),它不僅揭示了當(dāng)前AI技術(shù)的真實水平,也為未來的改進(jìn)指明了方向。隨著越來越多的研究團(tuán)隊使用這個基準(zhǔn),我們可以期待看到AI編程能力的持續(xù)提升和突破。
這項研究的意義遠(yuǎn)不止于技術(shù)層面。它展示了如何通過創(chuàng)新的評估方法來推動整個領(lǐng)域的進(jìn)步。就像標(biāo)準(zhǔn)化的體育比賽規(guī)則推動了運動水平的不斷提升一樣,CODEELO這樣的標(biāo)準(zhǔn)化評估工具也將推動AI技術(shù)的持續(xù)進(jìn)步。對于每一個關(guān)注AI發(fā)展的人來說,這都是一個值得關(guān)注的重要里程碑。
Q&A
Q1:CODEELO基準(zhǔn)測試與傳統(tǒng)的AI編程評估有什么不同?
A:CODEELO的最大創(chuàng)新是直接將AI生成的代碼提交到CodeForces真實競賽平臺進(jìn)行評判,而傳統(tǒng)方法只能在本地使用有限的測試用例。這種方法實現(xiàn)了零誤判,支持特殊評判程序,并確保了與人類參賽者完全相同的執(zhí)行環(huán)境,就像讓AI直接參加真實的編程比賽一樣公平準(zhǔn)確。
Q2:為什么大多數(shù)AI模型在CODEELO測試中表現(xiàn)不佳?
A:測試結(jié)果顯示,除了OpenAI的o1-mini(評級1578)和QwQ-32B-Preview(評級1261)表現(xiàn)突出外,大多數(shù)模型的評級都落在人類參賽者的最低20%范圍內(nèi)。這主要因為競賽級編程需要復(fù)雜的邏輯推理能力,特別是在動態(tài)規(guī)劃、樹結(jié)構(gòu)等高難度算法上,大多數(shù)AI模型仍然力不從心。
Q3:CODEELO發(fā)現(xiàn)使用C++比Python編程效果更好嗎?
A:是的,研究發(fā)現(xiàn)了一個有趣現(xiàn)象:雖然AI模型在自由選擇時95%都使用Python,但當(dāng)強制使用C++時,所有測試模型的性能都顯著提升。這與人類競賽選手的行為一致(80%選擇C++),主要原因是C++執(zhí)行效率更高,能更好滿足競賽中的嚴(yán)格時間限制要求。
好文章,需要你的鼓勵
騰訊ARC實驗室推出AudioStory系統(tǒng),首次實現(xiàn)AI根據(jù)復(fù)雜指令創(chuàng)作完整長篇音頻故事。該系統(tǒng)結(jié)合大語言模型的敘事推理能力與音頻生成技術(shù),通過交錯式推理生成、解耦橋接機制和漸進(jìn)式訓(xùn)練,能夠?qū)?fù)雜指令分解為連續(xù)音頻場景并保持整體連貫性。在AudioStory-10K基準(zhǔn)測試中表現(xiàn)優(yōu)異,為AI音頻創(chuàng)作開辟新方向。
Meta與特拉維夫大學(xué)聯(lián)合研發(fā)的VideoJAM技術(shù),通過讓AI同時學(xué)習(xí)外觀和運動信息,顯著解決了當(dāng)前視頻生成模型中動作不連貫、違反物理定律的核心問題。該技術(shù)僅需添加兩個線性層就能大幅提升運動質(zhì)量,在多項測試中超越包括Sora在內(nèi)的商業(yè)模型,為AI視頻生成的實用化應(yīng)用奠定了重要基礎(chǔ)。
上海AI實驗室發(fā)布OmniAlign-V研究,首次系統(tǒng)性解決多模態(tài)大語言模型人性化對話問題。該研究創(chuàng)建了包含20萬高質(zhì)量樣本的訓(xùn)練數(shù)據(jù)集和MM-AlignBench評測基準(zhǔn),通過創(chuàng)新的數(shù)據(jù)生成和質(zhì)量管控方法,讓AI在保持技術(shù)能力的同時顯著提升人性化交互水平,為AI價值觀對齊提供了可行技術(shù)路徑。
谷歌DeepMind團(tuán)隊開發(fā)的GraphCast是一個革命性的AI天氣預(yù)測模型,能夠在不到一分鐘內(nèi)完成10天全球天氣預(yù)報,準(zhǔn)確性超越傳統(tǒng)方法90%的指標(biāo)。該模型采用圖神經(jīng)網(wǎng)絡(luò)技術(shù),通過學(xué)習(xí)40年歷史數(shù)據(jù)掌握天氣變化規(guī)律,在極端天氣預(yù)測方面表現(xiàn)卓越,能耗僅為傳統(tǒng)方法的千分之一,為氣象學(xué)領(lǐng)域帶來了效率和精度的雙重突破。