量化优化目标

优化目标表示 AlphaEvolve 在每一代中最大化的单个数字。在编写任何评估器代码之前,请先回答以下三个问题:

  1. 这个数字代表什么值?

  2. 系统如何计算该指标?

  3. 计算在哪里运行?

AlphaEvolve 严格要求对每个候选解决方案进行自动、程序化的目标计算,无需人工干预。这种自动化功能使该问题非常适合 AlphaEvolve。如果必须由人工判断解决方案的质量,AlphaEvolve 就无法对其进行搜索。

在根据不同的优化目标和验证限制条件估算生成的候选解决方案的效果时,请考虑以下事项:

  • 是否可以直接使用业务或产品逻辑计算优化目标,而无需进行经验测量?
  • 能否通过对生成的解决方案代码运行性能和负载测试,直接衡量优化目标?
  • 能否使用确定性代理函数、已建立的可靠模拟方法来估计优化目标?
  • 是否可以通过设计自定义代理函数(例如预测模型或其他非确定性估计器)来估计优化目标,该函数需要根据经验观察进行调整,并根据样本外数据进行验证?

量化目标的核心步骤

遵循结构化方法,确保 AlphaEvolve 拥有可靠的自动化反馈环来指导其搜索。完成以下步骤,以建立指标、定义指标的衡量方式以及确定执行位置。

1. 将目标表示为单个分数,该分数会随着解决方案的改进而提高

将核心优化指标配置为随实际性能提升而线性或单调地扩展,以便搜索路径具有清晰的方向梯度。

  • 标量最大化:AlphaEvolve 始终最大化一个标量值。将您关注的所有内容转换为一个数字,数字越大越好。为了最大限度地减少延迟时间、费用或错误,请将其求反:score = -latency_ms

  • 单调性:分数必须是单调的,只要解决方案真正变好,分数就必须上升。如果得分移动不一致,搜索将无法确定攀升方向。

  • 确定性执行:分数由评估器计算,绝不由 LLM 计算,也绝不由人工计算。以确定性方式计算,以便同一候选网络始终获得相同的分数。

  • 针对主观目标的联合分析:如果您无法编写评分公式,但可以通过肉眼比较两个解决方案,请使用联合分析构建一个。生成多对候选输出,让领域专家在每对输出中选择更好的一个,对这些选择进行逻辑回归拟合,并将拟合的模型用作指标。这会将主观判断转化为确定性的可微分分数。请勿将原始 LLM 评分标准用作实时评分,因为它速度慢、噪声大且容易被奖励黑客攻击;请先将其提炼为固定函数。

2. 选择得分的计算方式

如何生成该数字取决于您要衡量的内容。从表中选择与您的目标相匹配的方法。几乎每个实际部署都会使用这四种方法之一,许多部署会结合使用两种方法:一种是低成本方法,用于推动搜索;另一种是高成本方法,用于确认获胜者。

衡量方法 在以下情况下使用: 得分的计算方式 运行所需条件
直接计算 您可以使用业务或产品逻辑,根据候选模型的输出以封闭形式计算出的数量 评估器运行候选网络并应用公式(总和、比率、计数、费用) 控制器自己的进程 - 无需额外基础架构
性能或负载测试 候选代码本身的运行时、吞吐量或内存 在具有代表性的硬件上运行候选版本并进行测量;首先对正确性进行把关 目标硬件(GPU、TPU 或 CPU);预热和 Best-of-N 采样,以减少时间噪声
确定性代理/模拟 直接测量成本高昂或干扰因素多,但存在可靠的代理或真实条件的重现 计算确定性代理,或重放固定的、有种子的操作场景 任何环境;使用固定种子完全可重现
样本外验证 应聘者生成的模型或数据流水线的质量 训练/拟合候选模型,然后根据留出数据或新生成的数据对其进行评分 训练/评估堆栈;严格的训练与验证拆分;在留出集上重新验证胜出者

如需了解详情,请参阅 Google Cloud 博客上的 AlphaEvolve 公告。

如果这些方法都无法自动生成数字,则说明该问题尚不适合使用 AlphaEvolve。因此,核心任务是构建一个能够做到这一点的代理或模拟。

3. 处理多个目标和限制

实际目标通常会混合多个考量因素。请使用以下两种方法之一来处理这些问题:

  1. 评估器实现模式

  2. 多目标优化

标量混合(最简单,建议首先使用):将每个指标重新缩放到可比较的范围,对要最小化的指标取负值,然后将它们相加:score = w1*A - w2*L - w3*M。

优先使用加法和,而不是 A/(L⋅M) 等比率,因为后者在数值上不稳定。

返回一个包含命名分数的字典:让 AlphaEvolve 联合优化这些分数。评估器可以返回多个命名指标,而不是一个数字:

```JSON
{
  "scores": [
    {"metric": "accuracy", "score": 0.95},
    {"metric": "latency_ms", "score": -120.0}
  ]
}
```

对于每个指标,值越高越好,因此请对要最小化的指标取负值。这会触发真正的多目标搜索,而不仅仅是报告:种群数据库会保留每个指标的最佳程序 (MAP-Elites),维护跨指标的帕累托前沿,并跨不同指标对父代进行多样化采样。启用该采样后,它还可以直接从帕累托前沿中抽取父级。虽然报告的爬山算法仍由单个标题得分驱动,但返回的每个指标都会影响搜索。

  1. 保持 3-5 个指标:如果指标过多,帕累托支配关系会退化,几乎每个程序都会在某些方面处于非支配地位,导致搜索方向不明确。汇总或舍弃超出该阈值的指标。

  2. 隔离正确性和可行性:将正确性作为硬性门槛,而不是奖励函数的一部分。无论候选方案的速度有多快或成本有多低,只要它不正确或不可行,就会获得失败分数。这是防止智能体操纵指标的主要防御措施。

  3. 约束条件优化:将一个目标作为约束条件,并优化另一个目标,在违反约束条件时应用惩罚。在多个约束级别运行此工作流可描绘出帕累托前沿。

4. 确定评估器的运行位置

AlphaEvolve 绝不会直接运行您的评估器。它会提出候选程序并接收分数;您需要托管并运行计算分数的代码。环境完全由您选择,无法在Google Cloud 上运行的候选模型不会成为阻碍。您可以在任何可以衡量目标的地方运行评估器,并将得分提交回来。

为确保高效、安全地部署,您必须使计算基础设施与特定的衡量策略保持一致,同时遵守通用执行限制。请根据以下准则选择执行环境,并了解适用于所有设置的核心操作边界。

使执行环境与衡量方法相匹配

直接计算或代理:控制器自己的进程或单个 Cloud Run 容器。

性能或负载测试:目标硬件,例如 GKE 上的 GPU 或 TPU 节点、您自己的本地或自定义硬件,或第三方或 ISV 工具(例如 EDA 或 Verilog 模拟器)。

样本外验证或繁重作业:您的训练堆栈在 Cloud Run 或 GKE 中扇出,或使用 Cluster Toolkit 卸载到Google Cloud 批处理,以处理大型 HPC 或加速器工作负载。

无论环境如何,都适用以下两项限制

尽量将每次评估控制在 10 分钟以内,以便进化循环持续进行。对于成本高昂的目标,请使用评估级联来检查每个候选模型,仅对有希望的候选模型运行完整评估。

您拥有评估器的网络、安全和访问权限控制。AlphaEvolve 不会在 Google Cloud或任何其他位置部署或管理评估器。

确定指标、计算方式和运行位置后,请参阅评估器实现模式,了解如何构建评估器。