英文标题: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 智能体架构
整体流程设计:
- 代码库
databse
:包含优质的程序解决方案,有助于程序的迭代与优化 - 提示采样
prompt sampler
:根据当前需要解决的详细信息与历史的解决方案,生成有助于 LLMs 改进方案的提示词;同时也可能定制提示词以满足特定需求 - 基于
llms
的方案生成:理解历史的解决方案,并提出新颖/多样化的改进意见;AlphaEvolve 主要借助Gemini 2.0 Flash(低延迟) 先进行广度搜素,再利用 Gemini 2.0 Pro(高性能)进行深度探索 - 评估器
evaluator
:基于用于提供的评估函数对新生成的方案进行评估,基于 LLMs 给出反馈,比如程序的简洁性评估或可能的修改意见;用户可以根据方案的迭代逐步提供更复杂的测试用例集 - 对于新生成的程序解决方案,可以再添加到代码库
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%的内核输入预处理/输出后处理加速