エバリュエータの実装パターン

AlphaEvolve 評価ハーネスの評価指標を設計する際は、次の 3 つの異なるテスト階層を確立します。

階層 1: ソリューション検証テスト

これらのテストでは、完全な実行の前に、基本的なコード実行の安全性とポリシー遵守を確認します。

  • 実行の安全性: コードが実行されるかどうかを確認します。これには、構文の確認、コンパイル時間の確認、静的分析の実行、インフラストラクチャの互換性の確認が含まれます。

  • 実行ポリシー: コードが機能する場合でも実行すべきかどうかを判断します。これには、リンティング、一般的なコード品質チェック、InfoSec レビュー、リスクとコンプライアンスの検証、API サプライ チェーンのチェックが含まれます。

考慮事項:

  • 検証に失敗した場合は、-10000-100000 などの高い負のスコアを返します。AlphaEvolve はこれらのプログラムを無視します。

  • デバッグ用に失敗の種類とログを含めます。AlphaEvolve はこのメタデータを検索シグナルとして使用しませんが、失敗モードの事後分析に役立ちます。

階層 2: ソリューション検証テスト

これらのテストでは、ユニットテストと機能テストを使用して、アルゴリズムの正確性と制約の遵守を確認します。

  • 機能の正確性: ユニットテストと機能テストを使用して、コードが正しく動作するかどうかを確認します。

  • 制約の遵守: ソリューションの実現可能性または制約の充足度を確認します。

  • 報酬ハッキングの軽減: 報酬ハッキングを防ぐため、検証スコアを適合度関数に負のペナルティとして適用します。 スコアをアサートすると、-10000 または -100000 効果的なペナルティになります。

考慮事項:

  • 合格したテストの数または割合を返します。このアプローチでは、グラデーション シグナルが提供されます。5 つのテストのうち 4 つに合格したプログラムは、5 つのうち 0 つに合格したプログラムよりも正しいと認識されます。

  • 検証はソフト制約の充足度として扱います。厳しいシステム制約の場合でも、実現可能な空間への近接度に基づいてソフト ペナルティとして表現することで、AlphaEvolve はバイナリの合格または不合格よりも実用的な検索シグナルを得ることができます。

階層 3: ソリューション評価テスト(パフォーマンステスト)

これらのテストでは、最適化ターゲットの種類に応じて、客観的なパフォーマンス指標を測定します。

  • 直接測定: 計測が可能な場合は、目標を直接トラッキングします。

  • 決定論的推定: 古典的なオペレーションズ リサーチ スタイルで目標を分析的に計算します。

  • サンプル外検証: 機械学習パイプラインの最適化やエージェント ハーネスのチューニングを含むユースケースでは、検証データセットに対してテストを行います。

  • シミュレーション ベースの推定: マルコフ連鎖モンテカルロ(MCMC)シミュレーション、ベイズ最適化タイプのプロキシ関数、その他のモデルベースのアプローチを使用します。

考慮事項:

  • 粒度の細かいスコアと集計スコアの両方を返します。

  • スコアの計算を LLM にオフロードしないでください。評価ハーネス内で決定論的に計算します。AlphaEvolve は、事前に計算されたこれらの集計パフォーマンス スコアに対してヒルクライムを行います。

  • 部分的なクレジットは、検索の収束を加速するグラデーション シグナルを提供します。たとえば、5 つのテストのうち 4 つに合格したプログラムは、None ではなく 0.8 のスコアを受け取る必要があります。None を返すと、AlphaEvolve はプログラムを完全に無視し、有用なフィードバックがなくなります。0.8 のスコアは、候補が正解に近く、最適化の可能性が高いことを示します。