AlphaEvolve 的架构:演化搜索 + LLM 如何发现更优的矩阵算法
1969 年,Volker Strassen 发表了一种算法,使用比朴素方法更少的标量乘法来计算 4×4 矩阵。在 56 年的时间里,没有人做得更好。然后一个 AI 编程智能体重写了它——在生产环境中,部署在 Google 的全球基础设施上——并不是通过比人类数学家更聪明,而是通过运行一个循环:生成变体,评估它,保留有效的,重复。
这个循环才是重点。LLM 只是其中一个环节。其周围的架构才是让 AlphaEvolve 奏效的原因,理解这个架构能告诉你 AI 辅助工程正在走向何方。
纯 LLM 代码生成的局限性
让 LLM “编写一个更快的矩阵乘法算法”,它会产生一些看起来像模像样的东西。它甚至可能是正确的。但“正确”和“最优”是不同的标准,而 LLM 没有反馈机制来弥合这一差距。它生成一次,你检查它,对话结束。
进化搜索则面临相反的问题。经典的遗传算法可以找到优化问题的良好解,但它们在固定表示上运行。它们可以高效地变异整数或比特串,但在产生真正算法创新的那种结构化、语义化的代码重写方面却很吃力。
AlphaEvolve 的核心洞察在于,这两种弱点可以相互抵消。LLM 提供具有创造力、语义有意义的代码变异。进化框架提供反馈循环和种群多样性,让有前途的变异在多次迭代中生存并累积。
四组件循环
AlphaEvolve 运行一个包含四个组件的持续循环:
程序数据库。 AlphaEvolve 不仅仅跟踪迄今为止发现的单个最佳解,而是维护一个受进化计算中 MAP-Elites 算法启发的多元存档。程序被存储在“行为利基 (behavioral niches)”网格中——系统显式地保留那些以不同方式呈现趣味性的解,而不仅仅是那些在主要指标上得分最高的解。这防止了早熟收敛 (premature convergence),即进化搜索的经典失败模式。
提示词采样器。 在每次迭代中,系统从数据库中选择少量程序——通常是高性能程序和多样性代表的混合——并构建一个提示词,向 LLM 展示已经尝试过的内容。这为模型提供了上下文:这是当前最好的方法,这是你正在优化的目标,这是有待改进的地方。
LLM 集合。 两个 Gemini 变体并行运行:Gemini Flash 快速生成许多多样的建议,以深度换取吞吐量;Gemini Pro 生成的建议较少,但具有更深思熟虑的推理。关键细节是 LLM 输出的是 diffs(差异),而不是完整的重写。它对现有程序提出有针对性的编辑建议,这使得搜索效率 更高——模型是在建议增量改进,而不是每次都从头开始。
评估器。 每个提议的程序都会针对用户定义的 Python 评估函数自动执行,该函数返回标量指标。对于矩阵乘法问题,评估器检查标量运算的数量并验证数学正确性。通过评估的程序进入数据库;失败的程序则被丢弃。这种自动反馈是使循环变得可行的关键——如果没有它,人工审查将在几分钟内成为瓶颈。
该循环在许多并行工作节点上异步运行。没有中心化协调;数据库充当共享状态,工作节点不断地采样、生成、评估和更新。
评估器是设计约束
AlphaEvolve 中最重要的架构决策不是 LLM 的选择或进化选择策略,而是评估器。
评估器必须满足:
- 自动化:人工参与的评估无法扩展到所需的数千次迭代
- 快速:每个候选者需要数分钟才能完成的评估器会使搜索变得不切实际
- 全面:漏掉边缘情况的评估器会导致系统针对代理指标进行优化,从而产生在无法泛化的方面被“优化”的算法
这一约束精确地解释了 AlphaEvolve 的领域契合度。矩阵乘法具有清晰的可验证结构:统计运算次数,检查数学恒等式。数据中心调度可以根据模拟进行测量。硬件电路有形式化验证工具。几何中的接吻数问题 (kissing number problem) 具有精确的组合检查。
它也解释了这种方法的吃力之处。正确性验证成本昂贵的问题——或者“更好”意味着某种微妙且具有语境意义的东西——并 不适合这种架构。你无法通过这种方式进化出更好的 UI 组件,或者发现更具说服力的产品策略。搜索空间需要一个你可以计算的奖励信号。
AlphaEvolve 如何击败 FunSearch —— 以及发生了哪些变化
AlphaEvolve 有一个前身:FunSearch,由同一实验室于 2023 年发布。FunSearch 使用了相同的核心循环——LLM + 评估器 + 进化数据库——但它仅限于进化单个 Python 函数。它在组合数学公开问题上找到了新颖的解法,这确实令人印象深刻。
AlphaEvolve 在三个维度上进行了泛化:
- Scope(范围):从单个函数扩展到整个代码库。Diffs(差异)可以涉及多个文件、多个函数,甚至是多种语言。
- Optimization surface(优化空间):从单一指标扩展到对多个同时追踪的量进行多目标优化。
- Context richness(上下文丰富度):AlphaEvolve 不再使用极简提示,而是提供问题的自然语言描述、先前解决方案的示例以及来自评估器的结构化反馈——这为 LLM 提供了关于什么是好的变异的更丰富上下文。
这些扩展的结合使得 AlphaEvolve 能够应对 TPU 硬件电路设计和 FlashAttention 内核优化等问题,这些问题涉及大型代码库中复杂的相互依赖关系,而非孤立的数学函数。
