harness_evolve/notes/ref12_autodata.md

AutoData: An Agentic Data Scientist to Create High Quality Synthetic Data

一句话总结:把"造训练/评测数据"这件事本身变成一个会自省的 Agent 数据科学家——它不是一次性 prompt 生成,而是生成→"眼看"质检+跑分→提炼 learnings→改写生成配方地循环,直到数据"难度刚刚好、能让弱模型爬坡";更狠的是,可以用 meta-harness 式的外层进化把"这个数据科学家 Agent"本身也优化一遍,让它学会造更强的数据。


TL;DR 速览

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: 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: 弱-强 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: AutoData 造 CS 研究题的过程示例

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-LegalPRBench-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: data-scientist Agent 的元优化架构

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 当代码迭代改"的进化优化框架,每次迭代:

\[ \Pr[\text{选中候选 } c \text{ 作父代}] \;\propto\; \exp\!\left(\frac{\text{score}_c}{T}\right),\qquad T=0.1 \tag{Boltzmann 采样} \]
步骤 内容
(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 结论、局限与讨论


个人思考

⭐ 放进本项目"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"谱系的关联

方法论启示(可迁移)

  1. "可学性"是比"难度"更好的优化目标:CS(太易)与 Legal(太难)的对照是全文最聪明的设计——它证明盲目追求"更难"是错的,真正该优化的是"对目标模型能形成有效梯度信号的方差/gap"。这个洞见可迁移到任何课程学习/难度调度场景:先诊断失败模式(太易还是太难),再对症调,而不是单调加难。
  2. 接受准则要随失败模式定制:CS 用硬阈值、Legal 用灵活 loop judge——同一框架换不同"接受门"。做任何自动化数据/评测生成时,别把接受准则写死
  3. "内外层共用同一评估准则"是优雅的元优化接口:内层用数据质量选数据,外层用同一份数据质量选 agent——这个"self-consistent objective"让两层能无缝叠加,值得抄。
  4. 负权重 rubric 有害是个很实用的工程经验:给 LLM-judge 设计 rubric 时,正权重 + 封顶比"奖惩混合"更稳(惩罚项容易误触发、毁掉好答案的分)。

在我的工作中能怎么用

开放问题 / 疑问