
通用的智能体算法搜索框架(AlphaEvolve、OpenEvolve、AK 风格的 AutoResearch)刷编程题和浅层 benchmark 很行,但一指向真实 ML 训练 pipeline 就开始出现问题。因为 ML 有自己的一套成本结构和失败模式,这些框架根本没考虑过。
ml-evolve:是一个专为 ML 垂直领域打造的多智能体自进化系统:每个智能体角色对应一个在生产中实实在在踩过的坑,自进化循环也按 ML 训练的经济学逻辑重新设计。这篇文章讲这些设计选择,以及它们比现有方案好在哪里。

现在的智能体算法搜索系统基本都是为代码搜索设计的。候选是一段代码评估器是单元测试运行器,一轮几秒钟。变异、打分、重复。
但是ML 并不是这样:
在这种条件下,通用循环很快就会出现问题,比如:同一个 LLM 三次能写出排序函数,但一百次迭代也未必能有效改进一个推荐系统架构。这不是没想法而是围在它外面的循环缺乏结构来公平检验那些想法。
我们反过来想先列那些搞死智能体 ML 的失败模式,再设计最少量的智能体拓扑去解决它们。
1、一个 LLM 干不了架构推理又干数值优化
让 LLM同时给模型和好参数,它两样都干不好:
所以拆成两个智能体,在不同层面干活。
EVOLVE 块。不选数值,只把数值参数化。这样每层用自己擅长的工具,变异智能体做结构推理,参数搜索智能体做数值搜索。一个架构在最优化参数下还不行,那说明是架构的问题,不是"我们没调好"。信号质量上去了,计算浪费下来了。
2、智能体搜索会坍缩成浅层微调
如果没人管的话LLM 驱动的循环会一轮接一轮地在刚奏效的方案上修修补补。比如”Embedding 维度 64→128→96→80。排行榜上站了一排几乎一模一样的模型,这是是当一个智能体要在"这轮出活"和"试试有风险的东西"之间平衡时短期决策的结果。
所以需要一个独立的计划智能体,手里握着对搜索广度的结构性权力。
这样15 轮跑下来,产出不是一个模型的 15 个小变体,而是每条分支两到三个真正不同的架构,各自调到局部最优。广度不再是被贪心优化剩下来的边角料,而是系统的第一选择
3、训练成本比别的环节高 100-10000 倍
这是通用代码搜索框架完全忽略的一个问题——它们的候选毫秒级就能编译。在 ML 里这是唯一决定搜索循环能不能承受的问题。
一个嵌在自进化循环里的三阶段训练门控。
阶段 | 数据量 | 用途 |
|---|---|---|
search(试点) | ~10% 样本 | 内循环探索。每个候选、每个参数试验。 |
promote(完整) | 100% | 晋升门控。只有 search 阶段的 top-K 能到这一步。 |
final(报告) | 100% | 仅做报告。绝不用来反馈选型。 |
一个 3 节点 × 15 迭代 × 12 试验的任务,在 40 分钟一轮的训练上,如果每轮都跑全量,一个节点就是 360 GPU 小时。分阶段后内循环只用 10% 试点数据,一个节点变成约 36 小时加少量完整晋升。探索深度一样计算省了 10 倍。
门控不只为效率。final 阶段跟选型完全隔离,这样也堵住了报告泄漏——一种无声的破坏性偏差,保留评估集慢慢变成选择信号的一部分。临时搭的智能体循环上线一周内准会踩这个坑。所以这就需要控制器不把 final 分数拿来做父代选择。
4、信号一有噪声排行榜就撒谎
就算分了阶段,10% 试点数据的排行榜也比全量评估噪声大得多。LLM 会追第十名的假象,拿噪声当信号出方案。
这就需要一组散布在智能体角色和控制器里的小规矩。
tpe_startup_trials 热启动的 TPE,防止早期轮次锚定在一颗老鼠屎上。这些不是多高深的技术,是有经验的 ML 工程师拿痛换来的教训,然后写进自己的脚本里。
四个痛点的答案拼在一起就得到了系统拓扑:
┌─────────────────────────────────────┐
│ PLAN AGENT (算法广度) │
│ 读排行榜 + 分支健康度 │
│ + 可选的网络搜索; 每个节点 │
│ 分配一条假设 │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ MUTATION AGENT (架构) │
│ 重写 EVOLVE 块; 参数化数值旋钮 │
│ 但不选值 │
└──────────────┬──────────────────────┘
│ 冻结架构
▼
┌─────────────────────────────────────┐
│ PARAM-SEARCH AGENT (数值) │
│ Optuna TPE, N 次试验 │
│ 在 PILOT (10% 数据) 上跑 │
└──────────────┬──────────────────────┘
│ 最佳分数
▼
┌─────────────────────────────────────┐
│ PROMOTION (每 K 轮) │
│ top-K 试点 → 全量数据 │
│ 噪声过滤, 泄漏屏障 │
└──────────────┬──────────────────────┘
│ 更新排行榜
└─► 回 PLAN AGENT每个智能体做自己擅长的事,每个阶段花该花的钱,每轮循环回到上一层闭合。这就是"自进化"的意思:这一轮的排行榜变成计划智能体下一轮的输入,计划智能体对广度的掌控保证搜索不坍缩。
最接近的参考系是 AlphaEvolve、OpenEvolve 和更广泛的 AK 风格 AutoResearch 智能体。它们共享一个骨架——提出、评估、学习、重复——都靠排行榜驱动的自我改进信号。我们的差异如下:

看最右列。每一行都是一个场景:用通用智能体搜索循环跑真实 ML 训练系统时,要么烧计算、要么产出浅层结果、要么悄悄污染评估。 我们不是换了个隐喻——是对具体生产故障的针对性回应。
AlphaEvolve、OpenEvolve 和 AutoResearch 主要优化研究广度和能力天花板。它们之所以令人印象深刻,正是因为它们不受约束。ml-evolve 优化的是生产级 ML 迭代效率——可重复、可审计、可负担、抗泄漏。不同目标,互补设计。
场景:双塔检索 pipeline。已知基线:

TwoTower 是新基线,目标是把 Recall@50 再推高。声明了三个结构上不同的假设节点:in-batch 负样本调优、基于 ANN 的 hard negative 挖掘、多兴趣用户塔(MIND / ComiRec 风格)。每条有终止条件。
第 6 轮(共 15 轮):
[Stage] search (10% data pilot)
[Branch] hard_negative_mining
Plan agent → "Round 5 converged at temperature 0.05.
Meta two-tower notes recommend BM25-retrieved
hard negatives + curriculum schedule.
Direction: add hard_neg_ratio and pool_size."
Mutation agent → edits EVOLVE block, parameterizes the two knobs.
Param-search → 12 Optuna TPE trials, 5 startup.
best → Recall@50 = 0.1112 (pilot)
cost: 12 × 4 min = 48 min on one GPU
[Branch] in_batch_neg_tuning best → 0.1071
[Branch] multi_interest_user_tower best → 0.1058 (2/3 kill criterion)
[Promotion] every=5 → round-5 top-1 promoted; full-stage check
→ Recall@50 = 0.1098 (consistent with pilot — not noise)
[Replan] replan_every=5 fires → multi_interest_user_tower flagged
for hypothesis refresh next round.这一轮暴露了系统设计的几个要点:
运行完的产物:leaderboard.md(每分支最优 + 历史)、research_plan.md(当前计划智能体指令)、param_trials/*.json(每次 Optuna 试验)、report.md(最终报告,不参与选型)。两个月后有人问为什么选了 hard negative 而不是多兴趣,答案在这几个文件里——不在某个 Slack 讨论串里。
适合的场景:
不适合:
智能体 ML 领域正向更开放、能力更强的系统演进,这对研究来说很对。但有一个不那么常被讨论的平行问题:怎么设计一个多智能体系统,让它在本季度、在真实 ML 训练 pipeline 上就能把成本挣回来?
这不是模型规模的问题,是智能体设计的问题:按角色擅长的决策来分角色,按可负担的计算来分时间尺度,把广度和深度拆开免得它们互相干扰。
如果你的算法搜索循环还没挣回算力钱答案可能不是换更大的 LLM,而是把智能体系统设计得更好。
项目地址:
https://github.com/roylist/ml-evolve
by William Austin
本文分享自 DeepHub IMBA 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!