本日、DeepMindは、LLMを搭載した革新的な進化型コーディングエージェントであるAlphaEvolveを正式に発表しました。これは単なるコード生成ツールではなく、汎用的なアルゴリズム発見と最適化のためにコードベース全体を進化させることができる強力なシステムです。
LLMは驚くべき多機能性を持っています。ドキュメントを要約したり、コードを生成したり、新しいアイデアを提案したりすることさえ可能です。現在、DeepMindはこれらの能力を数学や現代計算における基礎的で非常に複雑な問題にまで拡張しています。
Google DeepMindの研究者であるMatej Balog氏はインタビューで、「数百行にわたる複雑な論理構造を持つ、非常に複雑なアルゴリズムを発見できます。これは単純な関数の範疇をはるかに超えています。」と述べています。
テレンス・タオ氏もMathstodon上で、AlphaEvolveの潜在的な数学的応用を探求するためにGoogle DeepMindと協力してきたことを示しました。
ほとんどのAIモデルは幻覚を起こします。その確率的なアーキテクチャのため、時々自信を持ってでたらめをでっち上げます。実際、OpenAIのo3のような新しいAIモデルは、以前のモデルよりも幻覚を起こしやすいです。
AlphaEvolveは、幻覚を減らす巧妙なメカニズムを導入しています:自動評価システムです。このシステムは、モデルを使用して問題の可能な回答のプールを生成し、批判し、導き出し、回答の正確性を自動的に評価し、スコアリングします。
AlphaEvolveはまた、Geminiモデルの創造的な問題解決能力を、回答を自動的に検証する評価器と組み合わせ、進化フレームワークを活用して最も有望なソリューションを継続的に最適化します。
AlphaEvolveは、AlphaEvolve自体を支える大規模言語モデルのトレーニングを含む、Googleのデータセンター、チップ設計、AIトレーニングプロセスの効率を向上させました。また、より高速な行列乗算アルゴリズムの設計を支援し、未解決の数学問題に対する新しいソリューションを見つけ出し、多くの分野での応用 potential が immenseです。【】
大規模言語モデルを使用したより良いアルゴリズムの設計
AlphaEvolveは、単一関数の発見を超え、コードベース全体を進化させ、より複雑なアルゴリズムを開発できるエージェントです。単一の関数のみを進化させる多くのシステムとは異なり、AlphaEvolveの大きな特徴は、コードベース全体を反復的に最適化および進化させる能力です。
これは、DeepMindが2023年に行ったFunSearchの作業に基づいて構築されています。DeepMindは、大規模言語モデルがコンピューターコードで関数を生成し、未解決の科学問題に関する新しい知識を発見し、その正確性を証明するのに役立つことを初めてdemonstratedしました。
表1は、AlphaEvolveと以前のエージェントの能力と典型的な動作の比較を示しています。
コアメカニズム:LLMの創造性と自動評価の組み合わせ
では、AlphaEvolveはこの強力なコード進化能力をどのように実現しているのでしょうか?その core は、大規模言語モデルの創造性 と 自動評価の客観的フィードバック を 進化フレームワーク に巧みに組み込んでいることにあります。
このプロセスは、継続的な 「生成 - 評価 - 進化」 サイクルとしてsummarizedできます。
図はシステム全体のワークフローを示しています:プロンプトサンプラーがまず入力プロンプトを構築し、言語モデルが新しいプログラムを生成するように促します。これらのプログラムは評価器によってスコアリングされ、プログラムデータベースに保存されます。データベースは進化アルゴリズムによってプログラムの選択を継続的に最適化し、システムの継続的な進化を推進します。
生成
AlphaEvolveは、複数の最先端の大規模言語モデルを組み合わせています。Gemini Flash(DeepMindの最速かつ最も効率的なモデル)は創造的な探求の幅を広げ、Gemini Pro(DeepMindの最も強力なモデル)は深い洞察力でソリューションに必要な重要な深さを提供します。
この統合戦略の目的は、生成されたソリューションの品質を維持しながら、計算スループットを向上させることです。これらのモデルは協働してアルゴリズムソリューションを実装するコンピュータープログラムを生成します。
1. プロンプトサンプリング(Prompt Sampling)
AlphaEvolveは current 最先端のLLMに依存しているため、さまざまな forms のカスタム operation をサポートし、主進化プロンプト(primary evolution prompt)で長いコンテキスト情報を提供できます。
このプロンプトには通常、プログラムデータベースからサンプリングされた複数の既存の solution と、特定の solution を modified する方法に関するシステム instructions が含まれます。ユーザーは、explicit context、レンダリングされた評価結果などを通じてプロンプトをさらにカスタマイズできます。
2. 創造的生成(Creative Generation)
進化プロセスを推進するために、AlphaEvolveは最先端のLLMの能力を活用しています。その core 役割は、以前に生成された solution に関する情報を理解し、多様な新しい改善方法を提案することです。
AlphaEvolve自体は特定のモデルに依存しませんが(モデル不可知性を持っています)、アブレーション実験では、AlphaEvolveのパフォーマンスが下層のLLMのパフォーマンス向上に伴って継続的に向上することが観察されています。
出力フォーマット(Output Format):AlphaEvolveがLLMに既存のコードを modified することを要求する場合、特に大きなコードベースでは、特定 formats の差分(diff)フラグメントのセットを提供するように要求します。フォーマットは以下の通りです。
ここで、<<<<<<<SEARCH と ======= の間にあるコードは、現在のプログラム version で正確に一致させる必要がある original フラグメントです。一方、======= と>>>>>>> REPLACE の間にあるのは、元のフラグメントを置き換えるために使用される新しいコードフラグメントです。
このようにして、 modification はコードの指定された部分に precisely 適用できます。進化されるコードが短い場合、または局所的な変更よりも最初から書き直す方が合理的である場合、AlphaEvolveは、差異 formats を使用せずに完全なコードブロックを直接出力するようにLLMに要求することも可能です。
評価
このサイクルでは、自動評価メトリックが重要な役割を果たします。AlphaEvolveはこれらのメトリックを使用して、提案されたプログラムを検証し、実行し、スコアリングします。これらのメトリックは、各 solution の正確性と品質に関する客観的で定量化可能な評価を提供します。
1. タスク仕様
評価:AlphaEvolveは機械採点可能な(machine-gradeable)問題を扱うため、ユーザーは生成された solution を自動的に評価するメカニズムを提供する必要があります。これは typically 関数 h の形式をとり、 solution をスカラー評価メトリックのセット(最大化が必要)にマッピングし、通常はPython関数(evaluate)として実装されます。
API:コードベース内の複数のコンポーネントの進化をサポートするために、AlphaEvolveは入力APIを開放しており、コードに特殊マーカー(例:コメント内の# EVOLVE-BLOCK-STARTおよび# EVOLVE-BLOCK-END)を追加することで、システムが進化させることができるコードブロックを指定します。これらの進化ブロックのユーザー提供コードは初期 solution として機能し、残りのコードはこれらの進化可能な部分を接続する skeleton を形成し、evaluate関数によって呼び出されるようにします。
抽象化レベルの選択における柔軟性:AlphaEvolveは、同じ問題に非常に different な方法で適用できます。特に、進化されたプログラムが最終出力ではなく、 solution を発見する手段である場合です。例えば、 original strings の solution を進化させたり、ゼロから solution を構築するための well-defined 関数を進化させたり、 fixed computational budget 内で solution を見つけるための customized search algorithm を進化させたり、 intermediate solution と search algorithm を jointly 進化させたりすることができます。
2. 評価プロセスと最適化メカニズム
AlphaEvolveの進行状況を追跡し、将来の世代に propagation するアイデアを選択するために、LLMによって提案された新しい solution は each 自動的に評価されます。 basic プロセスは、ユーザー提供の評価関数 h を実行することです。実際、AlphaEvolveは、評価をより flexible かつ efficient にするための multiple mechanisms をサポートしています。
評価カスケード(Evaluation Cascade): 難易度 increasing のテストセットを使用して solution を quickly フィルタリングします。
LLM生成フィードバック(LLM-generated Feedback): 定量化が困難な attribute を score するためにLLMを使用します。
並列評価(Parallelized Evaluation): 評価タスクを distributed に実行して efficiency を向上させます。
複数評価指標最適化(Multiple scores)をサポートし、複数の目標を同時に最適化したり、 single objective の結果を改善したりすることも可能です。
進化
その進化プロセスにおいて、AlphaEvolveは評価結果(スコアとプログラム出力)を伴う solution を continuously 生成します。これらの solution は進化データベース(evolutionary database)に格納されます。このデータベースの primary goal は、以前に探索されたアイデアを将来の世代で optimally 再利用することです。
このようなデータベースを設計する上で key challenge は、探索(exploration)と exploitation のバランスをとることです。すなわち、 current optimal solution を継続的に改善しながら、検索空間全体を探索をencouragingするために solution の diversity を維持することです。
AlphaEvolveでは、この進化データベースは、MAP-elites アルゴリズムと island-based population models の組み合わせに inspired されたアルゴリズムを実装しています。
これにより、AlphaEvolveは、数学やコンピューターサイエンスのような、進歩を明確かつ体系的に測定できる wide domains で特に役立ちます。
DeepMindのコンピューティングエコシステムの最適化
過去1年間で、DeepMindはAlphaEvolveによって発見されたアルゴリズムを、DeepMindのデータセンター、ハードウェア、ソフトウェアを含むGoogleのコンピューティングエコシステム全体に展開しました。
これらの改善の影響は、DeepMindのAIおよびコンピューティングインフラストラクチャ全体で amplified され、すべてのDeepMindユーザーのために、より強力で持続可能なデジタルエコシステムを構築しました。
この diagram は、AlphaEvolveがGoogleがより efficient なデジタルエコシステムを提供するのにどのように役立つかを示しています。データセンターのスケジューリングやハードウェア設計からAIモデルのトレーニングまでを網羅しています。
データセンターのスケジューリングの改善
AlphaEvolveは、Googleの巨大なデータセンターをより efficient に coordination するのに役立つ、 simple だが非常に effective な ヒューリスティック メソッドを発見しました。この solution は1年以上 production で使用されており、平均してGoogleの global computing resources の0.7%を継続的に回復しています。この sustained efficiency 改善は、いつでも、同じ computing resources でより多くのタスクを完了できることを意味します。
AlphaEvolveの solution は強力な performance を達成しただけでなく、 human-readable code の重要な operational advantages も提供しました:解釈可能性、デバッグ可能性、予測可能性、容易なデプロイメントです。
ハードウェア設計の支援
AlphaEvolveは、行列乗算の key、 highly optimized 算術回路の redundant ビットを remove する Verilog 書き換え solution を提案しました。この提案は、 rigorous validation を通じて modified 回路が functional correctness を維持していることを確認し、 upcoming Tensor Processing Unit(TPU)に integrated されました。
チップ設計者の standard language(Verilog)で modification を提案することで、AlphaEvolveはAIエンジニアとハードウェアエンジニア間の collaboration を促進し、 future dedicated chips の設計を加速します。
AIトレーニングと推論効率の向上
AlphaEvolveはAIの performance と研究プロセスを significantly 加速させています。大きな行列乗算 operation を分解するより smart な方法を見つけることで、Gemini architecture のこの critical kernel の実行速度を 23% 向上させ、 consequently Gemini のトレーニング時間を 1% 短縮しました。
performance 向上に加えて、AlphaEvolveは kernel optimization に必要な engineering time を大幅に削減しました。専門家が数週間を費やしていたものが、 automated experiments ではわずか数日になりました。
AlphaEvolveは low-level GPU instructions の optimization も可能です。TransformerベースのAIモデルでは、FlashAttention kernel 実装で最大 32.5% の速度向上を達成しました。この optimization は、専門家が performance bottleneck を precise に特定し、 improvements を easily 統合するのに役立ちます。
数学とアルゴリズム発見の最前線の推進
より高速な行列乗算アルゴリズム
AlphaEvolveは、コンピューターサイエンスにおける基礎的な問題である行列乗算のような、複雑な数学問題に対する新しいメソッドも提案できます。 gradient-based optimization program を通じて、AlphaEvolveは 48回の scalar multiplication を使用して 4x4 complex matrices を乗算するアルゴリズムを設計および発見しました。
この発見は、Strassenの1969年のアルゴリズムを improvements したもので、この設定における 56年間で初めて known な improvement を示しており、DeepMindの以前の作業であるAlphaTensorを significantly 超越していることも示唆しています。
未解決問題の解決
AlphaEvolveの広範な探求のために、DeepMindはこのシステムを数学分析、幾何学、組み合わせ論、数論における 50以上の未解決問題 に applied しました。システムの flexibility により、ほとんどの実験を数時間以内にセットアップすることができました。
約 75% のケースで、それは最先端の solution を再発見しました。 20% のケースで、AlphaEvolveは previously known な最良の solution を improvements し、 corresponding 未解決問題に進歩をもたらしました。
たとえば、300年以上にわたり数学者の関心を集めてきた kissing number problem では、AlphaEvolveは 593個 の外球の configuration を発見し、11次元で新しい lower bounds を確立しました。