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