Google 已在 Gemini Enterprise Agent Platform 上正式提供 AlphaEvolve,将 DeepMind 的研究项目转化为面向企业的进化式代码优化服务。它的关键设计不是简单地“让模型重写代码”,而是反复生成候选实现,再由客户基础设施中的评估器测量正确性和性能,据此筛选并继续迭代。
这种方法已经出现明确的业务结果:Klarna 使用它将机器学习训练吞吐量提升了一倍。不过,这项技术有一个不能回避的前提:目标必须能转换成稳定、可重复、可比较的评估函数。
优化的核心不是提示词,而是评估函数
可以把进化式代码优化理解为一个受约束的搜索循环:
- 根据现有实现生成若干候选版本。
- 在客户环境中运行测试、基准或仿真。
- 把结果压缩成可排序的适应度分数。
- 保留表现较好的候选,继续变异和评估。
因此,真正决定优化方向的是评估器。若评分函数只奖励运行速度,系统可能找到一个很快但不完整的实现;若测试样本可预测,候选代码甚至可能通过针对样本的特殊处理“刷分”。
一个可用于生产优化的评估函数通常至少覆盖四类信号:
- 正确性:单元测试、属性测试、数值误差或协议一致性。
- 性能:吞吐量、P95 延迟、CPU 时间、GPU 利用率或内存峰值。
- 约束:禁止调用的 API、最大二进制体积、依赖许可和资源上限。
- 稳定性:多次运行的中位数、方差、超时率和异常退出次数。
这也解释了为什么 AlphaEvolve 更适合训练算子、调度策略、编译优化和算法内核,而不天然适合“让业务代码更优雅”这类无法稳定量化的目标。
客户端评估器改变了安全边界
AlphaEvolve 的评估器运行在客户端,因此代码不需要离开客户自己的基础设施。这对包含专有算法、训练逻辑或内部数据处理规则的项目很重要:企业可以在本地执行候选代码,并只让优化循环使用评估结果。
但“代码不出基础设施”并不等于没有安全风险。候选程序仍然属于不可信代码,应放入隔离环境运行。至少需要限制:
- 文件系统读写范围;
- 网络访问;
- CPU、内存和 GPU 配额;
- 单次评估的超时时间;
- 云凭据、数据集和生产服务访问权限。
实践中可以使用容器、短生命周期虚拟机或受限的 Kubernetes Job 承载评估器。测试数据也应与候选代码隔离,避免实现通过读取测试答案获得虚假高分。
可以这样实践:先构造一个本地评估器
下面不是 AlphaEvolve 的官方接口,而是一个可以直接运行的最小评估器,用来验证自己的任务是否适合进化式优化。假设候选代码实现 sum_squares(values),评估器先检查结果,再测量运行时间。
在同一目录创建 candidate.py:
from collections.abc import Iterable
def sum_squares(values: Iterable[int]) -> int:
return sum(value * value for value in values)
再创建 evaluator.py:
import importlib
import json
import random
import statistics
import time
import candidate
def reference(values: list[int]) -> int:
total = 0
for value in values:
total += value * value
return total
def evaluate() -> dict[str, object]:
importlib.reload(candidate)
rng = random.Random(2025)
test_cases = [
[],
[0],
[-3, 4, 10],
*[[rng.randint(-10_000, 10_000) for _ in range(size)]
for size in (1, 7, 128, 4096)],
]
for values in test_cases:
expected = reference(values)
actual = candidate.sum_squares(values)
if actual != expected:
return {
"valid": False,
"score": 0.0,
"reason": f"expected {expected}, got {actual}",
}
benchmark_input = [rng.randint(-1000, 1000) for _ in range(200_000)]
durations = []
for _ in range(7):
started = time.perf_counter()
candidate.sum_squares(benchmark_input)
durations.append(time.perf_counter() - started)
median_seconds = statistics.median(durations)
return {
"valid": True,
"score": 1.0 / median_seconds,
"median_seconds": median_seconds,
}
if __name__ == "__main__":
print(json.dumps(evaluate(), indent=2))
运行评估:
python evaluator.py
输出中的 score 越高,代表候选实现越快。随后可以让代码生成系统只修改 candidate.py,而评估器和隐藏测试保持只读。
进入真实项目后,不要直接用一次耗时的倒数作为最终分数。更稳妥的组合方式是:
valid = correctness_passed and memory_mb <= 4096 and timeout_rate == 0
score = throughput / (1 + 0.2 * p95_latency_ms + 0.01 * memory_mb)
其中 valid 是硬门槛,避免性能分数掩盖错误;score 才用于比较通过门槛的候选版本。权重需要根据业务成本调整,并通过历史基准验证。
从窄问题开始接入
AlphaEvolve 的通用可用性意味着企业可以把进化式优化纳入正式工程流程,但不应一开始就把整个代码库交给搜索系统。更合适的落点是边界清晰、测试充分、运行成本可控的热点模块。
接入前可以检查以下条件:
- 是否存在单条命令即可完成的确定性评估流程;
- 正确性测试能否覆盖边界条件并防止针对样本作弊;
- 性能指标是否稳定到足以区分候选实现;
- 每次评估能否在隔离环境中完成;
- 优化结果是否仍会经过代码审查、回归测试和灰度发布;
- 搜索消耗的计算资源是否低于预期收益。
Klarna 的吞吐量提升说明这种模式可能产生显著收益,但它不是适用于所有代码的自动加速按钮。对多数团队而言,最重要的准备工作不是编写更复杂的提示词,而是把“什么叫更好”写成一个可信、可重复执行的程序。