会自进化的 AI Agent:MLEvolve 如何自己发现算法 📅 2026/7/17 19:12:07 如果一个 AI Agent 能连续跑 12 小时实验它最缺的能力是什么不是再多写几段代码而是知道哪些路走过、哪些坑踩过、什么时候该换方向。一个自动科研 Agent 的真实瓶颈现在很多代码 Agent 看起来都很像读题、写代码、运行、报错、修复再运行。这个循环在小任务里够用。但一旦任务变成 Kaggle 风格的机器学习工程Machine Learning Engineering, MLE问题就变复杂了。一个真实的 MLE 任务不是“把 bug 修掉”这么简单。它要决定数据怎么处理、模型用什么、loss 怎么选、训练策略怎么调、要不要 ensemble、提交格式有没有问题还要在有限时间内不断试错。这时Agent 最大的问题不是不会写代码而是不会组织长期搜索。今天这篇MLEvolve: A Self-Evolving Framework for Automated Machine Learning Algorithm Discovery解决的正是这个问题。它把 LLM Agent 从“单次代码生成器”推进成一个带 搜索图、记忆 和 多种代码编辑模式 的自动 ML 工程系统。论文最醒目的结果是在 MLE-Bench 75 个任务上MLEvolve 用12 小时预算达到65.3% 平均 medal rate。官方 README 也把它标为 MLE-Bench 榜单第一。但这篇真正值得看的不是这个数字本身而是它背后的系统设计。它不是一棵搜索树而是一张会串门的搜索图传统 MCTS 很适合解释成一棵树根节点是初始方案每个子节点是一次改进表现好的分支继续往下走表现差的分支慢慢被放弃。问题是机器学习工程不是下棋。不同分支之间经常有可以互相借鉴的经验。比如一个分支发现“LightGBM 比神经网络稳定”另一个分支发现“目标变量做 log transform 有帮助”。这两个发现本来应该能合并。但如果搜索结构是一棵硬树分支之间天然隔离Agent 很容易在不同分支里重复踩坑。MLEvolve 的第一个核心模块叫Progressive Monte Carlo Graph SearchProgressive MCGS。名字听起来复杂直觉很简单别让每条实验路线孤独地跑到底要允许分支之间共享信息。这里的关键词是 跨分支流动 和 渐进式收敛。源码里能看到这个逻辑。SearchNode不只保存代码还保存 plan、metric、bug 状态、stage、branch_id、children、reward 等搜索元数据PYTHON这说明 MLEvolve 里的“代码”只是节点的一部分。每个节点同时是一份实验记录它从哪里来做了什么改动结果如何属于哪个分支后续还能不能继续扩展。更关键的是搜索后期不是一直按普通 UCT 往下走。node_selection.py里有一个软切换前期偏探索后期逐渐转向 Top-K exploitation。PYTHON翻译成人话就是前半程多试方向中后程逐渐押注表现好的候选。它不像一个只会随机试错的脚本更像一个比赛工程师前几小时广撒网后几小时盯着最有希望的方案打磨。真正的自进化靠的是会记笔记很多 Agent 论文都会说自己有 memory。但 MLEvolve 里的记忆不是聊天记录而是实验经验。论文把这部分叫Retrospective Memory。它包含两层一层是 cold-start domain knowledge base用于一开始给任务类型推荐已有经验另一层是 dynamic global memory把搜索过程中每个有效节点的 plan、代码摘要、metric、成功/失败标签保存下来。源码里GlobalMemoryLayer.save_node()很直接PYTHON它保存的不是“用户刚才说了什么”而是一次实验的结构化经验这个节点是什么阶段、计划是什么、方法摘要是什么、结果标签是什么。更重要的是Planner 会用这些记忆来修正下一步计划。planner_with_memory.py里先生成一个初始 plan再检索相似的成功记录和失败记录把它们用于 refinePYTHON这就是 MLEvolve 的“自进化”味道。它不是简单把历史上下文塞进 prompt而是把历史实验变成可检索、可过滤、可用于规划的经验库。类比一下人类 Kaggle 选手也会做类似的事这个 augmentation 上次有效那个 loss 上次让验证集崩了某个后处理策略只在 tabular 任务里有用。MLEvolve 只是把这套经验管理显式写进系统。停滞之后不是继续微调而是换一种进化方式这篇论文还有一个很实用的判断不是所有“改进”都应该长一个样。如果一个分支刚开始跑普通 improve 就够了。当前方案有 bug就走 debug。分支卡住了就应该换策略要么沿着这个分支的历史轨迹做 evolution要么从别的分支拿成功经验做 fusion。在agent_search.py里调度逻辑很清楚PYTHON这里最关键的词是stagnant。一个普通 Agent 看到分数不涨可能继续让 LLM “try another improvement”。但 MLEvolve 会明确判断这个分支是不是停滞了如果停滞就不要再做小修小补。improve_agent.py里的 prompt 也很有意思。它把改动分成三层Tier 1 是训练细节优化Tier 2 是组件和表示变化Tier 3 是系统级范式转移。连续不涨时它会要求模型别再只调学习率而要提出 Tier 2 或 Tier 3 的变化。这很像真实工程里的复盘如果模型已经连续几轮没有提升你不能一直说“再调一下 batch size”。你要问的是是不是模型类型错了是不是目标建模错了是不是需要 ensemble、pseudo-labeling 或完全不同的数据流代码生成也不是一种模式打天下MLEvolve 的第三个核心点是Hierarchical Planning with Adaptive Code Generation。直觉上它把“想做什么”和“怎么改代码”拆开。Planner 先决定要改哪些组件、为什么改、保留哪些东西Coder 再根据计划实现。这样做的好处是Agent 不会一边想战略、一边直接大段重写代码把实验因果关系弄乱。代码仓库里也能看到三种生成模式PYTHON最值得注意的是 diff mode。默认配置里它是打开的YAML这几个配置其实很能说明系统哲学12 小时、500 步、开 diff、开记忆、开 evolution、开 fusion。也就是说MLEvolve 假设任务是长周期的代码会反复演化所以每次都全文重写并不合适。很多时候更稳的方式是先规划再局部 patch。diff_generate_and_apply()的流程也很工程化先把 planner 的结构化结果格式化成 improvement plan再让 LLM 生成 SEARCH/REPLACE 式 diff最后尝试 apply失败时重试。这解决了一个很现实的问题自动 ML 工程里代码不是一次性产物而是一个不断被小心修改的实验对象。结果为什么强论文和官方 README 给出的主结果是MLEvolve 在 MLE-Bench full set 的 75 个任务上使用 Gemini-3.1-Pro-preview12 小时预算达到65.3±0.8% average medal rate。相比很多 24 小时预算的系统它的一个卖点是时间更短。论文还报告它在数学优化任务上能和 AlphaEvolve 类方法竞争说明这个框架不只适用于 Kaggle 式 ML pipeline也能迁移到代码形式的算法优化任务。不过我更愿意把结果理解为一个系统结论当任务需要长期实验时Agent 的能力上限很大程度取决于搜索组织能力而不是单次代码生成能力。单次生成能力当然重要。没有强 LLM代码质量上不去。但在 MLE-Bench 这种任务里真正拉开差距的往往是它有没有保存失败经验会不会避免重复试错能不能在分支之间迁移思路到后半程能不能集中资源打磨高分方案MLEvolve 给出的答案是这些都应该变成系统模块而不是靠 prompt 里一句“be smart”。需要冷静看的地方这篇很值得读但也不能直接理解成“自动机器学习科学家已经来了”。第一它的主实验仍然依赖很强的闭环评测环境。MLE-Bench 给了明确任务、数据、提交格式和验证信号。真实科研里很多问题没有这么清楚的自动评价函数。第二它使用的资源并不轻。论文实现细节提到每个任务最多 500 个 expansion steps、12 小时、21 vCPU、234GB RAM 和单张 H200 GPU。对个人开发者来说这是系统研究不是轻量工具。第三代码里的很多策略本质上还是工程启发式。比如什么时候进入 Top-K exploitation什么时候触发 fusion/evolution阈值如何设置这些都可能影响很大。但这不削弱它的价值。恰恰相反它说明自动科研 Agent 的进展并不只来自“模型更聪明”还来自一整套实验管理、搜索调度和经验复用工程。从业者能学到什么如果你在做 coding agent、AutoML agent 或自动实验系统MLEvolve 至少给出四个启发。第一别把 memory 做成聊天记录。真正有用的记忆应该是实验记录plan、代码摘要、metric、成功/失败标签、父节点结果。第二搜索结构比 prompt 更重要。单纯让模型“多想想”不够系统要定义什么时候探索、什么时候利用、什么时候跨分支融合。第三代码生成要分模式。初始方案可以全文生成成熟方案更适合 diff patch复杂方案可以 stepwise 拆成数据、模型、训练等模块。第四停滞检测应该显式化。如果分数不涨系统需要触发更大幅度的策略变化而不是继续随机微调。MLEvolve 最有价值的地方是它把这些经验写成了代码。它不是在说“LLM 可以替代 Kaggle 工程师”而是在展示如果要让 Agent 像一个认真工作的 Kaggle 工程师它至少要会搜索、会复盘、会记笔记、会在关键时刻换方向。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】