報酬の不正取得には、さまざまなリスクが伴います。リスクと対応する軽減戦略については、以下をご覧ください。
リスク 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 に認識されない別のファイルに配置します。