评估器实现模式

为 AlphaEvolve 评估框架设计评估指标时,请建立以下三个不同的测试层级。

第 1 层级:解决方案验证测试

这些测试会在全面执行之前验证基本代码执行安全性和政策合规性。

  • 执行安全性:验证代码是否执行。这包括检查语法、检查编译时间、执行静态分析以及检查基础架构兼容性。

  • 执行政策:确定即使代码正常运行,是否也应执行。这包括 linting、一般代码质量检查、信息安全审核、风险和合规性验证以及 API 供应链检查。

注意事项:

  • 如果验证失败,则返回较高的负分,例如 -10000-100000。AlphaEvolve 会忽略这些程序。

  • 包含失败类型和日志以进行调试。虽然 AlphaEvolve 不会将此元数据用作搜索信号,但它对于事后分析失败模式很有用。

第 2 层级:解决方案验证测试

这些测试使用单元测试和功能测试来验证算法正确性和对约束的遵守情况。

  • 功能准确性:使用单元测试和功能测试验证代码是否正常运行。

  • 约束遵守情况:验证解决方案可行性或约束满足情况。

  • 奖励黑客攻击缓解:将验证分数作为适应度函数的负惩罚应用,以防止奖励黑客攻击。断言分数 -10000-100000 可作为有效的惩罚。

注意事项:

  • 返回通过的测试数量或百分比。此方法提供梯度信号;通过 5 项测试中的 4 项的程序被认为比通过 5 项测试中的 0 项的程序更接近正确。

  • 将验证视为软约束满足情况。即使对于硬系统约束,根据与可行空间的接近程度将其表示为软惩罚,也会为 AlphaEvolve 提供比二进制通过或失败更具可操作性的搜索信号。

第 3 层级:解决方案评估测试(性能测试)

这些测试根据优化目标类型衡量客观性能指标。

  • 直接衡量:在检测允许的情况下直接跟踪目标。

  • 确定性估算:针对经典运筹学风格分析计算目标。

  • 样本外验证:针对验证数据集进行测试,以用于涉及机器学习流水线优化或智能体 Harness 调优的用例。

  • 基于模拟的估算:使用马尔可夫链蒙特卡洛 (MCMC) 模拟、贝叶斯优化类型代理函数或其他基于模型的方法。

注意事项:

  • 返回细化分数和汇总分数。

  • 不要将分数计算卸载到 LLM;在评估器框架中确定性地计算分数。AlphaEvolve 会根据这些预先计算的汇总性能分数进行爬山。

  • 部分积分提供梯度信号,可加快搜索收敛。例如,通过 5 项测试中的 4 项的程序应获得 0.8 分,而不是 None。返回 None 会导致 AlphaEvolve 完全忽略该程序,从而消除有用的反馈。0.8 分表示候选程序接近正确,并且具有可行的优化潜力。