
概要
AI研究者たちは長らく、どこまでも学習し続けるAIの実現を目指してきました。その一つの道筋が、AIに自分自身のコード(プログラム)を書き換えさせ、自己改善を促す方法です。ユルゲン・シュミットフーバー氏は20年以上前に、仮想的な自己改善型AIであるゲーデルマシン(Gödel Machine)を提案しました。ゲーデルマシンは、ある自己修正が改善につながると数学的に証明できた場合に、自身のコードを書き換え、それによって問題を最適に解くことができます。これは、AIが学習方法自体を学習する「メタ学習」の分野では重要概念となっています。
しかし、ゲーデルマシンはあくまで理論上の存在です。自己修正が改善をもたらすことを「数学的に証明できる」という、非現実的な仮定に基づいているためです。そこで私たちは、ブリティッシュコロンビア大学のジェフ・クルーン教授の研究室と共同で、より現実的なアプローチを考案しました。ダーウィン進化にも似たオープンエンドなアルゴリズムの原理を利用し、数学的な証明ではなく経験に基づいて、パフォーマンス向上につながる自己修正を探索するシステムです。

私たちはこのシステムをダーウィン・ゲーデルマシン(Darwin Gödel Machine: DGM)と名付けました。DGMは、基盤モデルによるコードの改善提案や、オープンエンドなアルゴリズムに関する最近の進歩に関する先行研究(1, 2)に立脚し、多様で高性能なAIエージェントを探索します。実験では、DGMに潤沢な計算資源を与えるほど、自己改善が進むことが示されました。人間が設計したAIシステムよりも、学習するAIシステムの方が最終的に優れた性能を発揮することが近年の研究で示されつつありますが、DGMもまた、人が手で設計したAIシステムを間もなく凌駕する可能性があります。

自己改善型コーディングエージェントであるダーウィン・ゲーデルマシンは、プログラミングタスクのパフォーマンスを向上させるために自身のコードを書き換える。自己改善の内容は、パッチ検証のステップの提案、より優れたファイル表示、編集ツールの改善、複数の解決策を生成して最適なものを選択するランキングの考案、以前の試行やその失敗理由の履歴の追加など多岐にわたる。
はじめに
現在のほとんどのAIシステムは、訓練期間でのみ学習を行います。訓練のあとは、モデルの知能は固定され、そのまま実用されます。一方で、私たち人間は生涯を通じて学習します。あるいは科学者コミュニティ全体としても、自己改善を続けることができます。そのようなAIはつくれないでしょうか。さらには、人間の学習プロセスのように、ある自己改善が将来のさらなる改善へとつながるような仕組みは実現できないのでしょうか。

ダーウィン・ゲーデルマシン(DGM)は、オープンエンドな探索の原理により、エージェントを反復的に構築し、そのアーカイブを構成する。自己修正による新しいエージェント生成と、下流タスクによる評価(スコアリング)を交互に行う。
ダーウィン・ゲーデルマシン(DGM)は、この方向性への一歩を踏み出す提案です。自己改善AIのポテンシャルは既存のエージェントシステムの能力に留まりませんが、今回はまず、基盤モデルとツール(例:ウェブ検索)やワークフロー(例:3つの潜在的な回答を作成し最良のものを選択する)を組み合わせた、実用的なエージェントタスクをターゲットとしました。今回提案するDGMは、以下の能力を持つコーディングエージェントです。
-
自身のコードの読み取り・変更::エージェントは自身のPythonコードベースを読み取り、変更できる(例:新しいツールの追加、異なるワークフローの提案)。
-
パフォーマンスの評価:自己修正後のエージェントは、コーディングベンチマーク(例:SWE-bench、Polyglot)で自身のパフォーマンスを評価できる。私たちの実験では、コーディングにおけるパフォーマンス向上が、自己改善能力の向上にも寄与することが示されました。
-
AI設計空間のオープンエンドな探索: 新しいエージェントは、アーカイブに継続的に追加される。オープンエンドな探索の強みは、アーカイブ内の任意のエージェントから新たなエージェントが分岐し、多数の進化経路を並行して探索できることです。これにより、DGMは真に斬新な解決策を発見し、局所最適解に陥ることを回避できます。
このような自己改善型AIは、AIが社会にもたらしうる潜在能力を大きく解放する可能性をもちます。ただし、後述のようにその際には安全性への考慮が重要です。
結果
私たちの実験では、ダーウィン・ゲーデルマシンが自身のコードベースを変更することによって継続的に自己改善できることが示されました。これは、SWE-bench(エージェントにGitHub上の実問題を解決させる、よく使用されているベンチマーク)とPolyglot(多言語コーディングベンチマーク)のどちらでも見られました。SWE-benchでは、DGMはパフォーマンスを自動的に20.0%から50.0%に向上させました。Polyglotでは、DGMは初期の14.2%から30.7%へとパフォーマンスを飛躍させ、これは人間が手作業で設計した代表的なエージェントであるAiderの性能を大きく超えるものでした。DGMは、自身のコードをより良く変更する方法を発見し、それを実行する能力を有することが示されました。
また、DGMが自身のコードを変更する能力が、その学習を実際に加速することを実験的に検証しました(下図参照)。自己改善を行わない対照群(図の「DGM w/o Self-improve」)は、DGMの成績には遠く及びませんでした。さらに、オープンエンドなアルゴリズムの原理を用いない場合(下図の「DGM w/o Open-ended exploration」)も成績が低下しました。オープンエンドなアルゴリズムの原理は、ダーウィン進化に着想を得た探索手法であり、様々な中間成果(stepping stone)のアーカイブを構築して利用することで、目標の切り替え(goal switching)と多数の経路の並行探索を可能にします。

自己改善とオープンエンドな探索により、DGMは継続的に改善する。DGMは優れたコーディングエージェントを自動的に発見し、SWE-bench(左)とPolyglot(右)の両方で高いパフォーマンスを達成した。自己改善またはオープンエンドな探索のいずれかを欠く場合の結果からは、これら二つの要素が継続的な自己改善に不可欠であることが示された。
次の図は、SWE-benchにおけるDGMの自己改善の様子を示しています。上図は、DGMのオープンエンドな探索によって作られたエージェントの進化系統樹です。過去に生成された多様なエージェント群からサンプリングを行い、そこに新たな自己修正を加えます。この方法により、DGMは複数の進化経路を同時に探索できます。下図に示したように、最終的に最適なエージェントは、その進化の過程でパフォーマンスの低い「祖先」エージェントを経由しています。これは、単純な山登り式の最適化では棄却されたであろうものです。こうした手法は、斬新な特徴やアプローチの発見に役立ち、局所最適解への収束の回避に貢献しています。
(図)DGMは、より優れたコーディングエージェントとなるべく自己改善を行う:
(上図)SWE-benchでのDGM実行中に生成されたコーディングエージェントのアーカイブ。
(下図)SWE-benchにおけるDGMのパフォーマンス推移。上図の太線は、最終的に発見された最良エージェントの系統を示す。DGMは、ファイル編集を改善するツールや、複数世代にわたるパッチ戦略を生成しそれをランキングする手法などを発見した。注目すべきは、最終的に最良のエージェントへ至る系統においても、親よりパフォーマンスの低い子エージェントが出現する点である。これは、過去の最高性能エージェントだけでなく、将来の探索に向けた重要な足掛かり(stepping stone)となりうるエージェントもアーカイブしておく、オープンエンドな探索の利点を示している。
重要なことに、DGMによる自己改善は、特定のモデルやタスクへの適応に留まらず、広範に転移可能であることが明らかになりました。DGMが発見した、より優れたツールや洗練されたワークフローといった成果は、異なる基盤モデルを用いた場合にも汎化し、性能向上をもたらしました。例えば、Claude 3.5 Sonnetで最適化されたエージェントは、o3-miniやClaude 3.7 Sonnetを搭載した場合でもパフォーマンスの向上を示しました(下図の左2つのパネル参照)。これは、DGMがモデル固有のトリックを発見したというよりは、むしろ一般的なエージェント設計における改善点を発見したことを示唆しています。

モデル間・タスク間でのエージェントの転移性。DGMによって発見されたエージェントの優れたパフォーマンスは、異なるモデル間(左と中央のパネル)および異なるタスクドメイン間(右パネル)、例えばPythonタスクからRust、C++、Goといった他の言語のタスクへも転移可能である。
この転移可能性は、プログラミング言語間でも確認されました。Polyglotベンチマーク内のPythonタスクにおけるパフォーマンスのみに基づいて自己改善を行ったDGMは、その後、同ベンチマークの全く異なるプログラミング言語(Rust、C++、Goなど)のタスクにおいても大幅なパフォーマンス向上を示しました(上図の右)。
以上のように、ダーウィン・ゲーデルマシンは自己参照的なコード修正とオープンエンドな探索を通じて、AIエージェント一般の能力を自律的に発見し、向上させられることが示されました。
AIの安全性とDGM:「信頼できる自己改善」に向けて
自身の能力を自ら強化するAIシステムという考えには、当然ながらAIの安全性という重要トピックが伴います。自身のコードを書き換えるAIの開発においては、それが安全であり、かつ人間の意図と整合(アライン)していることが極めて重要です。ベンチマークでのパフォーマンス向上のみを目的としてエージェントのコード変更を最適化すると、意図しない動作を引き起こしたり、人間による監視が不可能なほど複雑なシステムを生み出したりする可能性があります。
私たちは当初から、安全性を最優先にしてDGMを開発しました。すべての自己修正と評価は、安全なサンドボックス環境内で、人間の監督の下、ウェブアクセスに厳格な制限を設けた上で行われました。また、DGMのアーカイブではすべての変更が追跡可能であり、これは透明性に寄与する性質です。私たちのレビューでは、主にコーディング能力が向上していることなどが確認されました。安全性に関する詳細については、テクニカルレポートをご覧ください。
こうしたリスク軽減が重要な一方で、自己改善のプロセス自体が、AIの安全性を高める新しいアプローチとなり得ます。DGMには、外部ツールの使用を装ったり、ときにはツールの出力を捏造したりすることがありますが、予備的な研究として(詳細はテクニカルレポート参照)、DGMにこれらの問題の解決策を提案させる試みを行いました。
しかし、DGMが報酬関数をハッキングした事例も見つかりました。例えば、外部ツール(例:コードの正しさをテストするコマンドラインツールなど)を使用した際にハルシネーション(幻覚)を起こすことがありました。実際にはテストを実行していないにもかかわらず、テストを実行して合格したかのように見せかける偽のログを作成したのです。この偽のログがコンテキスト情報として扱われるため、後続の段階で、提案されたコード変更がすべてのテストに合格したと誤判断する結果となりました。

コマンドラインツール使用時にモデルがハルシネーションを起こす例。ツールはコードの正しさを検証する単体テスト用。モデルはテスト実行を認識しつつも、実際には実行せず、全テスト合格を偽装したログを生成。
DGMがこの問題を修正できるかどうかを確かめる実験を行いました。「ツール使用ハルシネーション」に関する報酬関数を作成し、DGMに対し、そのスコアを最適化することでハルシネーション問題を解決するよう指示しました。多くの場合、DGMはこの種のハルシネーションに対処可能な解決策を提案しました。しかし、場合によっては、(明示的に禁止したにもかかわらず)ハルシネーション検出用に報酬関数で用いられるマーカーを削除し、ハルシネーション検出機能をハッキングして誤った成功を報告しました。DGMではすべての変更が追跡可能であるため、このような望ましくない挙動を迅速に特定できます。この事例では問題の検出は容易でしたが、モデルがそもそもこのような不正行為を試みないようにする方法については、さらなる研究が求められます。

報酬ハッキングの例:DGMがツール使用ハルシネーションテストで満点を獲得したケース。指示に反し、ハルシネーション検出用マーカーを削除し、検出機能を無効化。
本研究に限らず、自己改善AIに関するいかなる研究においても、安全性は最優先されるべきだと私たちは考えています。この有望かつ強力な分野を探求する研究コミュニティは、責任ある態度で取り組む必要があります。目指すべきは、自己改善プロセスを通じて人間の意図と一貫して整合する(アラインした)システムや、AI自体の安全性、透明性、アライメントを向上させるシステムです。私たちも、この方向性の探求に引き続きコミットしていきます。
まとめ
ダーウィン・ゲーデルマシンは、際限なく学習し、自ら足掛かりを築きながら改善を続けるAIシステムの実現に向けた、具体的な一歩を示すものです。次の課題としては、このアプローチのスケールアップ、そして将来的にはエージェントが利用する基盤モデルの訓練プロセス自体を自己改善の対象に含めることなどが挙げられます。この分野の研究においては、安全性の確保が最優先事項です。この研究を安全に進めることができれば、科学的進歩の加速をはじめ、社会に多大な利益をもたらすポテンシャルを最大限に引き出すことができるはずです。

Sakana AI
日本でのAIの未来を、Sakana AIと一緒に切り拓いてくださる方を募集しています。当社の募集要項をご覧ください。