報酬ハッキングには、いくつかのリスクが伴います。リスクと対応する軽減戦略については、以下をご覧ください。
リスク 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 から見えない別のファイルに配置する。