评估器实现模式

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

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

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

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

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

考虑因素:

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

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

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

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

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

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

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

考虑因素:

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

  • 将验证视为软约束满足。即使是硬系统约束,如果将其表示为基于与可行空间接近程度的软惩罚,AlphaEvolve 也能获得比二进制通过或失败更具可操作性的搜索信号。

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

这些测试会根据优化目标的类型来衡量客观效果指标。

  • 直接衡量:在允许使用插桩的情况下,直接跟踪目标。

  • 确定性估计值:以分析方式计算目标,适用于经典运筹学风格。

  • 样本外验证:针对涉及机器学习流水线优化或代理框架调整的用例,根据验证数据集进行测试。

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

考虑因素:

  • 同时返回精细得分和汇总得分。

  • 不要将得分计算分流到 LLM;在评估器框架内确定性地计算得分。AlphaEvolve 会根据这些预先计算的汇总效果得分进行爬山。

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