评分方法

在确定如何对评估工具中的候选代码条目进行评分、标准化和惩罚时,请应用以下架构原则。

直接最大限度地实现目标

AlphaEvolve 专门执行最大化搜索,将每个优化目标都视为爬山任务。如需最大限度地减少延迟时间 或错误率等指标,您必须对最终计算值取反: score = -latency_ms # AE maximizes -> minimizes latency

保持严格的函数单调性

确保您仅实现单调评分函数。返回的数值分数必须随着候选解决方案的改进而持续增加。 纳入非单调分数会降低搜索性能,并会在优化路径中引入逻辑不一致性。

提供详细的精细指标

详细的分数可直接提高整体搜索质量。即使在针对单个核心业务目标进行优化时,纳入次要指标或代理指标也有助于 AlphaEvolve 更有效地浏览复杂的搜索空间。将各个子分数作为结构化数据分析传递回系统,以便 LLM 可以明确推理不同代之间的性能权衡。

奖励部分成功,而不是稀疏的结果

奖励部分成功,而不是完全依赖于最终结果或二元结果。始终优先选择密集评分信号,而不是稀疏评分信号。

二元目标或低分辨率目标(例如,跟踪基于锦标赛的游戏问题中赢得的比赛)会产生大量性能平台期,导致多个候选者并列。此行为会阻止 AlphaEvolve 区分近乎成功的解决方案和糟糕的解决方案,从而导致父级选择循环停滞。

如需保持搜索梯度方向,请执行以下操作:

  • 添加精细的子信号:衡量实现最终目标的增量进度(例如,比赛中获得的个人分数),以便 AlphaEvolve 对其他并列的候选者进行排名,并爬升到有希望的解决方案空间。

  • 仔细调整对齐方式和权重:确保子信号与真实目标单调对齐,并且权重安全地低于真实目标。 如果权重设置不当,AlphaEvolve 将以牺牲实际目标为代价来优化代理指标(导致奖励黑客攻击)。

例如,使用分数作为逻辑平局决胜因素来构建标量目标函数:use score = matches_won + w * (points_scored / points_possible)

将权重约束配置为 w < 1,以便额外的最终胜利 始终优于任何比赛内积分累积,并将子信号 严格视为平局决胜因素。

从单个目标开始

不妨考虑从单个目标函数开始实现。虽然数据库原生完全支持使用全面的 Pareto 前沿跟踪进行多目标优化,其中 MAP-Elites 会跟踪每个指标的最佳程序,并且系统会维护所有指标的运行 Pareto 前沿,但在初始部署期间,单个标量目标在推理和调试方面要简单得多。如果您的问题需要多个目标,您可以将它们合并为单个加权标量,也可以从一开始就利用多指标跟踪工具。

先重新缩放和标准化,然后再合并

在指标之间应用严格的缩放平衡,以避免优化偏差:

  • 跨范围重新缩放:先将指标标准化为可比较的范围,然后再合并。如果未进行显式重新缩放,将有界分数(范围从 01)和无界分数(范围从 0infinity)合并会导致无界指标在适应度格局中占据主导地位。

  • 优先选择加法结构,而不是乘法组合:乘法目标可能会对分母的微小变化变得过于敏感,从而影响搜索准确性和稳定性。改为实现加法加权和:w1*A - w2*L - w3*M。此格式允许根据每个性能参数进行直接权重调整。

  • 相对于初始值进行标准化:为防止缩放差异影响搜索路径,请将每个指标除以其各自的初始基准值,以便在应用权重并合并之前,所有指标都以 1.0 的基准值开始。

放大最小的数值差异

较小的数值分数差异可能无法为底层 LLM 提供有用的优化信号。如果一个强大的候选者的分数为 1e-7,而一个较弱的候选者的分数为 1e-8,那么 LLM 在审核上下文时可能无法有意义地区分它们。将最终分数重新缩放到明显的, 人类可读的范围(例如 0100),以便增量代码改进 在生成提示中以数值形式显现出来。