AlphaEvolve:Gemini 驱动的算法设计 Agent

英文标题:AlphaEvolve: A Gemini-powered coding agent for designing advanced algorithms

发布平台:谷歌博客

发布日期:2025-04-14

作者:DeepMind

关键字: #DeepMind #AlphaEvolve #Agent #算法

文章类型:官方白皮书

品读时间:2025-05-20 10:40

1 文章萃取

1.1 核心观点

AlphaEvolve 是一个由 Gemini 模型驱动的可进化编程智能体,可用于通用算法的发现与优化;谷歌利用 AlphaEvolve 实现了数据中心的效率、芯片设计和人工智能训练流程改善;AlphaEvolve 还帮助设计了更快的矩阵乘法算法,并为开放数学问题找到了新的解决方案,显示出在许多领域应用的巨大潜力

1.2 综合评价

  • AlphaEvolve 的核心能力主要来自底座 LLMs,其方法上创新性较少
  • AlphaEvolve 的表现说明当前 LLMs 在算法等领域已具备极大的潜力

1.3 主观评分:⭐⭐⭐⭐

2 精读笔记

2.1 智能体架构

整体流程设计:

  1. 代码库 databse:包含优质的程序解决方案,有助于程序的迭代与优化
  2. 提示采样 prompt sampler:根据当前需要解决的详细信息与历史的解决方案,生成有助于 LLMs 改进方案的提示词;同时也可能定制提示词以满足特定需求
  3. 基于 llms 的方案生成:理解历史的解决方案,并提出新颖/多样化的改进意见;AlphaEvolve 主要借助Gemini 2.0 Flash(低延迟) 先进行广度搜素,再利用 Gemini 2.0 Pro(高性能)进行深度探索
  4. 评估器 evaluator:基于用于提供的评估函数对新生成的方案进行评估,基于 LLMs 给出反馈,比如程序的简洁性评估或可能的修改意见;用户可以根据方案的迭代逐步提供更复杂的测试用例集
  5. 对于新生成的程序解决方案,可以再添加到代码库 databse

其他补充说明:

  • 用户提供的评价函数一般包含一组标量的评价指标(优化目标是指标最大化);在某些复杂情况下,评价函数可能会包含进化搜索算法,或针对机器学习模型的训练和评估
  • AlphaEvolve 使用分布式异步管道实现,支持计算并发(比如评价函数);整个管道进行了特定优化,以在特定的总体计算预算内最大限度地提出和评估想法的数量

2.2 AlphaEvolve 示例

以有监督学习模型的改进为例,进行 AlphaEvolve 的说明

  • (a)用户提供的初始化文件,包含待改进代码块和评价函数;文件通过特殊标记 # EVOLVE-BLOCK-START# EVOLVE-BLOCK-END 来明确需要进行改进的代码块;这种方式便于代码的集成、减少了代码改动量,也方便多个代码块的同时改进
  • (b)为 LLMs 提供的提示,包含角色定义、旧版的代码块、当前的代码块、代码改进的逻辑规则(SEARCH/REPLACE 格式)、历史解决方案的示例、任务目标和输出约束
  • (c)为 LLMs 输出的示例,包含整体的修改意见描述和具体的代码改进点;apply_diff 函数会实现程序的修改,并交给评估器给出新版程序的评测结果

2.3 AlphaEvolve 成果

消融实验

  • (左)寻找低秩张量分解以加速矩阵乘法问题(右)寻找球堆积以改善吻数问题
  • 针对不同设置,AlphaEvolve 会设定不同的随机种子运行 3 次并得到描述偏差的阴影区间

其他成果

  • 矩阵乘法优化:实现了 4x4 矩阵乘法的 48 次乘法,之前已知的最优算法需要 49 次乘法
  • 定制搜索算法:针对 50+ 数学问题集合(涵盖分析学、组合学、数论和几何学等)进行最优对象/结构的搜索,最终在 75% 的情况下重现了最优解,在 20% 的情况下改进了最优解
  • 优化计算基础设施:发现启发式算法用于改进谷歌数据中新的调度,持续回收谷歌全球计算资源,平均回收率达0.7%;改进摩西训练所需的关键内核,实现 23%的内核优化和 1% 的 Gemini 训练加速;协助 TPU 硬件设计;直接优化编译器的生成代码,实现 32% 的内核优化和 15%的内核输入预处理/输出后处理加速

相关资源

往年同期文章