エージェンティックな最適化に関する研究では、AIエージェントは複雑なコードベースをナビゲートして推論パフォーマンスを向上させることができる一方で、エンジンファイル内の関連するコードパスを理解するだけで時間の最大20%を費やしていることが示唆されています。この変化により、コンパイラを「分解」する動きが進んでいます。そこでは、従来のヒューリスティックに基づく最適化が、エージェントがよりスムーズな探索空間をナビゲートするのを助ける安定した中間表現(IR)やコストモデルに置き換えられています。
コンパイラからインフラストラクチャへ
モデルを高性能なカーネルに変換するという機械学習コンパイラの伝統的な役割は、コードを直接最適化できるエージェントによって挑戦を受けています。コンパイラは置き換えられるのではなく、共有された抽象化と再利用可能なツールの基盤として再定義されています。
目標は、安定したIRと、Leanなどで形式化された検証ツールを提供することであり、エージェントによって生成されたソリューションが正しいことを保証することです。これにより、エージェントは各反復でコンパイラインフラを再発明することなく、最適化戦略の探索に集中できるようになります。
「この未来では、実際に何かをコンパイルするコンパイル自体は必要なくなるかもしれませんが、プログラムを理解し検証するためのコンパイラインフラは依然として必要になるでしょう。」
— Make this forward pass as fast as possible
最適化探索空間のナビゲート
カーネルの最適化は、トークンやツール呼び出しが大きなコストとなる探索および反復のプロセスとしてますます捉えられるようになっています。この探索を最適化するために、TogetherのTKCCのような新しいフレームワークは、カスタムのコストモデルを使用して、分析的な推定を用いて上位k個の並列処理構成をランク付けします。
階層的な実行セットアップでテストする前に、分析的にオプションを削減することで、これらのシステムは高コストなエージェンティックな最適化に投資する前に有望な構成を特定します。このアプローチは、探索プロセス中にエージェントが局所最適解に陥ることを防ぐのに役立ちます。
ヒューリスティックの削除によるランドスケープの平滑化
コンパイラ設計における大きな変化の一つは、探索空間を予測不可能にする暗黙的なセマンティクスやヒューリスティックを削除することです。例えば、OpenAIのTritonコンパイラは以前、パターンマッチングを使用してFused Multiply-Add(FMA)呼び出しを自動的に挿入していましたが、これはカーネルの数値結果を変化させる可能性がありました。
探索空間をよりスムーズにし、エージェントがナビゲートしやすくするために、これらの自動パスは削除され、ソースコード内での手動挿入に置き換えられています。これにより、コードのわずかな変更が、最終的な出力を変化させる予測不可能なコンパイラパスの連鎖を引き起こさないことが保証されます。
エージェンティックなツールにおけるトレードオフ
エージェントにより多くの情報を提供することは結果を改善する可能性がありますが、大きなオーバーヘッドを伴います。研究では、研究やロギングのために人間が設計したツールを提供することがスループットを妨げる可能性があることが示されており、エージェントのツール呼び出しの最大43%が単にシステムを理解しようとするために費やされる可能性があります。
HN Digestによる図(ianbarber.blogの報告数値に基づく。数値はソースの記載通り)
さらに、「このフォワードパスを可能な限り速くする」という単純なプロンプトが、一部の専門家が書いた戦略よりも優れた性能を示すことが示されています。これは、最も効果的な進むべき道は、エージェントの探索を厳格で定義済みのパスで導こうとするのではなく、検証と分析のための適切なツールを提供することであることを示唆しています。