av天堂久久天堂色综合,最近中文字幕mv免费高清在线,在线a级毛片免费视频,av动漫,中文字幕精品亚洲无线码一区

微信掃一掃,關(guān)注公眾號

  • 科技行者

  • 算力行者

見證連接與計算的「力量」

首頁 浙江大學(xué)研究團隊推出ReCode:讓AI程序員學(xué)會跟上時代,再也不怕API過時

浙江大學(xué)研究團隊推出ReCode:讓AI程序員學(xué)會跟上時代,再也不怕API過時

2025-06-30 11:05
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2025-06-30 11:05 ? 科技行者

這項由浙江大學(xué)的吳浩澤、姚云志等研究者與騰訊AI西雅圖實驗室的于文豪合作完成的研究發(fā)表于2025年6月的arXiv預(yù)印本平臺(論文編號:arXiv:2506.20495v1),感興趣的讀者可以通過該編號在arXiv平臺上查閱完整論文。

說到寫代碼,現(xiàn)在的AI助手確實很厲害,能幫程序員解決不少問題。但是有個讓人頭疼的問題:這些AI就像是拿著過時教科書的學(xué)生,總是用一些已經(jīng)被淘汰的編程接口(API)來寫代碼。這就好比你問AI怎么聯(lián)系朋友,它還告訴你發(fā)傳真,而實際上大家都在用微信了。

當一個編程庫更新?lián)Q代時,很多老的函數(shù)接口會被新的替代,就像手機從按鍵變成觸屏一樣。問題是,AI在學(xué)習(xí)時用的都是老資料,所以它們寫出來的代碼經(jīng)常用的是已經(jīng)過時的接口,導(dǎo)致程序跑不起來。更麻煩的是,即使你在提示中告訴AI"某某接口已經(jīng)更新了",它們往往還是固執(zhí)地用老方法,就像一個習(xí)慣了老路的司機,即使有了新的導(dǎo)航也還是走老路。

浙江大學(xué)的研究團隊發(fā)現(xiàn)了這個普遍存在的問題,并提出了一個創(chuàng)新的解決方案——ReCode。這個方法的核心思想很巧妙:既然AI學(xué)的是老知識,那就通過特殊的訓(xùn)練方式讓它學(xué)會聽從新的指令,就像給固執(zhí)的老司機專門訓(xùn)練,讓他學(xué)會相信和使用新的GPS導(dǎo)航。

研究團隊首先分析了問題的根源。AI模型在訓(xùn)練時使用的代碼數(shù)據(jù)往往比較老舊,就像一個程序員只讀過幾年前的編程書籍。當編程庫頻繁更新時,這些AI就顯得"知識過時"了。雖然人們嘗試過在提示中加入最新的API文檔,但效果并不理想,因為AI內(nèi)部的老知識會和外部的新信息產(chǎn)生沖突,AI往往更相信自己"肚子里"的老知識。

為了解決這個問題,研究團隊開發(fā)了ReCode框架。這個框架的訓(xùn)練過程很像教一個程序員適應(yīng)新版本的開發(fā)工具。首先,他們收集了大約2000個真實的API更新案例,每個案例都包含了某個編程庫從老版本到新版本的具體變化。比如,在NumPy庫中,原來計算數(shù)組乘積用的是`np.product`函數(shù),但新版本中這個函數(shù)被廢棄了,要改用`np.prod`。

接下來是訓(xùn)練過程的精妙之處。研究團隊沒有采用傳統(tǒng)的監(jiān)督學(xué)習(xí)方法,而是使用了強化學(xué)習(xí)。這就像是給AI設(shè)置了一個"獎懲機制":如果AI能夠正確地根據(jù)提示中的更新信息來修改代碼,就給它獎勵;如果它還是固執(zhí)地用老方法,就給它懲罰。通過這種方式,AI逐漸學(xué)會了重視外部提供的新信息,而不是一味依賴內(nèi)部的老知識。

在獎懲機制的設(shè)計上,研究團隊也很用心。他們不僅檢查AI生成的代碼是否使用了正確的新接口,還會檢查代碼的語法是否正確。這就像是既要求學(xué)生答案正確,又要求字跡工整一樣。具體來說,如果AI生成的代碼完全匹配正確答案,就給最高獎勵;如果代碼語法正確但接口使用有誤,給中等獎勵;如果連語法都錯了,就給負向獎勵。

為了驗證ReCode的效果,研究團隊在CodeUpdateArena這個專門的測試平臺上進行了實驗。這個平臺包含了670個編程任務(wù),每個任務(wù)都需要AI根據(jù)最新的API更新信息來解決實際問題。實驗結(jié)果相當令人印象深刻:經(jīng)過ReCode訓(xùn)練的7B參數(shù)的Qwen2.5-Coder模型,在某些指標上甚至超越了32B參數(shù)的大模型,這就像是讓一個聰明的小學(xué)生在某個專項技能上超過了大學(xué)生。

更重要的是,研究團隊發(fā)現(xiàn)ReCode訓(xùn)練對AI的通用編程能力影響很小。這就像是給一個多才多藝的人專門訓(xùn)練一項新技能,不會影響他原有的其他能力。相比之下,如果用傳統(tǒng)的監(jiān)督學(xué)習(xí)方法來解決這個問題,往往會導(dǎo)致AI在其他編程任務(wù)上的表現(xiàn)下降,這種現(xiàn)象被稱為"災(zāi)難性遺忘"。

在技術(shù)細節(jié)上,ReCode使用了兩種具體的強化學(xué)習(xí)算法:GRPO和DAPO。這兩種算法的工作原理有些類似于班級競賽:讓AI同時生成多個代碼方案,然后比較這些方案的好壞來調(diào)整AI的行為。GRPO算法會計算每個方案相對于平均水平的優(yōu)劣程度,而DAPO算法則進一步優(yōu)化了這個比較過程,避免了一些技術(shù)問題。

研究團隊還特別關(guān)注了訓(xùn)練過程中的一些有趣現(xiàn)象。他們發(fā)現(xiàn),在訓(xùn)練初期,AI的獎勵分數(shù)會短暫下降,這看起來有些反常。但研究人員解釋說,這實際上反映了AI在"打破固有思維"的過程。就像一個習(xí)慣了某種做事方式的人,在學(xué)習(xí)新方法時會有短暫的不適應(yīng)期,但一旦適應(yīng)了新方法,表現(xiàn)會比以前更好。

為了更深入地理解ReCode的工作機制,研究團隊還做了一些案例分析。他們發(fā)現(xiàn),訓(xùn)練前的AI經(jīng)常表現(xiàn)出"懶惰"的特點:明明在提示中給出了新的API信息,AI卻視而不見,繼續(xù)使用老舊的接口。這就像是一個學(xué)生明明桌上放著最新的教科書,卻還是習(xí)慣性地查閱老舊的筆記。經(jīng)過ReCode訓(xùn)練后,AI學(xué)會了認真"閱讀"提示中的更新信息,并據(jù)此調(diào)整自己的代碼生成策略。

研究團隊還測試了ReCode在更復(fù)雜場景下的表現(xiàn)。比如,當一個編程庫經(jīng)歷了多次更新時,AI是否能夠直接從最老的版本跳躍到最新版本,而不需要逐步更新。實驗結(jié)果顯示,經(jīng)過訓(xùn)練的AI確實具備了這種"跨越式升級"的能力,這更符合實際開發(fā)中的需求。

另一個有趣的測試是同時處理多個API更新。在實際開發(fā)中,程序員經(jīng)常需要同時適應(yīng)多個庫的更新,這對AI來說是個更大的挑戰(zhàn)。實驗結(jié)果表明,ReCode訓(xùn)練過的AI在處理這種復(fù)雜情況時也表現(xiàn)出色,能夠同時正確應(yīng)用多個不同的API更新。

在數(shù)據(jù)集構(gòu)建方面,研究團隊下了很大功夫。他們從NumPy、Pandas、PyTorch等主流數(shù)據(jù)科學(xué)庫的發(fā)布說明中收集了真實的API更新信息,然后用GPT-4生成對應(yīng)的代碼示例。但他們沒有完全依賴自動生成,而是請了五位計算機專業(yè)的學(xué)生對生成的代碼進行人工審核,確保質(zhì)量。這種人機結(jié)合的方式既保證了數(shù)據(jù)的規(guī)模,又確保了準確性。

值得一提的是,他們收集的API更新類型非常豐富,不僅包括簡單的函數(shù)重命名,還包括參數(shù)變化、功能修改等復(fù)雜情況。比如,有些更新是把二維向量的計算改為三維向量,有些是改變了函數(shù)的文檔賦值方式。這種多樣性確保了訓(xùn)練出來的AI能夠應(yīng)對各種實際情況。

研究團隊在論文中還詳細分析了為什么強化學(xué)習(xí)比傳統(tǒng)的監(jiān)督學(xué)習(xí)更適合這個任務(wù)。他們指出,監(jiān)督學(xué)習(xí)就像是讓學(xué)生死記硬背標準答案,而強化學(xué)習(xí)更像是讓學(xué)生理解解題思路。在API更新這個場景中,重要的不是記住具體的代碼改動,而是學(xué)會如何根據(jù)新的信息來調(diào)整代碼,這正是強化學(xué)習(xí)的長處。

實驗數(shù)據(jù)也支持了這個觀點。在CodeUpdateArena測試集上,經(jīng)過ReCode訓(xùn)練的Qwen2.5-Coder-7B模型的Pass@1分數(shù)達到了78.7%,相比訓(xùn)練前的67.3%有了顯著提升。更令人驚喜的是,這個7B模型的表現(xiàn)甚至超過了32B的Qwen2.5-Coder-Instruct模型(75.7%)和DeepSeek-R1-Distill-Qwen-32B模型(78.2%)。這就像是讓一個小學(xué)生在特定項目上戰(zhàn)勝了中學(xué)生,證明了針對性訓(xùn)練的威力。

在通用編程能力的保持方面,ReCode也表現(xiàn)出色。在HumanEval+這個通用編程測試集上,經(jīng)過ReCode訓(xùn)練的模型只是輕微下降了1-2個百分點,而傳統(tǒng)監(jiān)督學(xué)習(xí)方法的下降幅度要大得多。這說明ReCode確實實現(xiàn)了"專項提升,通用保持"的目標。

研究團隊還進行了詳細的獎勵機制對比實驗。他們測試了不同的獎勵設(shè)計對最終效果的影響,發(fā)現(xiàn)語法檢查的加入至關(guān)重要。單純的格式獎勵效果很差,嚴格的完全匹配又過于苛刻,而他們設(shè)計的"編輯相似度+語法檢查"的組合效果最好。這就像是既要求答案內(nèi)容正確,又要求表達清晰,兩者缺一不可。

在訓(xùn)練動態(tài)分析中,研究人員觀察到了一個有趣的現(xiàn)象:訓(xùn)練過程中AI輸出的長度會逐漸增加,但增幅并不大。這說明AI學(xué)會了更詳細地思考問題,但沒有出現(xiàn)冗余的廢話。同時,他們發(fā)現(xiàn)訓(xùn)練初期的獎勵下降主要是因為格式獎勵的減少,這反映了AI在學(xué)習(xí)過程中會暫時"打亂"原有的行為模式,然后重新建立更好的模式。

從技術(shù)角度來看,ReCode的成功還在于它巧妙地解決了"知識沖突"問題。當AI的內(nèi)部知識和外部提示信息發(fā)生沖突時,傳統(tǒng)方法往往讓AI更相信內(nèi)部知識。但ReCode通過強化學(xué)習(xí)訓(xùn)練,讓AI學(xué)會了在這種沖突情況下優(yōu)先考慮外部信息,這對于處理動態(tài)更新的信息來說至關(guān)重要。

研究團隊在論文中也誠實地指出了當前工作的局限性。由于計算資源限制,他們只對7B規(guī)模的模型進行了完整訓(xùn)練,未來需要驗證方法在更大模型上的效果。此外,目前的研究主要集中在Python數(shù)據(jù)科學(xué)庫上,是否能推廣到其他編程語言和領(lǐng)域還需要進一步探索。

不過,這些局限性并不影響ReCode的重要價值。在AI輔助編程越來越普及的今天,如何讓AI跟上技術(shù)更新的步伐是一個現(xiàn)實而緊迫的問題。ReCode提供了一個既實用又優(yōu)雅的解決方案,它不僅解決了當下的問題,更重要的是提供了一種處理"AI知識過時"問題的通用思路。

這項研究的影響可能遠超編程領(lǐng)域。隨著各行各業(yè)的數(shù)字化轉(zhuǎn)型,API和技術(shù)接口的更新變得越來越頻繁。如何讓AI系統(tǒng)能夠靈活適應(yīng)這些變化,而不是被固化的訓(xùn)練數(shù)據(jù)所束縛,是一個具有廣泛意義的挑戰(zhàn)。ReCode展示的強化學(xué)習(xí)方法為解決這類問題提供了有價值的參考。

說到底,ReCode的成功在于它抓住了一個核心insight:AI不應(yīng)該只是一個靜態(tài)的知識庫,而應(yīng)該是一個能夠動態(tài)學(xué)習(xí)和適應(yīng)的智能助手。通過巧妙的訓(xùn)練方法,研究團隊讓AI學(xué)會了如何在面對新信息時調(diào)整自己的行為,這種能力在快速變化的技術(shù)環(huán)境中顯得尤為珍貴。

對于普通的程序員和AI用戶來說,這項研究帶來的最直接好處就是更可靠的AI編程助手。再也不用擔心AI生成的代碼使用過時的接口,也不用反復(fù)提醒AI使用最新的API。這不僅提高了開發(fā)效率,也降低了出錯的風(fēng)險。

從更長遠的角度來看,ReCode代表的是AI系統(tǒng)走向更加智能和實用的重要一步。它展示了如何讓AI既保持原有能力又能適應(yīng)新的需求,這種平衡對于AI技術(shù)的實際應(yīng)用至關(guān)重要。隨著這種方法的進一步發(fā)展和推廣,我們有理由期待AI助手在各個領(lǐng)域都能變得更加智能和有用。

Q&A

Q1:ReCode是什么?它解決了什么問題? A:ReCode是浙江大學(xué)研究團隊開發(fā)的一個AI訓(xùn)練框架,專門解決AI編程助手使用過時API接口的問題。當編程庫更新后,傳統(tǒng)AI往往還會用老版本的接口寫代碼,導(dǎo)致程序無法運行,ReCode通過強化學(xué)習(xí)讓AI學(xué)會根據(jù)最新的API文檔來調(diào)整代碼。

Q2:ReCode會不會影響AI原有的編程能力? A:基本不會。實驗顯示ReCode訓(xùn)練后的AI在通用編程測試中只是輕微下降1-2個百分點,而在API更新任務(wù)上卻有顯著提升。這比傳統(tǒng)的監(jiān)督學(xué)習(xí)方法要好得多,后者往往會導(dǎo)致較大的能力下降。

Q3:普通程序員能用上ReCode技術(shù)嗎?什么時候能用? A:目前ReCode還是研究階段的技術(shù),但研究團隊已經(jīng)證明了它的有效性。預(yù)計未來會被集成到各種AI編程助手中,讓程序員享受到更可靠的代碼生成服務(wù)。感興趣的技術(shù)人員可以關(guān)注相關(guān)開源項目的發(fā)展。

分享至
0贊

好文章,需要你的鼓勵

推薦文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-