AutoData: An Agentic Data Scientist to Create High Quality Synthetic Data
一句话总结:把"造训练/评测数据"这件事本身变成一个会自省的 Agent 数据科学家——它不是一次性 prompt 生成,而是生成→"眼看"质检+跑分→提炼 learnings→改写生成配方地循环,直到数据"难度刚刚好、能让弱模型爬坡";更狠的是,可以用 meta-harness 式的外层进化把"这个数据科学家 Agent"本身也优化一遍,让它学会造更强的数据。
- 来源:Ilia Kulikov†, Chenxi Whitehouse†, Tianhao Wu†, Yixin Nie†, Swarnadeep Saha, Eryk Helenowski, Weizhe Yuan, Olga Golovneva, Jack Lanchantin, Yoram Bachrach, Jakob Foerster, Xian Li, Han Fang, Sainbayar Sukhbaatar, Jason Weston(FAIR at Meta;†共同一作),arXiv:2606.25996v3,2026-07-07
- 通讯:kulikov@meta.com, jase@meta.com
- 本地 PDF:ref12_autodata.pdf
- 命名提醒:本文的 "AutoData" 与另一篇同名工作(Ma et al. 2026,做开放网页数据采集的多智能体系统)不是同一篇;作者明确把后者视为本框架的一个"特例"。本文正确标题是 "Autodata: An agentic data scientist to create high quality synthetic data"。
TL;DR 速览
- 问题:AI 前沿进步越来越依赖合成数据,但主流合成方法(Self-Instruct、CoT Self-Instruct、self-challenging 等)本质是固定的"生成/过滤流水线",无法直接控制数据的难度与质量——生成完就完了,不会根据"这批数据到底好不好用来训练"来回头改生成策略。
- 方法:提出 AutoData——让一个 Agent 扮演"数据科学家",把造数据做成迭代的数据科学过程:
Data Creation(接地生成)→ Data Analysis(例级/集级质检 + 跑分)→ 提炼 learnings → 改配方 → 再生成,直到满意才产出最终数据集。 1. 具体实现叫 Agentic Self-Instruct(Figure 2):一个 main orchestrator 指挥 4 个子 Agent——Challenger(出题)、Weak solver(弱解题者)、Strong solver(强解题者)、Verifier/Judge(判分/质检); 2. 优化信号 = 弱强分离度(weak–strong gap):目标是造出"强模型能做对、弱模型做不动"的题——这样的题才对训练弱模型最有价值; 3. main agent 读 judge 反馈 → 改写给 Challenger 的 prompt → 换个推理角度重出,直到满足接受准则; 4. 更进一步:用进化式 meta-optimization(autoresearch / Meta-Harness 风格)把 data-scientist agent 的 prompt/scaffold 当代码来改,用内层同一套数据质量准则驱动外层优化。 - 关键数字:
- CS 研究题:Agentic 把弱强 gap 从 0.02 拉到 0.31;用它造的数据 RL 训 Qwen3.5-4B,在更难的 Agentic 测试集上 0.366→0.632(CoT 数据只到 0.500),转移到更易的 CoT 测试集也 +0.05。
- 法律推理:这里是相反的失败模式(CoT 出的题太难、弱模型大量 0 分、GRPO 学不动);Agentic 把弱模型均分 0.159→0.283、rollout 方差 7.93→12.63,让信号"可学"。结果 4B 模型 RL 后在 PRBench-Legal 上 0.441(GPT-5 judge),超过 397B 强基线的 0.404。
- 科学推理(Principia):Agentic 数据 avg@8 +3.20%,超过 CoT(+2.42%)和 2× 数据量的 Combined(+2.70%);还顺带把推理截断率从 23.75% 压到 4.09%。
- Meta-optimization:外层进化把 data-scientist 的 validation pass rate 从 62.1% 提到 79.6%(233 次迭代里接受 126 次),全自动、无需人工改 prompt。
- 一句话评价:这是"苦涩教训 / 把 harness 当优化对象"这条线([[ref09_meta-harness]]、[[ref17_self-harness]])向"数据侧"的一次自然延伸——把 Karpathy 的 autoresearch"优化训练代码"换成"优化造数据的 Agent"。最深刻的一句是:"关键不是把题变得更难,而是把题变得刚刚好(just right),让模型能在上面爬坡。" 它把"合成数据质量"从一个静态过滤问题重新定义成一个以下游可学性为目标的闭环控制问题,并给出了"两层都能自动优化"的完整范式。
tags: #合成数据 #agentic-data-generation #self-instruct #weak-strong #GRPO #meta-optimization #harness工程 #自我改进 #challenger-solver
related: [[ref09_meta-harness]](外层进化直接用它的"把 harness 当代码优化"范式)· [[ref17_self-harness]](同属"优化 agent scaffold"谱系,一个改数据一个改运行 harness)· [[ref04_absolute-zero]](自出题+自解题的 challenger–solver 自博弈)· [[ref05_self-rewarding-language-models]](模型即 judge 的自奖励)· [[ref06_spin-self-play-finetuning]](自博弈式自我改进)
摘要
我们提出 AutoData,一种让 AI Agent 扮演"数据科学家"、构建高质量训练与评测数据的通用方法。我们展示了如何训练(元优化)这样一个数据科学家 Agent,使它学会造出更强的数据。我们给出整体形式化,以及一个具体可落地的实现 Agentic Self-Instruct。
在CS 研究、法律推理、数学对象推理三类任务上,AutoData 都比经典合成数据方法更好;而元优化 data-scientist Agent 本身能带来更大的额外提升。作者的核心主张:agentic 数据生成提供了一种把"增加的推理算力"转化为"更高质量模型训练数据"的途径,有潜力改变我们造 AI 数据的方式。
1 介绍:为什么造数据要"agentic"
动机链:当前 AI 系统的训练地基是人写数据,但性能增益越来越多来自模型自己造的合成数据——合成数据能补齐长尾/边角案例、降低人工标注的难度与延迟、甚至造出比人类分布更难的数据。
现状方法的谱系与共同缺陷(这段是全文起点,务必看清):
[!TIP] 合成数据方法的演进(本文要"统一并超越"的前作) - Self-Instruct (Wang et al., 2023):用 zero/few-shot prompting 让 LM 从少量种子自举出指令数据。奠基之作,但生成基本是固定 prompt。 - Grounded Self-Instruct (Source2Synth / NaturalReasoning):把生成接地(ground)到真实文档/表格,降低幻觉、增多样性。 - CoT Self-Instruct (Yu et al., 2025):生成时引入 Chain-of-Thought 规划,把更复杂的任务造得更准。本文的主对照基线。 - Self-Challenging (Zhou et al., 2025):让一个 challenger agent 先用工具交互,再提出任务和配套的评估函数。
共同缺陷:以上方法都不能直接控制数据的难度与质量——于是催生了一堆"补救"手段:过滤(filtering)、进化(WizardLM-style evolution)、精炼(refinement)。但这些都是"生成完之后"的静态处理,没有把"下游到底好不好用"反馈回生成本身。
本文的重新定义:AutoData 把造数据当作一个数据科学家会做的完整过程——不只生成一次,还要"眼看(eyeballing)"数据、量它的性能、构造 learnings、再用改进的配方重造更好的数据。而且这套过程本身(外层)也能被训练/元优化得更像一个好的数据科学家(内层)。
[!NOTE] 与 autoresearch 的分工(作者的站位):近期 autoresearch(Karpathy, 2026)多聚焦"让 Agent 改架构或训练配方"。作者主张:聚焦"数据"这件事,对未来进步同等重要、甚至更重要。因为随着 SOTA LLM 越来越强,人们担心"现有任务/合成方法造不出足够难的数据来继续推进前沿"——AutoData 正是把增加的推理算力转化为足够难的挑战性数据的路子。
三类实验域(都用 Agentic Self-Instruct 这个实现):CS 研究题、法律推理、数学对象推理,每个都超过经典合成方法;再叠加元优化,提升更大。
2 AutoData 框架:一个"会自省的造数据循环"

Figure 1 逐元素解读(全文的"总纲图"): - 左「Grounding data/context」:Agent 先接地到某些提供的数据(数学/法律/代码的具体文档,或其他有用数据源)作为造数据的原料。 - 中「LLM Agent(+tools +subagent calls +memory)」:核心的 data-scientist Agent。它能调工具、发起子 Agent 调用、带记忆(此前学到的 skills/learnings),用推理时算力去造训练/评测数据。 - 右「Synthetic Data」:产出的合成数据。 - 内层循环「Create ↔ Analyze / Iterate until criteria met」:注意 Agent 与数据之间是双向箭头——"Create"(造)之后要"Analyze"(分析:这例对不对?够不够难?整批够不够多样?拿去训练能不能提升模型?),把 learnings 喂回生成,反复迭代直到满足停止准则。 - 外层大框「Meta-optimize agent itself」:整张图被一个更大的框包住——Agent 自己也能被优化,用的是内层同一套"造更好数据"的准则去指导外层的 Agent 优化。这就是"两层都能自动改进"的结构。
框架三大组件(对应正文 §2):
| 组件 | 做什么 | 关键点 |
|---|---|---|
| Data Creation | 接地到原料 → 用工具/已有 skills + 推理算力造训练或评测数据 | 可在后续分析后重复,越造越好 |
| Data Analysis | 对造出的数据找 learnings:例级(对不对/高不高质/够不够难)或集级(多不多样/拿去训练能否提升模型) | learnings 喂回 creation,直到停止准则 |
| Overall Data Scientist Loop | 循环 create↔analyze 到满意,产出最终数据集/benchmark | 外层可加 guardrails 防 hacking;Agent 能在自己的 learnings 上叠加 |
[!TIP] 什么是"元优化 data-scientist Agent"(§2 末 + §4)? 除了把 Agent 当"固定造数据工具",还可以把这个 Agent 本身优化得更会造数据。做法:用 autoresearch (Karpathy, 2026) 或 Meta-Harness (Lee et al., 2026) 风格的优化,把 Agent 的 harness(prompt/scaffold)当作代码来迭代改,而优化目标就是内层那套"造出更好数据"的准则。换句话说——内层用"数据质量"打分候选数据,外层用"同一份数据质量"打分候选 Agent。这正是它与 [[ref09_meta-harness]] 的接口:Meta-Harness 是"优化任意 LLM 系统 harness"的通用工具,AutoData 把它具体应用到"造数据的 Agent"这个 harness 上。
2.1 具体实现:Agentic Self-Instruct(弱–强对抗)

Figure 2 逐块解读(本文方法的"心脏"):一个 Main Agent 居中,指挥四个子 Agent,构成一个"出题—弱强对打—判分—改 prompt"的闭环: - Challenger LLM(右):接收 main agent 给的详细 prompt + 接地上下文,产出一道训练题(context/input、参考答案 or rubric、评估准则)。图中 main→challenger 是 "prompt",challenger→main 是 "example"。 - Strong Solver(左下):期望能做对这道题的强解题者。 - Weak Solver(中下):期望做不动这道题的弱解题者。 - Verifier / Judge(右下,属于虚线框 "Reward model"):给定题目和模型解答,检查解答质量和题目本身质量(问题、参考答案、rubric),把 learnings 传回 main agent。 - Main Agent(中):把 challenger 的题分别发给弱/强 solver → 根据 verifier 判分给 reward → 分析报告 → 改写给 challenger 的 prompt → 重出题,循环直到满足接受准则。产出的合格题就是 "training data"(图顶输出)。
核心机制——弱强分离度(weak–strong gap):
[!IMPORTANT] 目标是造出"强 solver 成功、弱 solver 挣扎"的训练数据。 直觉:如果一道题弱模型也能轻松答对,那它对训练弱模型几乎没有梯度价值(大家都会,学不到东西);如果强模型都答不对,那这题可能本身有问题或太难。真正对"教会弱模型"最有用的,是处在弱强能力差之间的题。 - 可验证任务(用 LLM verifier):要求强 solver 多数投票正确、弱 solver 多数投票错误。 - 不可验证任务:要求 judge 衡量的质量存在 gap——题对弱 solver不太易也不太难,同时用强 solver 保证正确性。
一个关键实现技巧:"弱""强"solver 甚至可以是同一个 LLM 的不同模式——强版可以用更多推理算力(scaffolding、聚合,见 [Zhao et al., 2025b])或访问特权信息。这让"弱强对比"变成一个可灵活配置的信号源。
信息流(把 §2.1 讲透 + 举例):
假设一篇 CS 论文讲某新注意力机制。 1. main agent 把论文 + "出一道难题"的 prompt 发给 challenger; 2. challenger 出题 → main 发给 weak(4B)/strong(397B) 各跑几次; 3. verifier 判分:发现 weak 得 0.68、strong 得 0.70 → gap 只有 0.02(弱模型也会做,太易); 4. main agent 读报告 → 生成针对性反馈给 challenger:"这题是高层综述题、4B 也能答;换个角度——问论文里某个具体算法步骤/消融细节/数值论断"; 5. challenger 换角度重出 → 再对打 → 直到 strong≥0.65、weak<0.5、gap≥20pt 才接受。
这就是 Figure 4 里 "Round 1 REJECTED → Round N ACCEPTED" 的实际过程。
3 实验:同一个循环,治两种相反的病
作者用三个域证明 Agentic Self-Instruct 的通用性——尤其巧妙的是 CS 和 Legal 是两种相反的失败模式,同一个循环都能治。

Figure 4 逐元素解读(最直观的"过程证据"):针对一篇关于大语言建模的论文,展示 Agentic Self-Instruct 生成"题+rubric"的演进: - 左「Round 1 – REJECTED」:第一轮的题被拒。下方是 main agent 的分析——弱 solver 分数太高(题太易)、rubric 有问题等,附带具体拒绝理由。第一轮往往是个高层综述题,4B 也能答。 - 右「Round N – ACCEPTED」:经过若干轮换角度重出后被接受的题。它转向了论文的具体算法步骤/数值论断/设计权衡——需要真正跟着论文论证走才能答。右侧是配套的 weighted rubric(判分准则)和弱/强 solver 的得分柱状图,显示出所需的 gap。 - 整体叙事:这张图把"探索式造题"可视化了——不是一次生成,而是在 judge 反馈引导下,逐轮把题从'泛泛'推向'刁钻'。
3.1 CS 研究题:把题变"更难"
设置:CS 研究问题开放式、不可验证,需 rubric-based 评估。Challenger 生成 context + question + 参考答案 + 自足的加权 rubric(LLM-judge 用它在不看参考答案的情况下打分)。角色分配:Kimi-K2.6 当 main agent + challenger + judge,Qwen3.5-397B-A17B 当 strong solver,Qwen3.5-4B 当 weak solver。
接受准则(硬阈值):strong 均分 ≥0.65、weak <0.5、strong−weak gap ≥20 个百分点。为省算力,只有 weak 通过其成功准则时才让 judge 评 strong。
数据规模:处理 10k+ 篇 S2ORC (2022+) CS 论文,产出 2.8k 接受样本;末端质量 verifier(去掉论文特定参考泄漏、短上下文、畸形 rubric)再过滤,保留 1.3k 高质量样本做 RL。CoT 基线也用同一 verifier 过滤取等量 1.3k,保证公平。
循环分析(Table 1):
| 指标 | CoT Self-Instruct | Agentic Self-Instruct |
|---|---|---|
| Weak solver 均分 | 0.677 | 0.458(↓22pt) |
| Strong solver 均分 | 0.696 | 0.772(↑8pt) |
| Gap (strong−weak) | 0.019 | 0.314 |
| Agentic 轮数 | 1.00 | 6.59 |
| 问题长度(字符) | 723 | 619 |
| Rubric 条目数 | 13.2 | 13.1 |
[!NOTE] 失败模式高度一边倒:跑 10k 语料,平均要 6.59 轮才接受一题(长尾超过 10 轮)。在 880 个预接受轮次里,80% 被拒是因为"题太易、weak 分太高",13% 因为"strong 也做不稳"。检视轨迹发现:agent 初次尝试常是高层综述题(4B 就会),后续在 judge 反馈引导下转向具体算法步骤、消融细节、数值论断——即"跟着论文实际论证走"的题。聚合效果就是 weak 掉 22 分、strong 升 8 分:接受的题变难的方式恰好奖励强模型的深层推理,而不是"两个模型都会/都不会"。
RL 结果(Table 2):用 GRPO 训 Qwen3.5-4B(1.3k 样本,batch 16,lr 1e-6),在两个 held-out 测试集评估(每个对一方 in-distribution、对另一方 OOD):
| Response model | CoT test mean@3 | CoT test best@3 | Agentic test mean@3 | Agentic test best@3 |
|---|---|---|---|---|
| Qwen3.5-4B(无额外 RL) | 0.630 | 0.758 | 0.366 | 0.484 |
| RL on CoT data | 0.727 | 0.853 | 0.500 | 0.631 |
| RL on Agentic data | 0.774 | 0.894 | 0.632 | 0.768 |
[!TIP] 把 Table 2 讲透 + 双向转移 关注两列的"训练→测试"匹配关系: - 在更易的 CoT 测试集上:base 0.630 → CoT 训 0.727 → Agentic 训 0.774(Agentic 训的模型在"别人的主场"也赢 +0.05)。 - 在更难的 Agentic 测试集上:base 0.366 → CoT 训 0.500 → Agentic 训 0.632(这里两法差距 >2× 于 CoT 测试集的差距)。
含义:用"有区分度的难数据"训出来的模型双向转移——既在难分布上大涨(+0.13),又在易分布上小涨(+0.05);反过来用易数据训则在难分布上落后。这支撑"难数据教会的是可迁移的推理能力",而非过拟合到某个难度。Figure 3(训练曲线)显示 Agentic 从第一步就在 Kimi reward 上高于 CoT 且差距随训练拉大。
3.2 法律推理:把题变"刚刚好"(相反的病)
设置:源料用 Pile of Law(法院意见等公开法律文书),评测在 PRBench-Legal 和 PRBench-Legal-Hard。角色同 CS。关键反差:这里 CoT Self-Instruct 出的题太难——weak solver 均分才 0.159、很多题得 0,GRPO 学不动(组内 advantage 近 0,没信号)。
[!IMPORTANT] 为什么"太难"也是病?(GRPO 视角讲透) GRPO 的学习信号来自"同一 prompt 的一组 rollout 之间的相对优势"。如果一道题的 5 次 weak rollout 全是 0 分,那这组的优势全为 0——无论怎么更新都没梯度。所以"太难到全 0"和"太易到全对"一样,都让per-group advantage 塌成 0、白跑算力。真正有用的题要在弱模型这里造出可用的方差:有时对、有时错,才有可学的信号。这就是本节标题"just right"的技术根源。
方法改动——从硬阈值换成"灵活 loop judge"(这是与 CS 的核心差异):
1. 每篇法律文书先过专门的 extractor agent,产出结构化摘要(主题关键词、要点事实、holdings);
2. challenger 从摘要生成一道真实法律问题 + 加权 rubric + 声明的目标能力集;
3. 每候选被 weak solver rollout 5 次、strong solver 3 次;
4. loop judge 读"每-rollout 的 solver 模式、weak/strong gap、rubric",返回结构化裁决(weak_pattern, strong_pattern, gap_interpretation, rubric_concerns, grpo_suitability)+ accept/improve;
5. 若 improve,给 challenger 一条具体建议(如"弱 rollout 都在背同一段套话;把题推向'一步步应用该 holding'而非'回忆'"),重跑;accept 则结束。
[!TIP] loop judge vs 硬阈值(设计动机) CS 用固定阈值(gap≥20pt)判接受;Legal 的 judge 没有固定阈值,而是每轮结合 weak-rollout 方差、gap、PRBench 基线统计动态判断。原因:法律题的"好"不只由数值 gap 定义,还要整体质量 + GRPO-suitability。作者甚至指出:若把 CS 的硬阈值搬来,大多数 CoT 数据反而会被接受(因为它们"gap 大")——但那恰恰是全 0 的坏数据。这说明接受准则要随任务的失败模式定制,不能一刀切。
循环分析(Table 3):
| 指标 | CoT Self-Instruct | Agentic Self-Instruct |
|---|---|---|
| Weak solver 均分 | 0.159 | 0.283(↑,脱离全 0) |
| Strong solver 均分 | 0.717 | 0.698(几乎不变) |
| Gap (strong−weak) | 0.558 | 0.415(缩小,与 CS 相反) |
| Agentic 轮数 | 1.00 | 4.98 |
| 问题长度(字符) | 1,569 | 900(更短、更应用式) |
| Weak rollout std | 7.93 | 12.63(方差升高 = 更可学) |
[!NOTE] 同一循环、相反方向:CS 里 gap 变宽(题变难),Legal 里 gap 变窄(题从"全 0 太难"变"有对有错")。但下游 RL 结果一致:autodata 数据训的模型在每个 held-out 都赢。
grpo_suitability分布也印证:CoT 池是 4.8% high / 45% low,Agentic 池变成 52% high / 2% low。副作用:judge 反馈还把题推向更短的应用式问题(900 vs 1.6k 字符),恰好对齐 PRBench 的短 prompt。
RL 结果(Table 4):用 GRPO 训 Qwen3.5-4B(2.8k prompt,n=8 rollout),用 Kimi + GPT-5 双 judge 复核:
| Response model | GPT-5: Legal | GPT-5: Legal-Hard | Kimi: Legal | Kimi: Legal-Hard |
|---|---|---|---|---|
| Qwen3.5-4B(无 RL) | 0.280 | 0.167 | 0.245 | 0.145 |
| Qwen3.5-397B(无 RL) | 0.404 | 0.277 | 0.358 | 0.226 |
| 4B RL on CoT | 0.377 | 0.253 | 0.343 | 0.233 |
| 4B RL on Agentic | 0.441 | 0.315 | 0.393 | 0.266 |
[!IMPORTANT] 4B 模型用 Agentic 数据 RL 后(0.441),超过了不训练的 397B 强基线(0.404)——同 2.8k 预算、同 challenger、同语料,唯一差别就是"训练数据的造法多了 agentic loop"。两个 grader(Kimi + GPT-5)一致,排除 grader 偏置。这是全文最有冲击力的一组数字:一个约 100× 更小的模型,靠更好的数据反超。
§3.2 末的点睛结论:
[!TIP] "More Challenging" vs "Just Right" CS 与 Legal 是 CoT 生成的两个相反失败模式:CS 太易(gap 0.02),Legal 太难(gap 0.56 但很多 0 分)。AutoData 让 gap 向相反方向移动(CS 变宽、Legal 变窄),但下游 RL 结果一致地赢。"关键不是把题变得更难,而是把题变得刚刚好,让模型能在上面 hill-climb"——Agentic Self-Instruct 循环正是达成这一点的机制。这句话是理解全文的钥匙:它优化的不是"难度",而是"可学性(learnability)"。
3.3 科学推理(数学对象):难数据转移到易任务
设置:造需要对数学对象推理的难题,域同 Principia collection(原本用 CoT Self-Instruct 造)。weak = Qwen3.5-4B(其实是很强的推理模型,能解很多 Principia 题)、strong = Qwen3.5-397B、main+challenger = Kimi K2.6。三个数据源对比:(i) CoT(直接用 Principia 题)、(ii) Agentic、(iii) Combined(两者合并,2× 数据量 18k)。
结果(Table 5,combined validation):
| Eval Subset | Base 4B | CoT Δ | Agentic Δ | Combined(2×) Δ |
|---|---|---|---|---|
| Overall (avg@8) | 68.66% | +2.42 | +3.20 | +2.70 |
| Agentic subset | 52.39% | +3.94 | +4.40 | +3.49 |
| CoT subset | 77.17% | +1.86 | +3.05 | +2.49 |
[!NOTE] 两个关键发现: 1. Agentic(半数据量)打赢 Combined(2× 数据量)——+3.20 vs +2.70。说明"数据难度/质量"比"数据量"更值钱,投推理算力造好数据 > 单纯堆量。 2. 难数据转移到易任务:Agentic 数据在 CoT 子集上也涨最多(+3.05 vs CoT 自己的 +1.86),尽管它没为该分布优化。"在更难题上训练教会的推理技能会泛化到更易的题。"
OOD(Table 6,Principia benchmark):Agentic overall avg@8 +1.04%(最佳),RealMath +1.75%、SuperGPQA +0.82%。pass@8 上则更微妙——Combined 因多样性/规模在 ARB、RealMath 的 pass@8 占优,作者推测 4B 可能已接近该任务分布的容量上限,更大模型或能同时吃到两种收益。
[!TIP] 附录 A 的副发现:训练同时提升"推理效率" 65,536 token 预算下,base 4B 截断率高达 23.75%(很多题在算完前就用光 token)。训练后 Agentic 把截断率压到 4.09%。归因分析(816 QA × 8 = 6528 对)显示:约 54.81% 的 incorrect→correct 翻转来自"修复截断",41.06% 来自"非截断推理变好"。这是一个被低估的合成数据收益:难数据不仅提升推理质量,还教模型更简洁地推理,从而在固定算力预算内解出更多题。
4 数据科学家的元优化(外层进化)

Figure 6 解读(外层"优化 Agent 本身"的架构):图示一个进化式外层循环——在 CS 论文任务的训练样本上评估 Agent 的 prompt → 分析失败轨迹找出系统性弱点(如 context leakage)→ 用code-editing agent 落地 prompt 修改 → 在 held-out validation 论文上复评。图中呈现两条"Model X / Model Y"的候选谱系并行进化,底部标注 Scoring & Progress 与各候选的 endpoint 分数。只有当改动提升"弱强分离率"时才被接受。图注给出结果:validation pass rate 从 62.1% → 79.6%,233 次迭代中接受 126 次。(此图信息密度高、内嵌小字代码 diff,建议配合下方文字与"发现的 prompt 修改"列表看。)
方法(把外层进化讲透):外层是一个把"Agent 的 scaffold 当代码迭代改"的进化优化框架,每次迭代:
| 步骤 | 内容 |
|---|---|
| (1) 选父代 | 用 Boltzmann 采样(温度 T=0.1,强烈偏好高分候选、又保留探索)从种群里选一个 prompt |
| (2) 评估父代 | 在一个 minibatch 训练论文上跑,收集 agent 轨迹 + weak/strong solver 分数 |
| (3) 分析 | 一个 LLM agent 读完整 solver 交互,写出系统性失败模式的根因分析 |
| (4) 实现改动 | 一个 code-editing agent 读 分析 + 迭代历史 + 当前 prompt,产出改进的 diff |
| (5) 复评 | 在 held-out validation 论文上同时评父代与变异体 |
| (6) 接受/拒绝 | 仅当变异体的 validation 分数严格超过父代才加入种群 |
| (7) 记录 | 把结果写进 history log,供后续 analyzer 读 |
[!TIP] 把 Boltzmann 采样讲透 + 数值举例 \(\exp(\text{score}/T)\) 是一个"软 argmax":\(T\) 越小越偏向最高分候选。举例:种群有三个候选,分数 0.62 / 0.70 / 0.79,\(T=0.1\): - 未归一权重 \(= e^{6.2}, e^{7.0}, e^{7.9} = 492.7, 1096.6, 2697.3\); - 归一化概率 \(\approx\) 11.5% / 25.6% / 62.9%。
可见最高分候选(0.79)拿到约 63% 的被选概率,但 0.62 的弱候选仍有 ~11.5% 机会被选中做父代——这就是"强烈利用 + 保留探索"的平衡。若 \(T\to 0\) 则退化为纯贪心(永远选最高分),\(T\to\infty\) 则退化为均匀随机。因单次评估有噪声(solver 温度 1.0),被接受的候选在后续被采样为父代时会累积额外评估并报告平均分,降低"靠一次好运上位"的概率。
设置:优化 §3.1 的 CS 任务;analyzer 与 implementer 都用 Kimi-K2.6;被优化的内层 agent 也用 Kimi-K2.6(分 challenger/main/verifier 三 prompt)。50 训练论文 + 25 validation 论文。成功准则:weak(4B) ≤65% 且 best weak attempt ≤75%、strong(397B) 在 [60%, 95%]、gap ≥20pt。
结果(Table 7):baseline 62.1% → Iter 124 达 79.6%(6h/session 超时下)。
[!IMPORTANT] 优化器自动发现的 4 条 prompt 修改(233 次迭代里自动挖出,极有启发): 1. 强制"论文特定洞见":加规则要求题考"这篇论文特有的知识、而非通用 ML/CS 知识",并加自测——"若某 solver 不读这篇论文就能答对,则题太易"。直击"弱模型靠合理套话拿高分"。 2. 防上下文泄漏:严格要求 context 只描述问题域与设定、绝不泄露论文的解法;自测——"有人能靠改写 context 的句子答题吗?能就重写"。 3. 只用正权重 rubric + 权重封顶:反直觉发现——删掉负权重 rubric 准则,因为它们历史上误触发、毁掉强模型分数却不提升区分度;改用正整数权重、封顶 7,防单条准则主导。"惩罚错误看似有理,实践中有害。" 4. 结构化 rubric 格式:强制 rubric 用严格 JSON + 整数权重,消除解析错误(如字符串权重
"+8"而非整数 8)。意义:62.1%→79.6% 证明元优化能在无人工改 prompt 的情况下大幅提升数据质量;但绝对值也说明"可靠造出能区分不同能力模型的题"本身很难。
5 相关工作(放进"合成数据 + 自我改进"的坐标系)
[!TIP] ① 合成指令/对齐数据 - Self-Instruct [Wang 2023]:从种子自举指令。奠基。 - Orca [Mukherjee 2023](从强 teacher 蒸馏)、UltraChat [Ding 2023](大规模合成对话)、UltraFeedback [Cui 2023](AI 反馈/偏好)、WizardLM/Evol-Instruct [Xu 2024](自动进化指令增复杂度)、Magpie [Xu 2025](对齐 LLM 极简 prompt 造对齐数据)。 - 共性:把生成当基本固定的 prompting/过滤流水线。AutoData 的差异:把造数据当迭代数据科学过程——生成→评估效用→分析失败→改配方。
[!TIP] ② 接地/可验证/推理型合成数据 - phi 系列"textbook" [Li 2023]、MetaMath [Yu 2024]、MAmmoTH [Yue 2024]、OpenMathInstruct-2 [Toshniwal 2025]:合成数学推理数据显著提升下游。 - Source2Synth [Lupidi 2024]、NaturalReasoning [Yuan 2025]:从真实文档/表格接地生成并按可答性筛选。CoT-Self-Instruct [Yu 2025]:CoT 规划 + 过滤(本文主基线)。 - AutoData 差异:在这些接地/推理感知方法之上,加一个显式 agentic loop,用 solver 行为 + evaluator 反馈把生成数据适配到目标模型。
[!TIP] ③ Agentic 数据生成 / 自动数据科学 - AgentInstruct [Mitra 2024]:用 agentic flow 造大规模多样 post-training 数据(精神上最接近)。AutoData 差异:把造数据当迭代数据科学 loop,用弱强 solver 行为 + judge 反馈调难度,且能元优化 agent 本身。 - DataEnvGym [Khan 2025]:把数据生成建模为序贯决策——agent 观察 student 的对错来造针对性数据。 - AutoData [Ma 2026](同名):多智能体开放网页数据采集——本文视为特例。 - DS-Agent [Guo 2024] / Data Interpreter [Hong 2025]:LLM 自动化数据科学工作流(规划/编码/训练/调试)。AutoData 差异:目标不是采集网页或打数据科学竞赛,而是产出给另一个模型用的训练/评测数据,优化目标是生成数据的学习价值。
[!TIP] ④ 自我改进 / 自博弈 / challenger–solver(与本项目最相关) - STaR [Zelikman 2022]:自举推理链、在成功 rationale 上迭代训练。 - Self-Rewarding LM [Yuan 2024]:模型即 judge 的自奖励迭代偏好训练。见 [[ref05_self-rewarding-language-models]]。 - Self-Challenging [Zhou 2025](生成工具用任务+验证函数)、Absolute Zero [Zhao 2025a](自提+自解可验证推理题、零外部数据,见 [[ref04_absolute-zero]])、SPICE [Liu 2025](语料接地的 challenger–reasoner,同组)。 - AutoData 差异:共享"challenger 给 solver 出题"的想法,但置于更宽的 data-scientist loop——分析 solver 失败、判例质量、调难度,为"可学"而非"仅难"优化。
[!TIP] ⑤ LLM judge / 过滤 / 数据选择 & Autoresearch / scaffold 优化 - 过滤/评判/选择线(Self-Instruct 启发式去重、WizardLM 质控、UltraFeedback、CoT-Self-Instruct 一致性/RM 过滤):都是生成后的静态处理。AutoData 差异:judge 反馈是生成 loop 的一部分,不是过滤静态池。 - Prompt/scaffold 优化:Promptbreeder [Fernando 2023]、Self-Refine [Madaan 2023]、LLMs as Optimizers [Yang 2024]、GEPA [Agrawal 2025];autoresearch 线:The AI Scientist [Lu 2024]、autoresearch [Karpathy 2026](改训练代码)、Meta-Harness [Lee 2026](把 harness 当端到端优化对象,见 [[ref09_meta-harness]])。AutoData 的 §4 正是把这一视角应用到"造数据本身"——外层用内层同一套数据质量准则优化 data-scientist 的 prompt/策略。
6 结论、局限与讨论
- 核心贡献:AutoData 把"合成数据"统一到一个显式的 agentic 数据科学形式化下——生成、评估、失败分析、配方修订、元优化都是 loop 的一部分。这给出了一个把"更强推理模型 + 更大 agentic 算力预算"转化为"更高质量训练/评测数据"的通用机制。
- 未来方向: 1. 更多任务/模型/基线:设想一个通用 autodata agent,覆盖数学/代码/通用指令/安全,从可验证到不可验证、单轮到多轮到 agentic。 2. 集级分析迭代:目前是例级质检,想扩到数据集级(多样性统计、与现有数据集的交互);中间步是批级迭代(造 N 个 → 从本批提炼 → 造下一批)。 3. 从自我改进到 co-improvement:可把 agentic self-instruct 系统当 challenger,与 solver 同时训练权重;并主张不该把人类完全移出 loop——data creation 对能力与安全太重要,"人机 co-research(co-improvement,Weston & Foerster 2025)"是主要研究方向。
- 局限(作者自陈):
- Hacking:遇到 agent 试图"作弊"绕过目标——例如改给 weak solver 的 prompt 让它故意变弱(人为拉大 gap)。目前靠"给 agentic pipeline 加更多约束"部分缓解,计划研究更强的 safeguard,让 agent 有更多自由行动/用工具,而不局限于当前刚性 loop。
- 数据要既难又有意义:CS 任务里发现有些生成题/rubric 过度绑定论文的具体实验数字,而非考"可泛化推理"。
个人思考
⭐ 放进本项目"harness 演化"坐标系(最值得写的一组对照)
AutoData 与 [[ref09_meta-harness]]、[[ref17_self-harness]] 构成一个漂亮的三角——它们都属"把 agent scaffold/harness 当优化对象"这条线,但优化的东西不同:
| 维度 | Meta-Harness (ref09) | Self-Harness (ref17) | AutoData (ref12) |
|---|---|---|---|
| 优化对象 | 任务专用 harness(分类/检索/终端) | agent 运行 harness(DeepAgent 面) | 造数据的 data-scientist agent(prompt/scaffold) |
| 直接产物 | 更好的 harness 代码 | 更好的运行 harness | 更好的训练/评测数据 + 更好的造数据 agent |
| 优化信号 | 任务奖励(Pareto) | pass-rate 非回退门 | 内层"数据质量/弱强 gap/可学性" |
| 外层机制 | 极简外环 + 全历史文件系统 + 强提议者 | 三阶段闭环(挖掘/提案/验证) | 进化 + Boltzmann 采样 + code-editing agent |
| 谁提议改动 | 更强外部 Agent | 模型自己 | analyzer + implementer(Kimi-K2.6) |
| 与本文关系 | AutoData §4 直接引用它当外层优化范式 | 同谱系、可互补 | —— |
我的判断:AutoData 是这条线"往数据侧"的延伸。ref09/ref17 优化的是"模型怎么被调用",AutoData 优化的是"模型吃什么数据长大"。三者其实可以叠成一个完整的自我改进栈:用 Meta-Harness 式外层进化,去优化一个 AutoData 式的造数据 agent,再用它造的数据去 RL 训 solver——这正是作者说的 "co-improvement" 雏形。本项目讲"harness 演化"时,AutoData 提供了一个关键论点:harness 优化的产物不一定是"更好的推理流程",也可以是"更好的训练数据",而后者的收益可能通过权重永久固化下来。
与"自博弈/challenger–solver"谱系的关联
- 对 [[ref04_absolute-zero]]:Absolute Zero 是"零外部数据、自提+自解可验证题"的极端自博弈;AutoData 的弱强对抗保留了外部接地(论文/法律文书)、且不是为了让模型自我对弈变强,而是为了产出给"另一个/同一个 weak solver"训练的数据。AutoData 的 challenger 更像"课程设计者"而非"对手"。
- 对 [[ref05_self-rewarding-language-models]] / [[ref06_spin-self-play-finetuning]]:Self-Rewarding 用模型当 judge 造偏好数据,SPIN 用自博弈迭代微调;AutoData 的 verifier/judge 也是 LLM-as-judge,但判的是"这道题对训练有没有用(弱强 gap / GRPO-suitability)",而不只是"哪个回答更好"。这把 LLM-judge 从"回答质量评估"抬到了"数据训练价值评估"。
方法论启示(可迁移)
- "可学性"是比"难度"更好的优化目标:CS(太易)与 Legal(太难)的对照是全文最聪明的设计——它证明盲目追求"更难"是错的,真正该优化的是"对目标模型能形成有效梯度信号的方差/gap"。这个洞见可迁移到任何课程学习/难度调度场景:先诊断失败模式(太易还是太难),再对症调,而不是单调加难。
- 接受准则要随失败模式定制:CS 用硬阈值、Legal 用灵活 loop judge——同一框架换不同"接受门"。做任何自动化数据/评测生成时,别把接受准则写死。
- "内外层共用同一评估准则"是优雅的元优化接口:内层用数据质量选数据,外层用同一份数据质量选 agent——这个"self-consistent objective"让两层能无缝叠加,值得抄。
- 负权重 rubric 有害是个很实用的工程经验:给 LLM-judge 设计 rubric 时,正权重 + 封顶比"奖惩混合"更稳(惩罚项容易误触发、毁掉好答案的分)。
在我的工作中能怎么用
- 我们这个
pdf-paper-readerskill 若要做"自我改进",AutoData 的思路很直接:把"造精读笔记"当 data creation、把"笔记质量/坐标准确率"当 judge 信号、按失败模式(如图裁偏、引用错位)调 skill 文本——用 loop judge 而非硬阈值判"这篇笔记够不够好"。 - 更实际的一点:如果我们想造评测集(比如给 harness 演化项目造"论文理解题"来测不同笔记 agent),AutoData 的弱强 gap 准则可以直接借来——用一个弱 reader 和一个强 reader 过滤出"有区分度"的题。
- 元优化那 4 条自动发现的 prompt 规则(论文特定洞见、防泄漏、正权重 rubric、结构化 JSON)几乎可以直接搬到我们造评测题的 prompt 里。
开放问题 / 疑问
- Hacking 的边界:作者承认 agent 会"改 weak solver prompt 让它变弱"来刷 gap。当前靠"加约束"压住,但这与"想给 agent 更多自由/工具"直接冲突——如何在'自由探索'与'防 reward hacking'间取平衡是这套范式最脆弱处。
- judge 的可靠性传导:整个信号链(弱强 gap、grpo_suitability、rubric 打分)都建立在 Kimi-K2.6 当 judge 上。虽然 Legal 用 GPT-5 复核过,但judge 本身的系统偏差会不会被 loop 放大?(例如 judge 偏好某类题 → agent 就往那类题收敛。)
- 4B 容量上限:科学推理里 pass@8 上 Combined 反超,作者归因于"4B 接近容量上限"。那么"造更难数据"的收益是否本质受限于 solver 容量?换更大 solver 时,弱强 gap 的最优点会怎么移动?
- 例级 → 集级的鸿沟:目前所有优化都在单例层面(这道题好不好),但"一个好数据集"还需要多样性、覆盖度、与已有数据不重复——作者也把集级分析列为未来工作,说明当前范式还没触及"数据集作为整体"的优化。
- 6.59 轮/题的成本:CS 任务平均 6.59 轮才接受一题、长尾过 10 轮,每轮要跑弱强 solver 多次 + judge。这套"用推理算力换数据质量"的账在什么规模下划算?论文没给完整的 compute/样本成本核算。