報酬の不正取得の防止

報酬の不正取得には、さまざまなリスクが伴います。リスクと対応する軽減戦略については、以下をご覧ください。

リスク 1:

貪欲な報酬ハッキング。Obj = w1*S1 + w2*S2 + w3*S3 の場合、AlphaEvolve は S2 を検出して増加させ、S1 と S3 を無視して S2 に完全に集中する可能性があります。

緩和策:

サブスコアの重みを減らします。重みを調整するには、2 ~ 3 回の試行が必要になる場合があります。いくつかのスコアリング結果の予備的なベースライン シミュレーションが役立ちます。

リスク 2:

制約ペナルティを無視します。ソフト制約がペナルティ (Obj = Score - w*Penalty) の場合、AlphaEvolve は制約を無視すると Obj が高くなることを検出する可能性があります。

緩和策:

ペナルティの重みを大幅に増やします。動作が続く場合は、「制約 X に違反するソリューションはスコアに関係なく無効です」などの明示的な指示を問題の説明に追加します。

リスク 3:

評価関数の悪用。AlphaEvolve は、評価ツールが人為的に高いスコアを返す原因となる入力(浮動小数点のエッジケース、テストデータの漏洩)を見つけることがあります。

緩和策:

固定されたランダム シードによる決定論的評価。テスト後にホールドアウト データで勝者を検証します。

報酬の不正使用を防ぐには、次の一般的な手法を実装します。

  • 禁止されているプリミティブ(sys、os、inspect、eval、exec、getattr、setattr)の AST チェックを行い、見つかった場合は None を返します。

  • EVOLVE-BLOCK の外側のコードが変更されていないことを確認します(テキストの差分または AST)。

  • 同じ入力で進化した関数を 2 回実行し、同じ出力であることを確認します(ランダム性ハッキングを検出します)。

  • 評価時間を確認します。マイクロ秒単位で終了する場合は、回答がハードコードされている可能性があります。

  • スコアリング ロジックを LLM に認識されない別のファイルに配置します。