优化目标表示 AlphaEvolve 在每一代中最大化的单个数字。在编写任何评估器代码之前,请先回答以下三个问题:
此数字表示什么值?
系统如何计算此数字?
计算在哪里运行?
AlphaEvolve 严格要求对每个候选解决方案进行自动化的程序化目标计算,且无需人工干预。这种自动化操作使问题适合 AlphaEvolve。如果必须由人工手动判断解决方案的质量,AlphaEvolve 将无法对其进行搜索。
请考虑以下因素,以估算生成的候选解决方案在不同优化目标和验证约束方面的效果:
- 是否可以直接使用业务或产品逻辑计算优化目标,而无需进行实证衡量?
- 是否可以通过对生成的解决方案的代码运行性能和负载测试来直接衡量优化目标?
- 是否可以使用已建立的确定性替代函数和可靠的模拟方法来估算优化目标?
- 是否可以通过设计自定义替代函数(例如预测模型或其他非确定性估算器)来估算优化目标,该函数需要根据实证观察进行调整,并根据样本外数据进行验证?
量化目标的核心步骤
请遵循结构化方法,确保 AlphaEvolve 具有可靠的自动化反馈环路来指导其搜索。完成以下步骤,以建立指标、定义其衡量方式并确定执行位置。
1. 将目标表示为单个分数,该分数会随着解决方案的改进而增加
将核心优化指标配置为与实际性能提升呈线性或单调变化,以便搜索路径具有清晰的方向梯度。
标量最大化:AlphaEvolve 始终最大化一个标量值。将您关心的任何内容转换为单个数字,数字越大越好。如需最大限度地减少延迟时间、费用或错误,请对其取反:
score = -latency_ms单调性:分数必须是单调的,并且必须在解决方案真正改进时上升。分数如果变化不一致,搜索将无法找到上升的方向。
确定性执行:分数由评估器计算,而不是由 LLM 或人工计算。以确定性方式计算分数,以便同一候选方案始终获得相同的分数。
针对主观目标进行联合分析:如果您无法编写评分公式,但可以通过肉眼比较两个解决方案,请使用联合分析构建一个公式。生成成对的候选输出,让领域专家在每对输出中选择较好的一个,对这些选择进行逻辑回归,然后将拟合的模型用作指标。这会将主观判断转化为确定性的可微分数。请勿使用原始 LLM 评分标准作为实时分数,因为其速度慢、噪声大且容易被奖励黑客攻击;请先将其提炼为固定函数。
2. 选择分数的计算方式
生成数字的方式取决于您要衡量的对象。从表格中选择与您的目标相符的方法。几乎每个实际部署都使用这四种方法之一,许多部署会结合使用两种方法:一种是低成本的方法来驱动搜索,另一种是高成本的方法来确认获胜者。
| 衡量方法 | 在目标为…时使用 | 分数的生成方式 | 运行所需的内容 |
|---|---|---|---|
| 直接计算 | 您可以使用业务或产品逻辑从候选方案的输出中以闭合形式计算出的数量 | 评估器运行候选方案并应用公式(总和、比率、计数、费用) | 控制器的自有流程 - 无需额外基础架构 |
| 性能或负载测试 | 候选代码本身的运行时、吞吐量或内存 | 在代表性硬件上运行候选方案并对其进行衡量;首先根据正确性进行门控 | 目标硬件(GPU 或 TPU 或 CPU);预热和 N 中取优,以减少计时噪声 |
| 确定性替代 / 模拟 | 直接衡量成本高昂或噪声大,但存在可靠的代理或真实条件的重放 | 计算确定性代理,或重放固定的种子运营场景 | 任何环境;使用固定种子完全可重现 |
| 样本外验证 | 候选方案生成的模型或数据管道的质量 | 训练/拟合候选方案,然后根据预留或新生成的数据对其进行评分 | 您的训练/评估堆栈;严格的训练与验证拆分;根据预留集重新验证获胜者 |
如需了解详情,请参阅博客上的 AlphaEvolve 公告 Google Cloud 。
如果这些方法都无法自动生成数字,则该问题尚未准备好使用 AlphaEvolve。那么,核心任务就是构建一个可以生成数字的替代方案或模拟。
3. 处理多个目标和约束
实际目标通常会混合多种考虑因素。请使用以下两种方法之一来处理这些目标:
标量混合(最简单 - 建议从这里开始):将每个指标重新缩放至可比较的范围,对要最小化的任何指标取反,然后将它们相加: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),维护跨指标的 Pareto 前沿,并跨不同指标多样化地对父项进行抽样。如果启用了抽样,它还可以直接从 Pareto 前沿提取父项。单个标题分数仍然驱动着报告的山峰攀登,但每个返回的指标都会影响搜索。
指标数量保持在 3-5 个:如果指标过多,Pareto 支配会退化,几乎每个程序在某些方面都是非支配的,搜索会漫无目的。超出该阈值的指标应进行汇总或删除。
隔离正确性和可行性:将正确性作为硬门控,而不是奖励函数的一部分。无论候选方案的速度有多快或成本有多低,如果错误或不可行,都会获得失败分数。这是防止代理利用您的指标的主要防御措施。
约束优化:将一个目标作为约束,优化另一个目标,并在违反约束时应用惩罚。在多个约束级别运行此工作流会描绘出 Pareto 前沿。
4. 确定评估器的运行位置
AlphaEvolve 绝不会直接运行您的评估器。它会提出候选程序并接收分数;您负责托管和运行计算分数的代码。环境完全由您选择,无法在其中运行的候选方案 Google Cloud 不会成为障碍。您可以在可以衡量目标的位置运行评估器,然后提交分数。
为确保高效且安全的部署,您必须将计算基础架构与您的特定衡量策略保持一致,同时遵守通用执行限制。请使用以下准则选择执行环境,并了解适用于所有设置的核心运营边界。
将执行环境与衡量方法相匹配
直接计算或替代:控制器的自有流程,或单个 Cloud Run 容器。
性能或负载测试:目标硬件,例如 GKE 上的 GPU 或 TPU 节点、您自己的本地或自定义硬件,或第三方或 ISV 工具(例如 EDA 或 Verilog 模拟器)。
样本外验证或繁重作业:您的训练堆栈分布在 Cloud Run 或 GKE 中,或使用 Cluster Toolkit 卸载到 Google Cloud 批处理,以处理大型 HPC 或 加速器工作负载。
无论环境如何,都适用两个限制
尽量将每次评估的时间控制在 10 分钟左右或更短,以便进化环路持续运行。对于成本高昂的目标,请使用评估级联 - 检查每个候选方案,仅对有希望的候选方案运行完整评估。
您拥有评估器的网络、安全和访问权限控制。 AlphaEvolve 不会部署或管理评估器,无论是在本地 Google Cloud 还是其他任何位置。
确定指标、计算方式和运行位置后, 请参阅评估器实现模式 ,了解如何构建评估器。