资讯详情

AntOmniEvo的micro-pareto选择策略揭秘:Pareto前沿+top-N如何留住最强候选

📅 2026/10/17 14:24:55 | 华诺云谱 👁 阅读
AntOmniEvo的micro-pareto选择策略揭秘:Pareto前沿+top-N如何留住最强候选
【免费下载链接】AntOmniEvoAn auto-evolution framework that optimizes anything — your 7×24 team of algorithm engineers.项目地址https://gitcode.com/gh_mirrors/an/AntOmniEvo点击查看免费下载AntOmniEvo 是一个自动进化框架让 AI 代理 7×24 小时持续优化你的系统。它的候选池管理核心是micro-pareto 策略用 Pareto 前沿支配关系淘汰被全面压制的候选再用 top-N 截断控制种群规模配合多维领先的加权采样选出最强候选做下一步进化。本文带你完整拆解这套选谁进化、淘汰谁的机制。为什么纯 Pareto 前沿不够用 AntOmniEvo 的每个候选candidate在验证集上会留下一个多维分数列表score_list——每个维度对应一道题/一个 data_id 的得分。理论上用经典 Pareto 支配A 在每个维度都 ≥ B 则 A 支配 B剪掉弱者是标准做法。但官方设计文档 system-design.zh-CN.md 里点破了关键矛盾务实的 micro-pareto —— 承认概率评分下纯 Pareto 失效top-N 兜底 多维领先加权保护多面手。LLM 评估带有噪声单维分数可能有 ±噪声级别的波动两个旗鼓相当的候选可能互相不构成支配纯 Pareto 会让种群越滚越大、无法收敛。所以 AntOmniEvo 在 Pareto 之上叠加了两层工程化补丁选择端的多维领先加权和淘汰端的 top-N 截断。整套实现集中在一个文件pareto_frontier.py不到 180 行逻辑非常清爽。选择策略多维领先加权采样谁是多面手谁上场每次开新迭代槽位调度器会调用select(num)从候选池挑出父本。规则在 select 方法 里只看pending状态的候选——evolving的正在忙unavailable的要么待验证要么已退役计算每个候选的max_score_count它在多少个维度上拿到了全种群的最高分见 _get_max_score_count_dict以该计数为权重做加权随机采样不放回——0 权重候选永远不会被选中没有任何候选有分数时退化为均匀随机采样保证冷启动也能推进。直观理解不追求单科状元而是保护多面手。一个在 30% 题目上都拿到满分的候选比只在个别题目领先的候选更有机会被选中继续进化。这个行为有专门的单测守护见 test_pareto_selection.py——它验证了零权重候选绝不会被抽样到。下面这张图展示了多维分数对比的实际效果Insights 覆盖网格把每组候选在每道题上的得分排成矩阵你可以直观看到每个维度都有领先的候选长什么样。淘汰第一阶段Pareto 弱支配剪枝每个 slot 结束后都会调用一次eliminate()而不是只在接受子代时才裁实现见 eliminate 方法。Phase 1 做的事很纯粹pending和evolving都参与支配比较但只有pending会被真正 retire。这样正在进化的弱候选可以先跑完下个 slot 再淘汰而max_candidate_num上限也不会挡住强候选的入场排序技巧候选先按(generation, created_at)降序排列进化代数深的排前面。配合 Phase 1 里的判定两个全维度打平时更深代数的候选存活支配判定见 _is_dominatedA 每维 1e-8后 ≥ B 才算支配。这里有个防御细节——分数列表为空或长度不一致时直接返回False否则跳过验证模式下空列表会让每个候选都支配其他所有候选整个池子坍缩成只剩一个幸存者。被支配的候选会打上dominated by {cid}的退役原因写入日志可追溯。淘汰第二阶段top-N 截断兜底 Phase 1 之后如果存活的前沿frontier数量超过max_candidate_num默认 10进入 Phase 2frontier.sort( keylambda c: (summaries[c].avg_score, metas[c].generation, metas[c].created_at), reverseTrue, )按(平均分, 代数, 创建时间)降序排序只保留前 N 个其余打上top-N cutoff (avg_score...)原因退役。这一步就是官方文档说的top-N 兜底即使没有任何候选被 Pareto 支配种群规模也有硬上限分数越高、进化越深、越新的候选优先留下。被选中的父本每次都会记录日志selected{cid} (avg_score..., max_score_dims...)配合每次eliminate的dominated by/top-N cutoff日志你可以完整复盘谁上场了、谁被刷了、为什么。真实进化运行中的效果种群始终精瘦这套 micro-pareto 策略在一个真实 AppWorld 进化运行中的表现可以在 Stats 标签页 看到623 次迭代、总共创建 34 个候选、拒绝了 590 个子代而存活种群规模始终只有 3 个。这正是策略设计目标的直接体现进化不是无限扩张种群而是让候选池保持精瘦——留下的每一个都是当前最强梯队被淘汰的要么是全面被压制Pareto 支配要么是平均分不够进前 Ntop-N 截断。从 Lineage Tree 能更清楚地看到这条血统链每个节点标注平均分、相对 root 的提升和等级徽章被 micro-pareto 留下的候选层层向上爬升最终跑出比 baseline 高出 35pp 的最优解。动手看看用可视化器验证 micro-pareto 效果 想亲眼确认这些行为可以用项目自带的可视化器独立子包位于 visualizer/uv pip install -e .[visualizer] cd visualizer npm install antomnievo-visualizer-manage start --workspace /path/to/workspace/run启动后在浏览器里Evolution 标签页看候选在 Lobster Gym 里的实时状态pending / evolvingStats 标签页看Population Size是否被稳定压在max_candidate_num以内Insights 标签页用覆盖网格核对多维领先到底领先在哪几道题。另外store.retire()写入的退役原因都在日志里配合 iteration_records.jsonl 的逐 slot 记录能精确还原每次eliminate的裁决过程。小结三个机制一条清晰的取舍线 机制位置解决的问题多维领先加权采样select让多面手优先上场而非单科状元Pareto 弱支配剪枝eliminate Phase 1全面被压制的候选直接淘汰top-N 截断eliminate Phase 2概率评分下种群膨胀的兜底micro-pareto 的精妙之处在于务实它不假装分数是精确的而是承认 LLM 评估的噪声用支配关系 规模上限 多维加权三重保险保证候选池始终留得住当前最强梯队。如果你想在自己的系统上复现这套策略参考 docs/extensibility.zh-CN.md 即可按接口契约接入 EvolutionAlgorithm 抽象。赞分享【免费下载链接】AntOmniEvoAn auto-evolution framework that optimizes anything — your 7×24 team of algorithm engineers.项目地址https://gitcode.com/gh_mirrors/an/AntOmniEvo点击查看免费下载相关推荐GEPA ParetoCandidateSelector 完全指南基于 Pareto 前沿的候选选择策略与源码剖析GEPA ParetoCandidateSelector 完全指南基于 Pareto 前沿的候选选择策略与源码剖析 导读 ParetoCandidateSelAI Agent提示工程模型优化GEPA 候选选择策略实战内置策略、Per-Key Pareto Frontier 与自定义 CandidateSelectorGEPA 候选选择策略实战内置策略、Per Key Pareto Frontier 与自定义 CandidateSelector 在 GEPAAI 驱动的反AI Agent提示工程模型优化GEPA 候选选择策略CandidateSelector完全指南Pareto、贪心与 ε-贪心机制的源码级解析GEPA 候选选择策略CandidateSelector完全指南Pareto、贪心与 ε 贪心机制的源码级解析 导读 本指南围绕 GEPAAI 驱动的反AI Agent提示工程模型优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑