奖励破解存在许多风险。如需了解风险和相应的缓解策略,请参阅下文。
风险 1:
贪婪奖励破解。如果 Obj = w1*S1 + w2*S2 + w3*S3,AlphaEvolve 可能会发现 S2 可以增加,并完全专注于 S2,而忽略 S1 和 S3。
缓解措施:
降低子得分的权重。可能需要进行 2-3 次试运行来校准权重。对一些得分结果进行初步基准模拟会有所帮助。
风险 2:
忽略约束条件惩罚。如果软约束条件是惩罚
(Obj = Score - w*Penalty),AlphaEvolve 可能会发现忽略约束条件
会产生更高的 Obj。
缓解措施:
大幅增加惩罚权重。如果行为仍然存在,请在问题说明中添加明确的说明,例如“无论得分如何,违反约束条件 X 的解决方案均无效”。
风险 3:
利用评估函数。AlphaEvolve 可能会找到导致评估器返回人为高分(浮点边缘情况、测试数据泄露)的输入。
缓解措施:
使用固定的随机种子进行确定性评估。在实验结束后,根据预留数据验证获胜者。
为防止奖励破解,请实现以下通用技术:
使用 AST 检查禁止使用的基元(sys、os、inspect、eval、exec、getattr、setattr),如果找到,则返回
None。验证
EVOLVE-BLOCK之外的代码是否保持不变(文本差异或 AST)。使用相同的输入运行演变函数两次,并验证输出是否相同(捕获随机性破解)。
检查评估时间。如果评估在几微秒内完成,则可能是硬编码了答案。
将评分逻辑放在 LLM 不可见的单独文件中。