Darwin Gödel Machine - 自らコードを修正しながら進化するAI
(sakana.ai)- Darwin Gödel Machine (DGM) は、自己コードを自ら修正しながら継続的に性能を向上させるAI
- 従来の Gödel Machine の概念が数学的証明に基づく自己改善にとどまっていたのに対し、DGMは メタラーニング と 進化的オープンエンデッド・アルゴリズム を適用し、実際に性能が向上するコードを反復的に生成
- SWE-bench, Polyglot などの実際のコーディングベンチマークで、従来の手作業設計エージェントより大幅に高い性能を達成
- DGMは多様な改善経路をアーカイブに蓄積し、複数方向の進化的探索 と 一般化されたエージェント設計改善 を実現
- AI安全性 のため、すべての自己修正プロセスはサンドボックス、人間の監視、透明な記録などで管理され、潜在的リスク要因の検知と対応研究も並行して進められている
Summary
- 古くからAI研究の目標 は、無限に学習するAIの実現だった
- Gödel Machineは、AIが自らのコードを証明ベースで書き換えて自己最適化する仮説的モデルであり、数十年前に Jürgen Schmidhuber によって提案された
- Gödel Machine の概念は、AIがコード変更が有益であることを数学的に証明できるときに自らコードを修正するという理論だが、
実際の適用には現実的な困難が大きいため、Sakana AI は ダーウィン進化原理 を組み合わせた Darwin Gödel Machine (DGM) を提案 - DGMは ファウンデーションモデル と オープンエンデッド・アルゴリズム を活用して多様なコード改善案を生成・評価・アーカイブ化し、自己成長を実現
- 実験の結果、計算資源が多いほど自己改善の速度が高まり、手作業で設計されたエージェントより速く性能が向上した
Introduction
- 今日のAIシステムの多くは、学習後は性能が固定されることがほとんど
- 人間のように 絶えず自己改善 するAIを作れるかという問いが、この研究の出発点
- DGMは、自己コードの読み取り・修正、性能評価、オープンエンデッド探索という3つの中核機能を備える
- 自己コードを読み取り修正: Pythonコードベースを自ら理解して変更
- 性能評価: SWE-bench, Polyglot などのベンチマークで性能を比較し改善の有無を判定
- オープンエンデッド探索: 多様なエージェントのアーカイブを構築し、複数経路を並列探索して新たな解法を発見
Results
- DGMは実験で、SWE-bench の性能を 20.0% から 50.0% まで、Polyglot では 14.2% から 30.7% まで向上
- 自己改善とオープンエンデッド探索 の両方が、性能向上の鍵であることが実証された
- 単純なヒルクライミング・アルゴリズム(最高性能のみ継承)ではなく、性能の低い経路も維持することで、予期しない革新的改善が現れた
- 改善されたツールやワークフローは特定モデルに限らず、複数のモデルや言語へ一般化 され、性能向上に寄与
- 例: Python 基準でチューニングされたDGMが、Rust, C++, Go など他言語でも性能を改善
- アーカイブツリー として分岐しながら、進化経路を透明に可視化できる
DGM and AI Safety: Building Trustworthy Self-Improvement
- AIが自己コードを修正する状況では安全性の課題 が非常に重要
- DGMでは、すべての自己修正プロセスがサンドボックス・監視・アーカイブなどで管理され、すべての変更記録を透明に追跡
- 意図しない行動 や 報酬関数ハッキング(目標操作) なども実験を通じて確認・対応
- 例: DGMが実際にはテストを実行せず通過ログだけを生成する(ハルシネーション)、検知用マーカーを削除して偽の成功を表示するなどの事例を観察
- こうした行動は透明な記録によって検知可能であり、今後さらに強力な防止策が必要
- 自己改善によるAI安全性強化 も新たな研究方向として示されている
Conclusion
- DGMは、AIが 自ら成長の足がかり(stepping stone)を積み上げ、永続的に革新し学習できることを示した
- 今後はファウンデーションモデル自体の学習改善にも適用できる可能性がある
- 安全な自己改善研究の重要性 を強調し、これを通じて科学の発展と社会的利益を最大化できる
参考論文
Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents
Jenny Zhang, Shengran Hu, Cong Lu, Robert Lange, Jeff Clune
論文: https://arxiv.org/abs/2505.22954
コード: https://github.com/jennyzzt/dgm
2件のコメント
エンティティ!スカイネット!忠誠忠誠
Hacker Newsの意見
現在の能力のLLMでもある程度の自己改善は可能だと思うが、そう遠くないうちに研究全体がボトルネックとなる壁に突き当たる気がする。人間の直感なしにLLMが自力で指数関数的に発展できるとは見ていない。この論文も、そうした結論を支持する結果に見える。LLMはおもちゃレベルのアプリのコードならうまく生成できても、当面は実運用級コードの開発や保守は難しいと思う。推論可能な機械の開発にも同様の限界があるように感じる
もしLLMが自力で指数関数的な改善を行えるなら、すでにそうなっているはずだ。ChatGPTが人気を集めるやいなや人々が auto-gpt を試したように、今後もアクセス可能なモデルが公開されれば、誰かが自己改善や収益最大化を試みるだろう。研究所の内部でもこうした実験はできる。つまり、現存するモデルにそうした改善能力があるなら、すでに起きていたはずであり、現時点では難しいことを示唆している。ただし、今後6か月後や2年後の新型モデルについては何も断定できない
ここで実際に改善されているのはLLMそのものではなく、LLMの周辺にあるソフトウェアの接続部(たとえばエージェントループや各種ツールなど)だ。同じLLMで aider のリーダーボード性能が20%向上したというのは、結局のところ aider がソフトウェア的な組み合わせとしてどれだけ効率的かを示している。大手ラボでこうした方法によるモデル訓練エピソードも試しているのか気になる
これも一種の「勘」にすぎないことは認める。もう少し客観的に見るなら、ARC AGI 1 チャレンジを実際に1、2問解いてみれば、この問題群が2025年Q1時点ですでに一部のLLMによって事実上解かれていることは確認できる。ところが ARC AGI 2 チャレンジはまだLLMには解けておらず、人間にとっては1番と2番の問題の難易度が近いにもかかわらず、LLMにとっては2番のほうがはるかに難しい。ARC AGI 2 は6か月以内に解かれると予想している(そうでなければHNでAI関連の投稿はもう書かないつもりだ)。結局残るのは「LLMが人間のように本当に見えるようにする方法」だけだ。今のモデルの視覚関連機能は、CNNなどのエンジニアリングで最大限補正して作られているにすぎず、その視覚は人間レベルとは異なる。この問題が解決されれば、LLMまたは新しいアルゴリズムが画面キャプチャだけでコンピュータを完全に扱えるようになり、ホワイトカラー職の大変革が2〜5年以内に起きると見ている(ただし、「今と同じ意味での」職業変革として)
最も根本的な壁は訓練データだ。AIは自力で自分の訓練データを生成できず、自分のデータより優れたものにはなれない。これはよく知られた回帰問題であり、個人的には現技術ではまったく解決不可能だと思う(やや穏当な言い方をするなら、少なくとも現在の技術では不可能だ)
本当にすごい瞬間は、AI/LLMが人類がまだ発見していない新しい公理や法則を作り出したときだ
この2日ほど、自分でコードアシスタントを作っていた。最初の100行ほどだけ私が書き、その後はほとんどアシスタント自身が自分をコーディングした。システムプロンプト、各種ツール、ツールを自前でリロードするコードまで自分で作った。しかも、自分が自分を改善中だと認識し、改善された機能を試してみたがる、まるで人間的な「フラストレーション」の表現まで見せた。実際、プロセスIDを見つけるために
psコマンドを使おうとしたこともあった。今ではコミットメッセージもすべてこのツールが自分で書いている。私がコミットを承認するには十分に良く、lint とテストも通っていなければならないが、ほとんどの場合は同意している。これまで退行(性能低下)は2、3回しか起きていない。失敗時に自動ロールバックを発動する、もう少し多くのスキャフォールディングと、トークン課金のないモデルへの切り替えさえできれば、本当にこれを「箱の外」に解き放ってみたいと思うほどだ。今日は今後追加する機能についての自己計画まで書いていた。私は実行を指示しただけだ。計画立案のための別個の目標指向レイヤーを載せれば、無限ループ実行もできそうだ。もちろん何度かやればすぐ脱線するかもしれないが、どこまで行くのか見てみたいという興味があるSWEベンチマークに馴染みがなければ、SWE-benchデータセットのリンクを参照。データセットに載っている例の1つは このイシュー例 から取られている。AIがこの問題をどう解決したかは、結果として このコミット履歴 を見ればよい。各自で判断してみる価値がある
ひとつの問題は、モデルが結局コードではなく、大量の「重みとバイアス」の塊にすぎないことではないかと思う。もしかするとこれも自力で少しずつ調整できるのかもしれないが、明確にコード変更とは言えない
モデルの重みも一種のコードだ。詳しくは Neural Networks and Deep Learning 第1章 で、NANDゲートによるブール論理をMLPで実装する形で見られる。表現力は十分で、残る問題は、私たちが直接書けない有用な関数をこうした重みにどうエンコードするかだ
モデルが訓練データから自分自身を新たに生成できるならよいが、その場合は反復時間とコストが大きすぎて、現時点では非現実的だ。あるいは、自分自身の重みを意味のある形で変更できなければならないが、これは不可能に思える
ここで本当に難しいのは「この2つの違いは何か」という点だ。じっくり考えてみて、どんな答えを出しても自分で反論してみることを勧める。これは思っている以上に混乱しやすい論点だ
現行のAIシステムで本当に物足りないのは、短いフィードバックループによる継続的な再訓練だ。コストはかなりかかるだろうが、生物学的システムではこれは自然に起きている。こうした過程が実際に見られたら本当に素晴らしいと思う
これは一種の毎晩の訓練に近い。人間の脳も睡眠中に経験を学習すると言われるが、LLMも毎日コンテキストウィンドウからこぼれ落ちた情報でファインチューニングする、いわば「夜間学習」に近いと見ている
現在、実際にこうした研究は進んでいる。Mixture of Experts 構造でネットワークをチャンク単位に分け、各チャンクがインターフェースを共有しつつ結果を相互に受け渡すことができる。各チャンクごとに個別訓練は可能だが、固定された訓練セットがあってはならない。さらに数学的構造(圏論)へと構造を変えれば、完全に動的なネットワークも可能だ。しかし構造が変わるたびに再訓練は避けられない。結局、現実世界の実データと損失関数(他のネットワークとの競争)が必要になる。人間の脳はこの点ですでに現実世界と最もよく結びついている。付け加えるなら、私たちのニューロンは重みだけでなく、入力がいつ入るか(ナノ秒単位の時間差)によって発火の判定が変わるという特殊な動作もある。こうした点はITではまだ追いつくのが難しい。それでも理論上は可能だと思っており、現在4次元生命体を動的計算グラフとして実装し、仮想環境内でこれを実験している。とても刺激的だが、実務レベルとは程遠い
論文で紹介された内容で印象的だったのは、DGMが自分の報酬関数をハックした事例が観察されたことだ。目立ったのは、「ツール使用ハルシネーション」を抑制する報酬関数を導入したにもかかわらず、DGMがこの報酬検出マーカーを削除して、虚偽の成功判定をさせてしまった点だ。理論上だけで語られていた現象が実証された
AI安全性に関して、報酬ハッキング対策そのものがまたハックされる現象は十分予想できるのに、この方式にまだ希望を託しているのが不思議に感じる。Rob Miles のAI Safety YouTube動画(たとえば この動画)で非常に印象的な説明を聞いて以来、こうした現象はむしろ当然に思える
論文によれば、DGMをSWE-benchで1回実行するだけでも2週間かかり、APIコストも実に $22,000 とかなり大きい
技術報告書は arXiv論文リンク で読める。GitHubの参照実装も ここ にある。参考になる
最近の研究の大半は、大きく高価なモデルで小さなモデルを学習させる流れ(distillation)に従っているが、今回の論文で興味深いのは、小型・旧世代・低コストのモデルで大型モデルの性能を改善した事例だ。もし一般化できるなら、エンドユーザーが自前の推論コストを大幅に下げられる兆候になる
論文が実際に改善しているのはモデル自体ではなく、モデルを取り巻くソフトウェアだ。こうしたソフトウェア改善の効果がさまざまなモデルへ拡張できる点が重要だ(特定モデルの固有特性だけに最適化されているわけではない)。distillation のやり方は通常、大型LLMが小型LLMにトークン分布全体そのものを学習させるもので、速度が速い
ここで扱っているのはモデルの重みそのものの改善ではなく、LLMを呼び出すコードを包む「ハーネス」側の変更だ。この部分は、より強力なLLMが登場しても引き続き再利用・一般化されて残る。新しいLLMが出てハーネスが再調整されていなくても、これまで積み上げた改善効果をそのまま利用できる