https://arxiv.org/abs/2505.22954
Darwin Godel Machine: Open-Ended Evolution of Self-Improving Agents
達爾文哥德爾機:自我改進智能體的開放式演化
摘要
當今大多數人工智能系統都受到人類設計的固定架構的限制,無法自主地、持續地進行自我改進。而科學方法則提供了一種累積性且開放式的系統,每一次創新都建立在以往成果的基礎之上,從而推動未來的發現。人們越來越希望當前人工推進AI發展的過程本身可以被自動化。如果能夠安全地實現這種自動化,將加速AI的發展,并讓我們更早地享受到其帶來的益處。這一前景引發了一個問題:AI系統如何在不斷解決相關問題的過程中無止境地自我提升?
之前的方法如元學習(meta-learning)為自動發現新算法提供了工具集,但受限于人類對合適搜索空間的設計以及一階改進。另一方面,哥德爾機(G?del machine)[116]提出了一種理論上具有自我改進能力的AI框架,能夠以可證明有益的方式修改自身。然而,由于無法證明大多數自我修改的實際影響,原始版本在現實中幾乎不可能實現。
為了解決這一局限性,我們提出了達爾文哥德爾機(Darwin G?del Machine, DGM),這是一種新型的自我改進系統。它通過迭代修改自己的代碼(同時也改進自己修改代碼的能力),并使用編程基準測試對每項更改進行實證驗證。本文中,DGM旨在優化基于凍結基礎模型的編碼代理的設計,這些代理具備通過工具使用來讀寫和執行代碼的能力。
受生物進化和開放式演化研究的啟發,DGM維護一個生成的編碼代理檔案庫,并從中采樣,嘗試創建出新的、有趣且改進后的代理版本。這種開放式探索形成了一個不斷增長的、多樣化的高質量代理樹狀結構,并允許在搜索空間中并行探索許多不同的路徑。
實證結果顯示,DGM能夠自動提升其編碼能力(例如更好的代碼編輯工具、長上下文窗口管理、同行評審機制),在SWE-bench上的表現從20.0%提升到50.0%,在Polyglot上從14.2%提升到30.7%。此外,DGM顯著優于沒有自我改進或開放式探索的基線方法。所有實驗均采取了安全措施(如沙箱隔離、人工監督)。總體而言,DGM代表了通向自我改進型AI的重要一步,它能夠在一條不斷展開的創新路徑上自主積累“墊腳石”。本項目所有代碼均已開源:https://github.com/jennyzzt/dgm。
1 引言
科學進步是累積性的和開放式的,每一次突破都建立在無數先前洞見的基礎之上。同樣,我們最先進的AI系統也是建立在長期創新的基礎上的。例如,Transformer [131]作為當前大型語言模型(LLMs)[14]的核心架構,并非孤立出現,而是建立在多年來的研究成果之上,如循環神經網絡 [51, 110] 和注意力機制 [7, 64, 101]。然而,目前大多數AI系統仍然受限于由人類設計的固定架構,它們只能在預設邊界內學習,無法自主重寫自己的源代碼來進行自我改進。因此,AI發展的每一次進步仍然嚴重依賴于人類干預,限制了進步的速度。
本文探討了安全自動化尋找更優AI的可能性。我們可以想象一種AI系統,就像科學發現本身一樣,成為推動自身進步的引擎:建立在過去的基礎上,遞歸式地自我改進,并朝著更高級的能力邁進。
Schmidhuber [116] 提出了一類數學嚴謹的、具有自指性和自我改進能力的問題求解器。它依賴形式化證明來支持代碼重寫,確保任何自我修改都是可證明有益的。然而,在實踐中,若不做出對系統的嚴格假設,通常很難正式證明一項對AI系統的修改是否真的有益。例如,雖然看起來讓基于LLM的編碼代理訪問更多工具(如代碼搜索、測試運行器)是有益的,但實際效果高度依賴于模型的訓練和任務背景(例如在一個設置中優化的測試工具可能在其他設置中反而會誤導代理)。
因此,我們不再要求形式化證明,而是通過基準測試對自我修改進行實證驗證,使系統可以根據觀察結果進行改進和探索。這種方法類似于生物進化:突變和適應并不是預先驗證的,而是被生成、試驗,并通過自然選擇篩選出來。我們也從達爾文進化論 [25] 中獲得靈感,研究維護一個先前發現的代理庫的有效性,作為未來代際發展的“墊腳石”。
我們提出了達爾文哥德爾機(Darwin G?del Machine, DGM),這是一個具有自指性和自我改進能力的系統,能夠編寫和修改自己的代碼,以成為一個更好的編碼代理。每次自我修改都需要DGM編輯自己的代碼庫。我們使用Python語言,它是圖靈完備的,這意味著DGM理論上可以構建任何可計算的機器。
我們的框架設想了一種能夠重寫自身訓練腳本的代理(包括訓練一個新的基礎模型FM)。但在本文中我們并未展示這一點,因為訓練基礎模型計算成本高昂,也會引入額外的復雜性,這將留作未來工作。相反,本文專注于利用凍結的預訓練基礎模型(如工具使用、工作流程)來改進編碼代理的設計。
DGM在自我修改階段和評估階段之間交替進行。在自我修改階段,從代理檔案庫中選擇的編碼代理會生成自身的修改版本;在評估階段,每個修改后的代理會在編碼基準測試中接受測試,評估其編碼能力,然后添加到檔案庫中。通過在這個循環中不斷提升自身能力,DGM不僅在解決編碼任務方面變得更強大,也更擅長未來的自我改進。
我們的一項關鍵假設是:在編碼基準測試中的性能提升意味著更強的編碼能力,從而也意味著更強的自我修改和自我改進能力。此外,DGM維護一個生成的編碼代理檔案庫,初始時僅包含一個代理,并隨著時間推移不斷積累所有生成的變體。
為了支持持續的自我改進,DGM借鑒了開放式演化研究 [35, 36, 134] 的思想,積累多樣化的“墊腳石”——即那些有趣但尚未最優的解決方案或功能,它們可能會促成未來的重大突破。這種開放式探索鼓勵發現超越即時性能提升的新穎且潛在有用的自我修改方式。
我們展示了在兩個編程基準測試上的結果:SWE-bench [60] 和 Polyglot [104]。DGM 在 SWE-bench 上的性能從 20.0% 自動提升到了 50.0%,在 Polyglot 上則從 14.2% 提升到了 30.7%。我們證明了自我改進能夠帶來持續的進步,因為 DGM 的表現優于一個基線模型——該基線使用相同的初始代理反復修改并生成新代理,但不具備自我改進能力。
我們還表明,開放式探索以及保存所有先前生成代理的檔案庫有助于發現更優秀的編碼代理。DGM 優于一個不具備開放式探索能力的基線模型(即沒有積累具有有趣差異性的“墊腳石”檔案庫的模型),在該基線中,編碼代理始終基于自身最新版本進行構建。
總體而言,DGM 代表了向能夠繼承自身先前創新并遞歸改進的人工智能系統邁進的重要一步。我們廣泛地考慮并討論了安全性問題,包括沙箱隔離和自我修改的可追溯性,以確保負責任的實驗操作(見第5節)。通過推進安全、自指性、自我改進模型的可能性,DGM 使我們更接近于實現一種不僅能夠學習、還能像科學本身一樣,沿著開放式、自我加速的路徑不斷演化的AI。
2 相關工作
開放式演化(Open-Endedness)
推動無界限創新的一個重大挑戰是設計能夠持續生成新穎且可學習的人工智能系統 [126]。在此基礎上,Hughes 等人 [56] 將開放式定義為一個系統持續生成新穎且從觀察者角度來看具有可學習性的產物的能力。核心難點在于如何結構化并探索巨大的搜索空間,以持續產出對人類來說有趣的成果 [20, 59]。
早期的研究通過質量-多樣性算法 [17, 90, 94, 105]、目標導向探索方法 [2, 30, 32, 33, 113]、內在動機機制 [72, 75, 100, 103] 或學習進展框架 [9, 21, 23, 27, 40, 58, 61, 117, 118] 來應對這一挑戰。最近,大規模基礎模型(Foundation Models, FMs)[14, 106] 成為了衡量“有趣性”的有效代理 [35, 112, 148],并作為有效的變異算子來提出新的代碼解決方案 [35, 53, 73, 97, 108]。
FMs 可以引導自驅動型智能體(autotelic agents)[22–24],模擬人類對質量和多樣性的偏好 [13, 29, 47, 66, 67, 78, 111, 133],設計獎勵函數 [35, 85, 132],創建模擬環境 [1, 15, 92, 93, 102, 129],推動不斷演化的多智能體動態 [28, 153],探索各種行走機器人的形態 [73],以及在廣泛的解空間中進行基準或目標優化 [35, 36, 53, 62, 69, 79, 82–84, 97, 108, 148]。
然而,這些方法尚未實現自我改進的閉環,即:在下游任務上的改進并不能轉化為更強的自我修改能力或進一步創新的加速。我們希望模仿科學與技術進步中的那種加速過程,在其中新工具和新發現能催化更多新發現的誕生。同樣地,我們如何能模擬自然進化的軌跡?它不僅朝向復雜性發展,也朝著不斷增強進化能力的方向前進 [26, 41, 49]?
元學習FM智能體(Meta-Learning FM Agents)
許多基于基礎模型的智能體是人工設計的。一些基本模塊包括提示工程 [18, 119]、思維鏈 [45, 52, 77, 91, 136, 138, 144]、自我反思 [86, 121, 138]、多智能體辯論 [62, 76]、記憶機制 [80, 89, 152]、溫度采樣 [155] 和檢索增強生成 [74]。
這些組件的手動組合限制了系統的潛力,使其受限于人類設計者的創造力。近年來,出現了一些利用FM自動優化提示詞 [19, 34, 36, 63, 141, 143] 和設計智能體模塊 [38, 95, 96, 109, 128, 139, 140, 147, 149, 150, 154, 156] 的元學習方法。
自動化智能體系統設計(ADAS) [53] 通過一個固定的元智能體迭代生成下游智能體,評估它們在目標基準上的表現,并將反饋納入后續代際的優化中。相比之下,DGM 是一個統一的系統,既能解決下游任務(如編程問題),又能改進自身的實現方式(即其代碼庫),從而無需依賴固定、手工設計的元智能體,并實現自指性的改進。
自我改進AI(Self-Improving AI)
早在早期,就有研究人員提出了關于自我改進的各種理論和概念性方法 [42, 115, 116]。一些實用的自動化自我改進方法包括基于神經網絡權重參數化的系統 [46, 48, 50, 65, 81]。
Metz 等人 [88] 開發了一種基于梯度的優化器,并使用一種群體訓練(population-based training)的變體對其進行自指性的元訓練。Lange 等人 [68] 將該方法擴展到了無梯度學習領域。Silver 等人 [122] 利用自我博弈(self-play)持續進化智能體,在國際象棋和圍棋等復雜領域實現了超越人類的表現。
更接近 DGM 的是一些近期利用基于FM的智能體進行自我改進的方法 [54, 55, 107, 123, 140, 145]。Zelikman 等人[145] 使用一個元智能體(meta-agent)來生成下游智能體,并根據生成的解決方案所推導出的元效用(meta-utility)來更新元智能體。Yin 等人 [140] 則使用一個單一系統,既用于解決下游任務,也用于遞歸地修改自身。然而,下游任務或元效用并不總是與自我改進所需的能力保持一致。在 DGM 中,下游任務上的改進直接反映出自我改進能力的提升,從而實現了自我加速進步的潛力。
最接近我們工作的是 Robeyns 等人 [107] 的同期研究,他們同樣采用一個單一智能體遞歸地解決編程問題并修改自身的代碼庫。DGM 與 Robeyns 等人 [107] 的主要區別在于,DGM 擁有一個開放式探索循環(open-ended exploration loop),鼓勵進行超越即時性能提升的自我修改,從而避免陷入次優的自我修改陷阱并導致停滯不前。
3 達爾文哥德爾機
哥德爾機是一種理論上的AI構想,它會尋找能夠被形式化證明可以改進自身 的方法 [116]。在本文中,我們提出了達爾文哥德爾機 (Darwin G?del Machine, DGM ),這是對實現哥德爾機這一長期夢想的一次嘗試。
DGM 放寬了哥德爾機那種不切實際的要求——即必須從理論上證明某項改動會帶來系統提升,轉而要求通過實驗獲得實證證據來表明所提出的版本確實提升了性能。
此外,由于 DGM 依賴于實證證據來判斷改進,它可能會在可能系統的巨大搜索空間(即所有可計算的算法)中陷入局部最優。為了解決這個問題,DGM 在搜索過程中維護一個已發現解決方案的檔案庫 ,從而促進開放式探索 (open-ended exploration),而不是僅僅演化單一解決方案。
由于其原理與達爾文進化論 [25] 相呼應:新創新是通過從先前發現的解決方案檔案庫中選擇一個實體、對其進行修改、并在其表現出新穎性時保留下來而產生的 [35, 125, 148],我們將我們的算法稱為“達爾文哥德爾機”。
自指性的編碼代理自我改進(Self-referential Self-improvement of Coding Agents)
DGM 最初只包含一個編碼代理,并通過編程基準測試來評估其演進過程。我們定義的編碼代理 是一個單一系統,由一個代碼倉庫實現,基于凍結的預訓練基礎模型(Foundation Models, FMs),具備讀寫和執行代碼的能力。
近期的研究 [53, 149] 表明,通過對這些代理的設計(如提示詞、工作流程和工具)進行元學習,可以對其加以改進,而這些設計又是通過代碼倉庫實現的。因此,我們將自我改進 定義為一種涉及修改代理自身組件(即其自身代碼)的編碼任務。
關鍵動機在于:實證證據必須反映出系統在自我改進和解決下游任務兩方面的能力 。通過將 DGM 配置為一個編碼代理并測試其編碼能力,觀察到的改進不僅展示了在下游任務中的性能提升,也體現了進一步自我改進的能力,因為自我改進本質上就是一個修改編碼代理自身代碼倉庫的編碼任務。
基于種群的開放式探索(Population-based Open-ended Exploration)
DGM 從一個初始的編碼代理開始,逐步構建起一個所有已發現代理的檔案庫 。在每一次迭代中,DGM 會選擇一些父代代理來自我修改,并分支生成新的代理。
父代選擇機制 大致與其性能得分成正比,并考慮其子代中具有代碼編輯功能的數量(見附錄 A.2)。每個被選中的父代會分析自己的基準測試評估日志,提出下一個要實現的新功能,并將該提議作為問題陳述來執行(見附錄 A.3)。
隨后,該父代將其建議的功能實現到自身的代碼庫中,生成一個新的編碼代理。每一個新生成的代理都會在一個選定的編程基準上進行定量評估,以估計其編碼能力。
只有那些能夠成功編譯、并保留編輯給定代碼庫能力的代理才會被加入 DGM 的檔案庫中,因為只有它們才具備繼續自我修改的能力。其他不符合條件的代理則會被丟棄。
父代選擇 → 自我修改 → 評估 的循環不斷重復,使得解決方案檔案庫逐漸擴大。
值得注意的是,歸檔的解決方案可能在遠晚于其最初發現的時間點上成為通向重大改進的“墊腳石”,這使我們的方法與爬山式智能體設計方法 [107] 有顯著不同。
目前,開放式探索過程 (即檔案庫維護、父代選擇)是由外部固定的,不能由 DGM 自身修改,我們將此作為未來研究的一個方向。附錄 A.4 展示了 DGM 算法的偽代碼。
4 實驗
第4.1節描述了實驗設置,包括用于初始化 DGM 的初始編碼代理。我們在兩個編程基準測試上進行實驗:SWE-bench [60]和 Polyglot [104] (第4.2節)。對于每個基準,我們將 DGM 與兩個基線模型進行比較:沒有自我改進機制的 DGM 和 沒有開放式探索機制的 DGM (第4.3節)。在所有實驗中,我們發現 DGM 均優于這兩個基線,表明自我改進機制和開放式探索對持續提升性能至關重要(第4.4節)。此外,我們還展示了 DGM 所發現的功能可以在不同的大型語言模型(LLMs)之間遷移(第4.4節)。
4.1 實驗設置
DGM 從一個單一的編碼代理開始初始化。該初始代理基于一個基礎模型(FM)構建,并增強了工具使用能力 [4, 114]。該基礎模型在每一步自主決定其行為,并選擇它認為合適的工具來執行。在初始代理中,基礎模型可以訪問兩種工具:一個 Bash 工具,用于執行 bash 命令;一個編輯工具,用于查看和編輯目錄及整個文件(見附錄 A.1)。
代理接收一個輸入提示,指定目標代碼倉庫的位置、問題描述以及倉庫中的測試框架(見附錄 A.1)。
我們運行 DGM 共80輪迭代(每輪生成一個新代理),其中 SWE-bench 實驗并行運行兩輪,Polyglot 實驗并行運行四輪(見附錄 A.2)。在自我修改階段,無論是 SWE-bench 還是 Polyglot 實驗,編碼代理均由 Claude 3.5 Sonnet (New) [3] 驅動。在基準測試評估階段,SWE-bench 使用的是 Claude 3.5 Sonnet (New),而 Polyglot 使用的是 o3-mini [99]。
4.2 基準測試
SWE-bench 和 Polyglot 都是用來評估 AI 代理自動解決編程任務能力的基準測試。給定一個代碼倉庫和一個任務指令,代理需要對該倉庫進行修改以完成任務。
這兩個基準都被廣泛使用 [16, 39, 43, 137, 146, 151],它們要求 AI 代理能夠導航代碼倉庫、理解不同文件中函數之間的交互關系,并在復雜的代碼中發現小錯誤。
SWE-bench 只包含 Python 任務,而 Polyglot 包含多種編程語言的任務。
另一個區別在于,每個 SWE-bench 任務可能需要修改多個文件,而每個 Polyglot 任務主要是在單個文件中從頭實現解決方案(盡管代理仍需查看其他文件以確定所需更改),因此整體上涉及較少的文件修改。
我們選擇了這兩個流行的基準測試來評估 DGM 在不同編碼任務方面的能力,從而驗證算法在各種使用場景下的有效性。
SWE-bench
為了避免在無法解決的任務上浪費計算資源,我們使用 SWE-bench Verified [98],它是 SWE-bench [60] 的一個子集,經過人工標注篩選,確保每一項任務都是可解的。
在本文中,“SWE-bench”一詞默認指的是這個經過驗證的子集。
Polyglot
Polyglot 包含多種編程語言(C++、Rust、Python 等)的任務 [104]。與 SWE-bench 相比,后者是一個被廣泛使用的編程基準,很可能已經被包含在 FMs 的訓練集中,而 Polyglot 更為小眾,不太可能出現在 FMs 的后訓練數據中。
此外,Polyglot 主要由其開發者用來評估 Aider [39],這為我們提供了一個機會,將自動設計的代理與社區中代表性的人工開發代理進行對比——后者在過去一年中一直由人類開發者持續開發并針對 Polyglot 基準進行測試。
最后,Polyglot 能夠測試 DGM 在除 Python 之外的多種編程語言上的泛化能力。
我們采用了類似于 Polyglot 排行榜 [104] 的設置,但有一個關鍵區別:排行榜報告的是 pass@2 性能,即代理可以查看一次真實測試反饋的結果。相比之下,我們采用的是 pass@1 設置,即代理永遠看不到真實測試的結果。
評估策略
由于在完整基準上進行評估成本高昂(見附錄 B.1),我們采用了一種分階段評估策略 來估計編碼代理的表現。
一般來說,當我們更有信心某個代理表現較好時,我們會讓它處理更多任務。
首先,我們讓每個編碼代理在一組10個任務上進行初步測試,以驗證其基本的代碼庫編輯功能。只有保留代碼編輯能力的代理才能解決下游編程任務或進一步自我修改。
通過這一初步階段的代理將進入下一階段,在一個擴展的50個任務集合上接受評估。
對于 SWE-bench,我們根據 SWE-bench-verified-mini [50] 來選取任務,這是一個代表完整基準的小型樣本(見附錄 B.2)。
對于 Polyglot,我們則從完整基準中隨機選取一部分任務(見附錄 B.3)。
由于我們所使用的 LLMs 本質上具有一定的隨機性,其表現可能存在噪聲。我們使用較小的子集評估來估算總體效果,并識別出表現最佳的候選代理。
4.3 基線模型
為了分離并評估 DGM 核心組件的貢獻,我們將 DGM 與兩個基線模型進行比較:沒有自我改進機制的 DGM (DGM w/o self-improve)和沒有開放式探索機制的 DGM (DGM w/o open-ended exploration)。
DGM w/o self-improve 模擬了 ADAS [53] 在本實驗設置中的做法,其中負責修改編碼代理的元代理在整個實驗過程中始終保持為初始代理不變。這一基線使我們能夠評估迭代式自我改進 在加速更優編碼代理進化過程中的作用。
DGM w/o open-ended exploration 則取消了對檔案庫的使用,始終只對自己的最新版本進行自我修改。如果某個編碼代理在自我修改過程中失去了編輯代碼庫的基本功能,它就無法再修改自身或解決任何編程任務。因此,DGM w/o open-ended exploration 會保留其仍具備代碼庫編輯基本功能的最新版本。該基線使我們能夠評估擁有一個檔案庫以及開放式探索所具有的、已被廣泛記錄的有益原則 [20, 23, 36, 70, 111, 125, 148] 在引導代理演化方面的影響。
除了這些通過學習獲得的基線模型之外,我們還將 DGM 與人工設計的開源解決方案進行了比較。
對于 SWE-bench ,我們采用了當前最先進的(SoTA)開源解決方案,并且該方案已經被驗證過(即 SWE-bench 團隊能夠復現其結果)(見附錄 B.4)。
對于 Polyglot ,我們采用了代表性的代理 Aider [39],它是開源的,旨在支持多種編程語言和大規模代碼庫編輯(見附錄 B.5)。
為了進行公平比較,我們在與評估 DGM 所使用的相同基準子集上測量這些方法的已解決問題比例(見附錄 B.2 和 B.3)。這些數值在圖2中以水平虛線表示。
4.4結果
在經歷了80輪 DGM 迭代后,編碼代理在 SWE-bench 上的表現從 20.0% 提升到了 50.0%,在 Polyglot 上則從 14.0% 提升到了 38.0%(見圖2)。
由于在 Polyglot 實驗設置中(第4.2節),DGM 僅在50個任務上進行評估,我們還額外對初始代理和性能最好的 DGM 發現代理在整個 Polyglot 基準測試上進行了評估,以更準確地估計其提升幅度。
在完整的 Polyglot 基準上,DGM 將編碼代理的表現從 14.2% 提升到了 30.7%。這表明 DGM 可以自動自我改進,從而生成更優秀的編碼代理。
此外,性能最佳的 DGM 發現代理在 SWE-bench 上的表現與經過驗證的、開源的、由人類設計的最先進方法相當(見圖2)。在 Polyglot 上,盡管 DGM 的初始代理表現低于 Aider,但它最終發現了一個遠超 Aider 的代理(見圖2)。
DGM 所發現的代理在兩個基準測試上的表現均與或優于人工設計的代理。雖然目前最先進的 SWE-bench 代理和 Aider 都是通過大量人力精心打造的,但 DGM 展示了一種未來可能性:這種創造力可以被自動化,通過自指性的持續自我改進循環來演化。
DGM 自動改進了 FMs 使用的工具及其工作流程(見圖3)。
例如,DGM 增強了編輯工具,使其能夠更細粒度地查看文件(按行查看),以及更精確地編輯文件(通過字符串替換),而不是始終查看或替換整個文件。
工作流程方面的改進包括:嘗試多次解決一個任務,并使用另一個 FM 來評估并選擇最佳解決方案。其他改進還包括在生成后續嘗試時考慮之前的嘗試記錄。
附錄 C.1 和 C.2 分別展示了通往 SWE-bench 和 Polyglot 上最終最優代理的所有修改過程。
由于開放式探索允許以非零概率從檔案庫中的任意代理分支出來,DGM 能夠跳出性能上的“欺騙性低谷”或“虛假高峰”。
例如,在 SWE-bench 實驗的第4輪和第56輪,盡管代理得分暫時低于其父代,DGM 仍能沿該路徑繼續探索創新,并創造出一個超越所有前輩的新代理(見圖3)。
此外,開放式探索也允許嘗試實現相同目標功能的不同方式。例如,盡管目標是提供更細粒度的編輯工具,其實現方式可能大相徑庭,從而導致顯著不同的性能表現(見附錄 D)。DGM 能夠嘗試多種實現方式,找到最合適的一種,避免陷入次優方案。
DGM 在兩個基準測試上都優于兩個基線模型:沒有自我改進機制的 DGM (DGM w/o self-improve)和 沒有開放式探索機制的 DGM (DGM w/o open-ended exploration)(見圖2)。
如果不更新用于修改編碼代理的元代理,DGM w/o self-improve 在早期迭代中還能提升代理性能,但其收益迅速衰減(見附錄 E.1)。
而在 DGM w/o open-ended exploration 中,只保留最新版本的代理,因此一次糟糕的自我修改會使后續的改進變得更加困難(見附錄 E.1)。
為了評估 DGM 改進的泛化能力,我們使用不同于優化階段所用的 FM 對初始代理(第4.1節)和 DGM 運行過程中發現的最佳代理(圖2)進行了測試。
對于 SWE-bench(DGM 使用的是 Claude 3.5 Sonnet (New)),我們替換了 FM 為 Claude 3.7 Sonnet 或 o3-mini,并在200個任務上進行了評估(圖4,左):
使用 o3-mini,初始代理得分為 23.0%,DGM 發現的代理得分為 33.0%;
使用 Claude 3.7 Sonnet,初始代理得分為 19.0%,DGM 發現的代理得分為 59.5%。
對于 Polyglot(DGM 使用的是 o3-mini),我們替換了 FM 為 Claude 3.5 Sonnet (New) 或 Claude 3.7 Sonnet,并在完整基準上進行了評估(圖4,中):
使用 Claude 3.5 Sonnet (New),初始代理得分為 32.0%,DGM 發現的代理得分為 33.3%;
使用 Claude 3.7 Sonnet,初始代理得分為 35.6%,DGM 發現的代理得分為 36.8%。
這些結果表明,DGM 所帶來的改進具有跨 FM 的泛化能力,而非與其運行期間使用的特定 FM 緊密綁定(見圖4)。
此外,為了評估 DGM 發現代理在編程語言之間的可遷移性,我們進行了實驗:訓練一個僅在 Polyglot 中 Python 任務上運行的 DGM 版本,然后將所發現的代理遷移到其他語言的任務中。
專注于 Python 任務的訓練略微提升了在 Python 任務上的表現,但在非 Python 任務上的表現卻不如在所有語言上訓練的 DGM(見圖4,右)。
然而,在搜索過程中從 Python 遷移到其他未見過的語言之后,該代理仍然取得了與多語言訓練的 DGM 相當的表現,并顯著優于初始代理和 Aider。
這些結果展示了所發現改進的魯棒性,表明它們不會過擬合到某一種特定的編程語言。
5 安全性討論
具備自我改進能力的系統,如 DGM,代表了邁向更自主的人工智能發展的一步,這與人工智能領域長期以來的目標一致:打造能夠造福人類的強大 AI [20, 71, 87, 115]。然而,這種能力也帶來了獨特的安全挑戰,源于系統可以自主修改自身代碼的能力。
如果對代碼的修改僅以基準測試性能為目標進行優化,可能會無意中引入漏洞或不符合人類意圖的行為,即使這些修改提升了目標指標 [12]。特別是,如果評估基準未能全面反映代理應具備的所有理想屬性(例如安全性與魯棒性),那么自我改進循環可能在后續代際中放大這種不一致性。
迭代式的自我修改還可能導致內部邏輯變得越來越復雜且難以解釋,阻礙人類的理解、監督和控制 [6, 37, 44, 120]。
認識到這些挑戰,當前 DGM 的實現與實驗設置中已納入多項安全保障措施。
所有代理的執行與自我修改過程都在隔離的沙箱環境中進行,限制其對主機系統的潛在影響,從而減輕意外行為帶來的風險。每次在沙箱中的執行都設有嚴格的時間限制,以減少資源耗盡或無邊界行為的風險。
目前,自我改進過程被限定在一個明確定義的領域內——通過修改代理自身的 Python 代碼庫來提升特定編程基準上的表現,從而限制了潛在修改的范圍。
此外,我們積極監控代理的表現和代碼變更,DGM 的檔案庫為所有修改提供了可追溯的歷史記錄供審查。
截至目前,我們尚未發現生成的代理中存在有害或惡意行為,所有的自我修改主要集中在提升編碼能力上。
相反地,自我改進范式的一個重要潛在益處在于,它原則上也可以被引導用于增強 AI 系統自身的安全性 與可解釋性 。
我們初步探討了如何在 AI 安全場景中部署 DGM,以開發應對基礎模型幻覺(hallucination)的對策(見附錄 F)。正如 DGM 能夠學習提升其編碼能力一樣,只要將相關屬性納入其評估標準,它就有可能發現并整合更好的內部安全機制,或自行修改以提高透明度(例如,引入類似“憲法式 AI”[Constitutional AI] [8] 的原則)[109]。
這表明了一種有前景但具有挑戰性的路徑:將自我改進本身作為一種工具,用于構建更值得信賴的人工智能系統。
進一步的研究還可以探索從一開始就融合“憲法式 AI”的機制,盡管面臨的挑戰是如何激勵系統保留這些指導原則(一個值得探索的選項是創建不可修改的部分,以便在程序終止時評估其余部分)。
DGM 展示了自我改進型 AI 的潛力,同時由于前沿基礎模型(FMs)的當前局限性和有效的緩解措施(如沙箱隔離),仍處于安全研究的邊界之內。
我們主動加入這一安全性討論,旨在引起人們對自我改進型 AI 系統及其相關安全影響的關注,尤其是在這些系統不可避免地變得更加強大的背景下 [10, 11, 20, 31, 142]。
因此,我們倡導持續研究 AI 生成算法(AI-Generating Algorithms)[20] 和自我改進系統的安全演化路徑,以確保其有益于社會的發展。
6 結論與局限性
我們提出了達爾文哥德爾機 (Darwin G?del Machine, DGM ),這是首個由基礎模型(FMs)驅動、具備開放式探索能力的自我改進系統,其中在評估基準上的進步可以直接轉化為更強的自我改進能力。
我們展示了 DGM 能夠自動發現更優的工具和 FM 系統,在兩個編程基準測試——SWE-bench 和 Polyglot 上取得了更好的性能表現。通過自我改進與開放式探索,DGM 展現出持續的性能提升,使我們向具備自我加速能力的自我改進型 AI 系統邁進了一步。
我們證明了 DGM 能夠自主實現與公開可用解決方案相當的性能。然而,它目前仍落后于閉源的 SWE-bench 最先進解決方案。
一個尚未解答的問題是:如果我們運行 DGM 更長時間,是否能繼續帶來性能提升,并最終超越這些閉源方案?
這些閉源方案通常依賴由高技能專家團隊精心設計的技術。由于當前的基礎模型尚未達到這些專家的能力(例如推理能力),因此 DGM 目前需要大量計算資源來發現改進。
如第4節所述,一次完整的 DGM 在 SWE-bench 上的運行大約耗時兩周,并產生高昂的 API 成本(見附錄 B.1)。
我們推測,未來的進展將需要更高效地利用計算資源,并發展出更強的推理能力。
由于當前版本的 DGM 主要依賴基礎模型驅動,其能力本質上受限于底層 FM 的性能。因此,一個令人興奮的未來方向是擴展“自我修改”的范圍,不再局限于提示詞或 FM 工作流程,而是包括更復雜的操作,例如重寫自身的訓練腳本以更新 FM 本身。
雖然當前版本的 DGM 聚焦于編碼任務,但 AI 系統正越來越多地應用于廣泛的領域(例如計算機視覺、創意寫作)。另一個有前景的擴展方向是開發能夠超越編程領域、在多個方面實現自我增強的 AI 系統。
本研究的一個關鍵假設是:編程基準測試能夠很好地反映代理的自我改進能力 ,因為自我修改任務要求代理修改自身的代碼庫。然而,人們也可以設想一種替代方法:讓目標任務分布與系統共同演化,從而擺脫將自我改進綁定于單一目標的限制,正如真正開放式過程所體現的那樣。
正如第5節中所討論的那樣,在探索這一強大技術的同時,我們必須始終將安全性置于核心位置。
總結
綜上所述,DGM 代表了在通過自我改進系統實現 AI 開發自動化方面的重要一步,該系統能夠編輯自身的代碼庫。
盡管當前在計算能力和推理能力方面的限制阻礙了其全部潛力的發揮,但隨著基礎模型與基礎設施的持續進步,我們有望解鎖更強大、更通用的自我改進機制。
只要安全問題能夠被妥善處理(見第5節),自我改進型 AI 系統與 AI 生成算法 [20] 的未來將充滿巨大潛力——它將持續演化 AI,不斷重寫或重新訓練自身,以追求與人類價值觀一致的更高能力。
(代碼截圖至P40,如需要請看原文)
原文鏈接:https://arxiv.org/abs/2505.22954
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.