algorithmicsuperintelligence/openevolve
Open-source implementation of AlphaEvolve
OpenEvolve – 进化式代码生成引擎
它是什么 – OpenEvolve 是一个 Python 库,在质量-多样性进化算法(带岛屿并行的 MAP-Elites)中,将大型语言模型(LLMs)用作变异/重组引擎。它能自动重写、优化或创造多种语言的代码(Python、Rust、R、Metal 着色器等),并使用用户提供的测试框架评估候选方案。该系统专为研究级可复现性而构建,可通过命令行、Docker 容器运行,或作为 Python 模块导入。
关键能力
- LLM 驱动的进化 – LLM 提出新的程序变体;框架处理提示、回退集成和产物反馈。
- MAP-Elites + 岛屿 – 在用户定义的特征维度(如速度、代码大小、复杂度)上维护多样化的种群,并并行运行多个岛屿以避免过早收敛。
- 确定性运行 – 固定种子(默认 42)使每次进化在不同机器上均可复现。
- 多目标 / 帕累托优化 – 自动发现性能、内存和其他指标之间的权衡。
- 即插即用的 LLM 后端 – 通过统一的
OPENAI_API_KEY风格配置,支持 OpenAI、Google Gemini、Claude Code CLI、本地 Ollama/vLLM 服务器、OptiLLM 代理、Copilot CLI 或 Codex 应用服务器。 - 可扩展钩子 – 用户可以提供自定义岛屿选择器、种群策略回调(接纳、替换、归档、迁移等)来定制进化动态。
典型工作流程
- 提供初始程序(文件或字符串)和评估器,返回数值分数或指标字典。
- 配置
config.yaml中的 LLM 提供者和进化参数(种群大小、岛屿数量、特征维度等)。 - 运行
openevolve-run.py(命令行界面)或从 Python 调用run_evolution/evolve_function。 - 检查生成的
result.best_code和完整的 MAP-Elites 档案,以获取帕累托最优解。
示例(Python API)
from openevolve import run_evolution
result = run_evolution(
initial_program="""
def bubble_sort(arr):
for i in range(len(arr)):
for j in range(len(arr)-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
""",
evaluator=lambda path: {"score": benchmark_sort(path)},
iterations=50,
llm_config={"primary_model": "gemini-2.5-flash"},
)
print("进化后的算法:\n", result.best_code)
该调用运行一个小型进化循环,让 LLM 重写排序例程。经过 50 次迭代后,打印的代码通常是插入排序和快速排序的混合体,性能优于原始冒泡排序。
安装
- PyPI(推荐):
pip install openevolve - 开发:克隆仓库并执行
pip install -e "[dev]" - Docker:拉取
ghcr.io/algorithmicsuperintelligence/openevolve:latest并运行容器,挂载示例文件。
支持的平台 – Python 3.10+,适用于 macOS、Linux 和 Windows(注意 spawn 多进程要求)。GPU 特定示例(Metal 着色器)需要 Apple Silicon 硬件。
用例亮点
| 领域 | OpenEvolve 的作用 |
|---|---|
| 性能调优 | 发现硬件感知的内核优化(例如,Metal 注意力内核快 2.8 倍)。 |
| 算法发现 | 找到新颖的排序、圆形装箱或符号回归解决方案,达到或超过已发表的基准。 |
| 科学计算 | 自动化滤波器设计、方程发现和其他参数密集型任务。 |
| 竞赛编程 | 为经典竞赛问题生成多种解决策略。 |
| 多目标优化 | 在速度、内存和代码复杂度之间返回帕累托最优集。 |
成本模型 – 库本身免费;每次进化迭代会产生 LLM 提供者的令牌成本。README 中列出了 Gemini、OpenAI o3/o3-mini 和本地模型的典型每次迭代价格,以及降低成本的建议(更少的迭代、更便宜的模型、级联评估)。
许可证 – 项目根据仓库的 LICENSE 文件(README 中有链接)发布,该许可是允许免费使用和修改的开源许可证。
OpenEvolve 定位为研究级的自主代码发现平台,将进化算法与现代 LLM 相结合,以自动化优化和算法发明。
相关
- 项目
- 项目
- 项目
- 项目