☰
ASI-Evolve只用17轮逼近SOTA:圆装箱Demo逐轮进化过程完整复盘
2026/10/27 22:49:56 网站建设 项目流程

【免费下载链接】ASI-Evolve

项目地址:https://gitcode.com/gh_mirrors/as/ASI-Evolve
点击查看免费下载

ASI-Evolve 是一个通用 AI 自主研究框架,它能像研究员一样"读文献 → 提假设 → 跑实验 → 复盘总结",并把这个循环自主重复下去。它自带的圆装箱(Circle Packing)Demo 任务很简单:在单位正方形内摆放 26 个圆,让所有圆的半径之和最大。这个基准的 SOTA 参考值是 AlphaEvolve 给出的2.635,而 ASI-Evolve 最快只需17 轮进化就能逼近这一成绩。本文将完整复盘这轮进化的任务设定、运行机制和逐阶段演化过程。

一、ASI-Evolve 的核心进化循环:四个动作不断重复

ASI-Evolve 的工作方式可以概括为一个四步循环,每一轮都执行一次:

步骤动作通俗解释
1️⃣ LEARN检索历史实验与领域知识"翻翻以前的笔记和论文"
2️⃣ DESIGN提出下一个候选程序"设计新方案"
3️⃣ EXPERIMENT运行并采集结构化指标"跑实验拿数据"
4️⃣ ANALYZE把结果沉淀为可复用教训"写复盘报告"

这个循环由三个 Agent 协作驱动,源码位于 pipeline/ 目录:

  • Researcher(pipeline/researcher/):读取实验数据库和认知库,提出下一个候选程序
  • Engineer(pipeline/engineer/):执行候选代码,收集结构化指标
  • Analyzer(pipeline/analyzer/):把结果蒸馏成可迁移的教训,供后续轮次使用

还有两套"记忆系统"防止进化原地打转:

  • Cognition Store(认知库,cognition/cognition.py):预先注入领域知识、论文结论和启发式规则,AI 不从零开始
  • Experiment Database(实验库,database/database.py):记录每一次尝试的动机、代码、结果和分析,父代选择支持 UCB1、贪心、随机和 Island 岛屿采样

二、任务设定:圆装箱 Demo 是怎么搭起来的

圆装箱 Demo 位于 experiments/circle_packing_demo/,一个目录包含运行所需的全部文件:

circle_packing_demo/ |-- input.md ← 任务描述(问题 + 目标分数 2.635) |-- initial_program ← 初始基线程序 |-- evaluator.py ← 评测器:跑程序、校验合法性、打分 |-- eval.sh ← 每轮调用的评测入口脚本 |-- init_cognition.py ← 注入领域知识的"认知种子" |-- config.yaml ← 实验配置 `-- prompts/ ← Researcher / Analyzer 的提示词模板

几个关键设计:

  1. 目标明确:任务描述 input.md 直接写明 n=26 时 AlphaEvolve 的参考值2.635,让 AI 始终知道"终点在哪"。
  2. 评测器即裁判:evaluator.py 会在独立子进程中运行候选程序(带超时保护),逐一校验"圆不出界、两圆不相交",合法则按半径之和打分,非法直接记 0 分。
  3. 认知种子提前打:init_cognition.py 预置了约 10 条领域知识,包括"六边形密排密度 π/(2√3)≈0.9069""边界效应:大圆放角落""用 SLSQP 多起点优化""differential_evolution 突破平台期"等——相当于让 AI 带着"教材"开工。

💡 这套"任务描述 + 评测器 + 认知种子"的三件套,就是把你自己的问题接入 ASI-Evolve 的全部成本。

三、快速运行:三步启动圆装箱进化实验

在仓库根目录执行(仓库地址:https://gitcode.com/gh_mirrors/as/ASI-Evolve ):

git clone https://gitcode.com/gh_mirrors/as/ASI-Evolve cd ASI-Evolve && pip install -r requirements.txt # 1. 初始化认知库 python experiments/circle_packing_demo/init_cognition.py # 2. 运行进化(--eval-script 需传绝对路径) python main.py \ --experiment circle_packing_demo \ --steps 10 \ --sample-n 3 \ --eval-script /绝对路径/experiments/circle_packing_demo/eval.sh

注意 config.yaml 中有两个与进化质量强相关的设置:

  • sample_n: 3:每轮给 Researcher 展示 3 个历史节点作为参考
  • sampling.algorithm: "island":使用 MAP-Elites 风格的岛屿采样,按complexity(代码复杂度)和diversity(结构多样性)两个维度分箱,兼顾"挖深"和"探索",避免所有轮次都围着同一个局部最优打转

四、逐轮进化复盘:从同心圆基线到 17 轮逼近 SOTA

仓库在 experiments/best/circle_packing/ 目录保存了消融运行中的高分程序,配合代码注释里的阶段痕迹(如v1、Refine、EvoRefiner等命名),可以完整还原出这条进化轨迹。大致可分为四个阶段:

阶段 1:几何基线 → 优化器入场(前几轮)

初始程序 initial_program 用的是一个朴素的同心圆环布局:中心 1 个大圆 + 内环 8 个 + 外环 16 个,再用"距离边界取最小值 + 重叠时等比缩放"来硬算半径。它保证合法,但分数离 2.635 相去甚远。

前几轮的进化很快找到了正确方向:放弃硬编码布局,改用"先定圆心、再算最大合法半径"的构造式思路。这正是认知种子里"多起点 + 约束优化"知识的直接落地。

阶段 2:多起点局部优化(中段轮次)

代表性产物是 code_ucb17,其结构是:

  • 多种几何种子:六边形密排式、四角加强式、贪心最远插入式 + 抖动变体,共 3~5 个起点
  • 解析式最大半径:固定圆心时,半径上限 = min(到四壁距离, 到最近邻圆距离的一半) 减去 epsilon,无需迭代即可算出
  • 逐种子 L-BFGS-B 局部精修圆心,保留最优者
  • differential_evolution 全局搜索(种群以最优解扰动初始化),逃离局部最优
  • SLSQP 联合精修圆心 + 半径,带显式不等式约束,最后做合法性修复

到第 17 轮前后,这一路线已逼近 SOTA 水平——也就是 README 所说"最快 17 轮达到 SOTA 级结果"的由来。

阶段 3:LP 内环,把"算半径"交给线性规划(中后段)

中段出现了一次关键的结构升级:固定圆心时,"求最大合法半径和"本身就是一个线性规划问题(r_i + r_j ≤ d_ij)。code_map79 与 code_map147 都采用了"双层求解":

  • 内层:用scipy.optimize.linprog(HiGHS 后端)精确求解固定圆心下的最优半径——比"最近邻一半"的解析近似更优,因为它考虑了全部成对约束
  • 外层:用 differential_evolution 搜索圆心
  • 收尾:SLSQP 联合精修 + 时间预算控制(time_budget参数),保证每轮评测不超时

这体现了 Analyzer 的复盘价值:早期"解析半径略保守"的教训被显式写入后续节点,Researcher 据此改用了更精确的 LP 内环。

阶段 4:高精度收尾(后期轮次)

code_map286 把这套管线打磨到极致:LP 容差细化到 1e-9、SLSQP 的maxiter拉到 4000、ftol压到 1e-12,并保留"最终 LP 挤水(squeeze)"步骤——在最优圆心下再榨出最后一点半径。后期轮次的改动越来越小,分数提升越来越微,这正是进化收敛的典型特征。

五、为什么 ASI-Evolve 能这么快逼近 SOTA?

复盘整个进化过程,有四个因素值得借鉴:

  1. 带着知识开工:认知库中的"六边形密排、SLSQP 多起点、DE 突破平台期"等条目,让第一轮就站在成熟方法论的肩膀上,而不是盲试。提示词模板 researcher.jinja2 还会把几何洞察(密排密度、边界效应)直接写进系统提示。
  2. 每轮都留"证据链":Analyzer 按 analyzer.jinja2 的要求输出"分数对比、哪些选择有效、下一步具体改什么、与参考节点逐项对比",教训以文本形式进入数据库,被后续轮次检索复用。
  3. 岛屿采样防止近亲繁殖:island 算法按复杂度/多样性分箱(database/algorithms/island.py),保证"短代码"和"长代码"、"相似结构"和"全新结构"的候选都有机会被选为父代。
  4. 评测器零容忍:越界或重叠直接 0 分,进化压力全部集中在"合法前提下的半径和",分数曲线单调可比。

六、把这套方法迁移到你自己的任务

如果你有一个"代码写得更好 = 结果更好"的问题(调度策略、启发式算法、流水线调参),只需准备三样东西,就能复用这套流程:

  1. 一个input.md式的问题描述(含明确的优化目标和参考基准)
  2. 一个evaluator.py+eval.sh式评测器(输入程序路径,输出结构化分数)
  3. 一份init_cognition.py式领域知识种子

完整的仓库结构见 README.md,核心调度逻辑在 pipeline/main.py(支持断点续跑、4 路并行 worker),轻量化试用可以先装 skills/evolve/ 下的 Evolve Agent Skill。

总结

ASI-Evolve 的圆装箱 Demo 用一次真实的进化过程演示了它的核心主张:给 AI 一个可评测的问题和一份领域知识,它就会自己完成"假设—实验—复盘"的科研闭环。从同心圆基线到六边形密排,从解析半径到 LP 内环,再到高精度收尾,17 轮内逼近 SOTA 的每一步都有据可查、可复现。这也意味着,你完全可以用同样的方式,让它去攻你自己的"硬问题"。

【免费下载链接】ASI-Evolve

项目地址:https://gitcode.com/gh_mirrors/as/ASI-Evolve
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询