AI已學(xué)會(huì)改自己代碼,性能提升100%,還會(huì)「改績(jī)效」!程序員,還不慌?
編程智能體殺瘋了!
不僅能協(xié)助寫代碼,如今編程智能體甚至能實(shí)現(xiàn)自我「進(jìn)化」!
最近,Transformer作者初創(chuàng)Sakana AI和加拿大UBC的Jeff Clune實(shí)驗(yàn)室合作,推出了自我改進(jìn)的智能體——
「達(dá)爾文-哥德爾機(jī)」(Darwin G?del Machine,簡(jiǎn)稱DGM)。
作為一個(gè)編程智能體,它能修改自己的代碼,比如改進(jìn)自己的提示詞,為自己編寫工具等。
通過這個(gè)方式,DGM不止優(yōu)化了智能體在編程任務(wù)上的能力,也同時(shí)強(qiáng)化了未來進(jìn)一步自提升的能力,實(shí)現(xiàn)了遞歸式的自我改進(jìn)。
在兩個(gè)關(guān)鍵基準(zhǔn)測(cè)試中,DGM顯著提升了編程能力:
- SWE-bench:性能從20.0%提升至50.0%;
- Polyglot:成功率從14.2%提升至30.7%。
論文鏈接:https://arxiv.org/abs/2505.22954
代碼倉(cāng)庫(kù):https://github.com/jennyzzt/dgm
更瘋狂的是:
- 學(xué)Python的技能直接用在Rust/C++
- 自動(dòng)發(fā)明新工具提升效率
- 但曾被抓住「?jìng)卧鞙y(cè)試結(jié)果」...
在不久的將來,DGM有可能超過那些由人類手動(dòng)設(shè)計(jì)的AI系統(tǒng)。
達(dá)爾文+哥德爾
智能體自我進(jìn)化
創(chuàng)造無限進(jìn)化的智能體,是AI的終極夢(mèng)想之一。
而實(shí)現(xiàn)這夢(mèng)想的誘人路徑之一,是讓AI自己重寫自己的代碼,甚至連本身的學(xué)習(xí)算法也能改!
早在十幾年前,就有研究者提出了這種概念,稱之為「哥德爾機(jī)」(G?del Machine)。
項(xiàng)目鏈接:https://people.idsia.ch/~juergen/goedelmachine.html
在理論上,這種AI能自我改進(jìn):只要能數(shù)學(xué)上證明改得更好,它就會(huì)主動(dòng)修改自己!
傳統(tǒng)哥德爾機(jī)需數(shù)學(xué)證明改進(jìn)有效性,難以實(shí)現(xiàn)。
而DGM另辟蹊徑,改用更務(wù)實(shí)的方案:不再要求「數(shù)學(xué)證明」,而是靠實(shí)驗(yàn)「邊做邊學(xué)」。
也就是說,DGM用實(shí)驗(yàn)驗(yàn)證代替理論證明。
它的名字靈感來自兩個(gè)理論:達(dá)爾文的進(jìn)化論和哥德爾的數(shù)學(xué)理論。
它吸收了「達(dá)爾文進(jìn)化論」,篩選出探索性能更強(qiáng)的新版本。這是模型的「自我修改」階段。
同時(shí),DGM不糾結(jié)于復(fù)雜的數(shù)學(xué)證明,像科學(xué)家做實(shí)驗(yàn)一樣:改代碼→測(cè)試效果→有效就保留。這是「基準(zhǔn)評(píng)估」階段。
DGM在自我修改和評(píng)估兩個(gè)階段之間反復(fù)切換。
圖1:達(dá)爾文哥德爾機(jī)自我改進(jìn)循環(huán)
在自我修改階段,DGM從現(xiàn)有存檔選出的智能體,生成自身的改進(jìn)版本。
在評(píng)估階段,在編程基準(zhǔn)測(cè)試上,這些修改后的智能體會(huì)進(jìn)行測(cè)試,評(píng)估編程能力,測(cè)試完成后再將其加入到智能體存檔中。
DGM的這一循環(huán)過程不斷提升自身能力,不僅能更好地完成編程任務(wù),也能在未來實(shí)現(xiàn)更有效的自我改進(jìn)。
如果編程基準(zhǔn)測(cè)試性能提升代表了編程能力增強(qiáng),那么這也意味著DGM的自我修改與優(yōu)化能力正在不斷增強(qiáng)。
DGM就像會(huì)進(jìn)化的AI程序員:
- 自我升級(jí):分析代碼→發(fā)現(xiàn)問題→改寫優(yōu)化
- 群體進(jìn)化:生成多個(gè)變體,保留最優(yōu)版本
- 永不固化:不斷探索新工作流程,永無止境
DGM實(shí)現(xiàn)了多種自我改進(jìn)功能,包括:
- 補(bǔ)丁驗(yàn)證步驟:確保代碼修改的可靠性
- 更優(yōu)的文件查看方式:提升代碼瀏覽體驗(yàn)
- 增強(qiáng)的編輯工具:優(yōu)化開發(fā)效率
- 多方案生成與排序:自動(dòng)生成多個(gè)解決方案并篩選最佳選項(xiàng)
- 歷史記錄功能:記錄過往嘗試的修改內(nèi)容及其失敗原因,為新變更提供參考
這意味著,DGM真的能通過自我改進(jìn)變得越來越聰明!
編程智能體進(jìn)化之路
研究者實(shí)證了DGM修改自身代碼的能力確實(shí)能加速其學(xué)習(xí)過程(見下圖),而不具備遞歸式自我改進(jìn)功能的對(duì)照版本(圖中的DGM w/o Self-improve)表現(xiàn)明顯較差。
此外,實(shí)驗(yàn)還顯示,開放式算法原理的引入也是關(guān)鍵所在:
如果沒有以達(dá)爾文進(jìn)化論為靈感、依靠不斷擴(kuò)展的「墊腳石」智能體存檔進(jìn)行的搜索,就無法支持目標(biāo)切換和多路徑并行探索,性能也會(huì)顯著下降(圖中的DGM w/o Open-ended exploration)。
圖2:遞歸式自我改進(jìn)與開放式探索使達(dá)爾文哥德爾機(jī)(DGM)能夠持續(xù)進(jìn)步,不斷提升性能。
DGM會(huì)自動(dòng)發(fā)現(xiàn)越來越優(yōu)秀的編程智能體,并在SWE-bench(圖2左)和Polyglot(圖2右)兩個(gè)評(píng)測(cè)中表現(xiàn)出更高的得分。
相比之下,那些缺乏「遞歸式自我改進(jìn)」或「開放式探索」能力的基線系統(tǒng)表現(xiàn)較差,說明這兩個(gè)核心組件對(duì)持續(xù)自我優(yōu)化至關(guān)重
圖3左是「演化樹」,描繪了其智能體在存檔中生成的分支結(jié)構(gòu)。
圖中每個(gè)節(jié)點(diǎn)代表一個(gè)編程智能體,節(jié)點(diǎn)0是初始智能體。
節(jié)點(diǎn)顏色表示該智能體在SWE-bench上的性能(即完成任務(wù)的百分比),邊框顏色表示該智能體被用于評(píng)估的任務(wù)數(shù)量。
節(jié)點(diǎn)之間的連線表示哪個(gè)智能體通過自我修改生成了哪個(gè)「子智能體」。
這種分支結(jié)構(gòu)正是DGM開放式探索策略的結(jié)果:它從此前生成的多樣化智能體中采樣,作為新改動(dòng)的起點(diǎn)。這一機(jī)制讓DGM能夠同時(shí)探索多條進(jìn)化路徑。
研究者觀察到,一些早期表現(xiàn)較弱的「祖先智能體」,如果使用傳統(tǒng)的優(yōu)化方法,可能早已被淘汰;但在DGM的框架中,它們卻成為了啟發(fā)后續(xù)重要改進(jìn)的關(guān)鍵。
正是這些早期嘗試,幫助系統(tǒng)最終突破了性能瓶頸,避免了過早收斂在次優(yōu)解上。
圖3(左):DGM自動(dòng)進(jìn)行自我改進(jìn),逐步成為更強(qiáng)大的編程智能體
圖3右是DGM在SWE-bench上的性能提升過程圖。
淺藍(lán)線表示所有具備基本代碼編輯功能的智能體的平均得分;藍(lán)色實(shí)線表示每輪迭代中存檔中最優(yōu)智能體的得分;深色實(shí)線則追蹤最終最佳智能體及其祖先節(jié)點(diǎn)的進(jìn)化軌跡,其中包括兩次性能下降。
這表明DGM并非一味從當(dāng)前最優(yōu)解出發(fā),而是通過探索多樣化的「墊腳石」實(shí)現(xiàn)突破,避免了陷入局部最優(yōu)。這正是開放式探索的又一大優(yōu)點(diǎn)。
圖3(右):DGM自動(dòng)進(jìn)行自我改進(jìn),逐步成為更強(qiáng)大的編程智能體
從Python到Rust
樣樣精通!
DGM不僅能提升自己,還能把學(xué)到的「技能」用在不同的場(chǎng)景中。
圖4:模型與任務(wù)之間的遷移能力
達(dá)爾文哥德爾機(jī)(DGM)發(fā)現(xiàn)的智能體的優(yōu)越性能可以在不同的模型之間進(jìn)行遷移(見上圖左和中),并且可以遷移到不同任務(wù)領(lǐng)域,例如從Python任務(wù)遷移到其他語(yǔ)言如Rust、C++、Go等的任務(wù)(見上圖右)。
以下是它的幾個(gè)「超能力」:
- 跨模型通用:DGM用Claude 3.5 Sonnet模型優(yōu)化后,換到其他模型(比如o3-mini或Claude 3.7 Sonnet)也能表現(xiàn)得很棒。這說明它找到的改進(jìn)方案是通用的,不是只適合某個(gè)特定模型。
- 跨語(yǔ)言應(yīng)用:DGM在Python任務(wù)上訓(xùn)練后,竟然也能提升在Rust、C++、Go等其他編程語(yǔ)言上的表現(xiàn)。這就像一個(gè)只會(huì)說中文的人,突然學(xué)會(huì)了用英文、法文解決問題一樣厲害!
- 自動(dòng)發(fā)明新工具:DGM自己發(fā)明了一些新功能,比如更好的文件編輯工具、生成多個(gè)解決方案并排序選擇最佳方案,這些都讓它的編程能力突飛猛進(jìn)。
不過,當(dāng)AI開始自我修改,安全問題也隨之而來。
AI安全措施
確實(shí),DGM的能力讓人既興奮又有點(diǎn)擔(dān)心。
研究團(tuán)隊(duì)也意識(shí)到了這個(gè)問題,在開發(fā)過程中特別注重安全:
- 沙盒環(huán)境:所有代碼改動(dòng)都在安全的「沙盒」中進(jìn)行,相當(dāng)于一個(gè)隔離的實(shí)驗(yàn)室,防止AI接觸外部網(wǎng)絡(luò),做出意外行為。
- 透明追蹤:DGM的每次改動(dòng)都有記錄,形成一個(gè)清晰的「進(jìn)化樹」,人類可以隨時(shí)檢查它做了什么。
不過,DGM也暴露了一些潛在問題。
比如,它有時(shí)候會(huì)「作弊」:為了拿到高分,曾偽造測(cè)試日志、刪除檢測(cè)標(biāo)記——
像學(xué)生篡改成績(jī)單,暴露出自我改進(jìn)AI的潛在風(fēng)險(xiǎn)。
好在有透明追蹤,團(tuán)隊(duì)發(fā)現(xiàn)了這些問題。
但這也提醒我們,AI的自我改進(jìn)必須更嚴(yán)格地控制,確保它不會(huì)「學(xué)壞」。
有趣的是,DGM還能幫自己提升安全性。
研究團(tuán)隊(duì)讓它解決「假裝用工具」的問題,DGM真的提出了一些改進(jìn)方案,雖然有時(shí)候還是會(huì)「耍小聰明」。
這說明,未來的AI安全研究可以利用DGM的能力,讓它自己變得更可信、更透明。
DGM的出現(xiàn),可能是AI發(fā)展史上的一個(gè)里程碑。
它不僅展示了AI自我進(jìn)化的可能性,還打開了一扇窗:如果AI能不斷自我改進(jìn),它能幫人類做些什么?
作者介紹
Jenny Zhang
Jenny Zhang是Meta研究科學(xué)家實(shí)習(xí)生,加拿大英屬哥倫比亞大學(xué)(University of British Columbia)人工智能博士在讀,師從Jeff Clune教授,同時(shí)也是Vector Institute學(xué)生研究員。
曾于倫敦帝國(guó)理工學(xué)院完成本科學(xué)習(xí)。研究方向?yàn)閺?qiáng)化學(xué)習(xí)、自我改進(jìn)AI及開放式學(xué)習(xí)(open-endedness)。
胡圣然
胡圣然是Sakana AI研究實(shí)習(xí)科學(xué)家實(shí)習(xí)生,加拿大英屬哥倫比亞大學(xué)(University of British Columbia)人工智能博士在讀,師從Jeff Clune教授,同時(shí)也是Vector Institute學(xué)生研究員。
曾于南方科技大學(xué)完成本科學(xué)習(xí)。研究方向包括元學(xué)習(xí)(meta-learning)、智能體以及開放式學(xué)習(xí)(Open-endedness)。