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

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

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

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

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

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

考慮事項:

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

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

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

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

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

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

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

考慮事項:

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

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

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

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

  • 直接測定: 計測が可能な場合は、目標を直接追跡します。

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

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

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

考慮事項:

  • 詳細なスコアと集計スコアの両方を返します。

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

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