合成数据与自我改进
合成数据有用,是因为生成成本低。危险也来自同一个原因:模型可以迅速生成数百万条看似合理的记录,远早于任何人弄清它们是否正确、是否足够多样,又是否合法可用。因此,工程上的核心问题并不是怎样生成数据,而是什么证据足以让一条生成记录安全地进入训练。
自我改进也需要同样谨慎地定义。模型用自己写的文本训练,并不等于它已经改善。所谓改善,是指后续模型在独立评测上取得改善。从生成文本到证明改善之间,还隔着任务来源、候选生成器、接纳信号、更新规则与迭代安排。其中任何一项都可能提供有效的优化压力,也可能悄然破坏整个回路。
合成数据描述来源,不描述算法
只要一条记录中有实质内容由模型或模拟器生成,它就是合成记录。这个定义说明的是记录从哪里来,而不是它将怎样使用。同一条生成回答可以成为 SFT 目标、偏好对的一侧、强化学习的 rollout、评测候选,也可以最终完全不用。
如今被归入合成数据的研究脉络有好几条。Hinton、Vinyals 与 Dean 在 2015 年系统化了知识蒸馏,让学生模型学习教师模型软化后的输出分布 (Hinton et al. 2015)。后来的 STaR 选择答案可核查的模型生成推理过程,并重复这一流程 (Zelikman et al. 2022)。Constitutional AI 使用模型生成的批判、修订和偏好 (Bai et al. 2022)。Self-Instruct 则生成指令、输入与回答,过滤无效或过于相似的样本,再用余下数据微调 (Wang et al. 2023)。这些方法彼此相关,却不是同一条历史阶梯上的不同阶段。
LIMA 提供了一项重要但范围较窄的结果。在它的实验环境中,1,000 条经过仔细筛选的示范便能带来很强的指令遵循表现 (Zhou et al. 2023)。然而,LIMA 并没有测试自训练回路。它支持的结论是精心选择数据很重要,高质量示范很有价值;它不能证明模型生成数据或 best-of- 筛选一定有效。
设计评审时,最好把六个问题分开:
| 设计选择 | 常见选项 | 可能出错之处 |
|---|---|---|
| 提示来源 | 人工语料、模板、环境、教师、当前模型 | 任务范围狭窄、基准泄漏、遗漏罕见情形 |
| 回答生成器 | 教师、当前策略、旧策略、搜索、模型混合 | 错误彼此相关、候选支持不足、行为过时 |
| 传递的信号 | 软词元分布、回答、排序、标量奖励、接纳标记 | 信号可能丢失不确定性,或奖励捷径 |
| 接纳信号 | 不筛选、人工评审、习得评判者、确定性检查器 | 错误接纳、错误拒绝、评估者偏差 |
| 更新规则 | SFT、蒸馏损失、偏好优化、策略梯度强化学习 | 合适的信号仍可能被错误的目标函数使用 |
| 迭代安排 | 单轮、定期刷新、回放、自我博弈 | 反馈错误与分布漂移可能逐轮累积 |
这些列中的选择可以自由组合。教师可以生成候选,由奖励模型排序,再让较小的学生模型用 SFT 学习。当前策略也可以同时生成问题与回答,由执行器给强化学习提供奖励。把两条流水线都称为「合成训练」,掩盖了真正决定系统行为的区别。
采样创造机会,不创造正确性
假设提示 有一组可接受回答。令 表示生成器给回答 的概率, 表示独立理想评判者是否认为该回答可接受。单次采样的成功概率是
如果 个候选是在给定 后彼此独立、且成功概率都为 的采样,那么至少出现一个可接受回答的概率,也就是候选覆盖率,为
这里, 是提示, 是候选回答, 表示生成器参数, 是回答分布, 是独立的可接受性检验, 是单次成功概率, 是采样次数, 是最终覆盖率。这个公式描述的是独立采样假设下出现可接受回答的机会。它并不表示实际选择器一定能找到它,也不表示样本真的相互独立,更不表示增加采样必然带来很多新的多样性。
import numpy as np
import matplotlib.pyplot as plt
counts = np.arange(1, 21)
for p in (0.1, 0.3, 0.5):
coverage = 1 - (1 - p) ** counts
plt.plot(counts, coverage, marker="o", markersize=3, label=f"p={p}")
plt.xlabel("独立候选数 n")
plt.ylabel("候选覆盖率 C_n")
plt.title("独立采样下的理想覆盖率")
plt.ylim(0, 1.02)
plt.legend()
plt.show()
print("当 p=0.10、n=20 时,候选覆盖率为",
round(1 - (1 - 0.10) ** 20, 2))
现在把理想评判者换成实际过滤器 。令 表示它在提示 上的真阳性率, 表示假阳性率。它的选择精确率为
在这个式子里, 表示过滤器接纳回答,, 是假阳性率。真正可接受的样本很少时,即使 很小,错误回答也可能污染接纳集。假阴性会造成相反的问题:过滤器丢掉正确但不熟悉的回答,使训练分布越来越窄。
筛选只是重新加权生成器,并不会凭空创造正确性。若 表示流水线保留回答 的概率,那么保留分布为
其中, 汇总了全部接纳阶段, 是提示 的总体接纳概率, 是归一化后的保留回答分布。只有当生成器偶尔能产生有用回答,而且接纳流水线能够可靠地区分它们时,增加采样才有帮助。
五种生成数据的用法并不相同
教师蒸馏
在经典知识蒸馏中,固定教师提供软化后的词元分布,学生学习匹配这份分布。在回答蒸馏或序列蒸馏中,教师改为解码完整文本,学生再用普通的词元级似然学习这些硬目标 (Kim and Rush 2016)。后一种形式在语言模型中很常见,却丢掉了教师表达的大部分不确定性。
教师通常是回答生成器,而不是候选生成之后才介入的评判者。教师输出可以传递格式、风格、领域行为和推理模式,也会传递拒绝模式、系统性错误与覆盖缺口。没有一条普适定理要求学生在所有下游评测中都低于教师,学生在某些蒸馏环境中超过教师 (Furlanello et al. 2018)。更准确的限制是:如果教师从未产生某类有用输出,那么只用教师样本就没有直接证据去纠正这处盲点。
合成任务与示范
模型不仅能生成回答,也能生成提示。Self-Instruct 从种子任务开始,让模型创造新指令和实例,移除无效或相似的项目,再为保留任务生成答案 (Wang et al. 2023)。这种方法可以低成本扩展小型种子集,但哪些任务能够出现,仍受生成器影响。如果流水线只是生成数千个熟悉任务的改写,那么行数增加了,覆盖范围却没有扩大。
因此,任务合成需要分别检查提示的新颖性、答案质量、难度,以及与目标人群的相关性。提示生成与回答生成也应分别记录来源,否则模型写出的错误前提可能被误认为一道困难但答案有效的任务。
经过筛选的自训练
经过筛选的自训练会采样候选,给它们评分或进行核查,再对选出的回答执行 SFT。STaR 根据答案正确性选择生成的推理过程,然后迭代训练 (Zelikman et al. 2022)。RAFT 为每个提示采样多个候选,保留奖励排名最高的回答,并对筛选集微调 (Dong et al. 2023)。best-of- 推断在选出回答后便结束;拒绝采样微调则把选出的回答固化成训练数据,并更新模型。
这里必须记录策略来源。只有当前学习器生成候选时,候选收集在当时才是同策略的。RAFT 也可以使用单独的生成器,而且任何保存下来的筛选数据都会随着学习器变化而过时。把所有筛选后的 SFT 数据都称为「同策略」会混淆收集来源与更新算法。除非同时保留胜者与败者供偏好目标使用,否则筛选记录只是示范,并不是偏好对。
AI 反馈
AI 评判者把筛选扩展到缺少确定性检查器的属性,例如语气、有用性或是否遵循成文原则。Constitutional AI 有两种不同用法:监督阶段生成批判与修订,再对修订后的回答微调;RLAIF 阶段生成 AI 偏好,训练偏好模型,并把这个模型用作强化学习奖励 (Bai et al. 2022)。该实验减少了无害性标注所需的人力,却没有移除人类编写的原则、提示,也没有移除所有关于有用性的人工监督。
覆盖范围更广,代价是判断只能近似。习得评判者可能有位置偏差、冗长偏差、自我偏好与领域偏差。对代理信号优化得越强,代理分数可能继续提高,独立指标反而下降 (Gao et al. 2023)。因此,与构造数据时所用评判者一致,不能证明训练后的模型真的改善了。
验证器引导的学习与自我博弈
确定性检查器可以提供比习得评判者更强的证据,但只针对检查器实际编码的属性。令 表示回答 是否满足提示 的预期要求, 表示已经实现的验证器是否接纳它。验证器满足可靠性时,
这里的完备性则表示
可靠性防止错误回答被接纳,完备性防止有效回答被丢弃。单元测试、答案提取器、证明陈述与沙箱执行器,都可能错误表达原本的要求。例如,EvalPlus 扩充了 HumanEval 的测试,并淘汰了一些原测试曾经接纳的程序 (Liu et al. 2023)。最终数字正确,也不能证明生成推理中的每一步都正确。
学习得到的过程奖励模型仍是代理。Let's Verify Step by Step 训练了结果奖励模型和过程奖励模型,其中过程模型使用 800,000 个人工步骤级标签,并比较了二者在 best-of- 选择中的表现。这个实验并没有用强化学习训练生成器 (Lightman et al. 2024)。
RLVR 是另一种更新方式。它把自动奖励直接用于策略 rollout,而不一定先把通过的轨迹保存下来做 SFT。DeepSeek-R1-Zero 从预训练基座开始强化学习,没有监督式推理示范,但仍使用经过筛选的训练问题,以及基于规则的准确率与格式奖励。完整的 DeepSeek-R1 流程后来还组合了冷启动数据、强化学习、拒绝采样、SFT 和另一个强化学习阶段 (Guo et al. 2025)。这项工作为验证器引导的强化学习提供了证据,却不能证明所有此类系统都是生成、过滤、SFT 的数据飞轮。
自我博弈改变的是任务分布由谁生成。Absolute Zero 让同一个预训练策略分别扮演出题者和解题者,仍依赖人工设计的任务模式与代码执行器。它所说的「零数据」是后训练阶段没有外部任务数据,不等于没有预训练数据或没有人工设计 (Zhao et al. 2025)。R-Zero 则共同训练 Challenger 与 Solver,并用多数票产生伪标签。这些标签并不是精确验证器,而且论文报告多轮训练后性能下降 (Huang et al. 2025)。两套系统不能只因都会生成课程就被视为同一种方法。
迭代会改变数据分布
只使用一轮合成数据,与递归替换训练数据,风险并不相同。令 表示训练轮次, 表示第 轮模型, 表示由 生成的数据, 表示保留的真实数据或经过独立核查的数据。以下三种模式经常被混为一谈:
| 模式 | 下一轮数据 | 运行含义 |
|---|---|---|
| 替换模式 | 每一代生成数据都替换此前来源 | |
| 固定锚点模式 | 每个训练批次都保留预先选定的真实数据采样权重 | |
| 累积模式 | 早期真实记录和各轮合成记录都继续可用 |
这里, 是下一轮训练数据集, 是它的采样分布, 和 分别表示真实数据与当轮合成数据上的分布, 是采样真实数据的概率。实际采用累积模式时仍须写明权重,因为集合并集并不能决定每种来源的采样频率。
Shumailov 等人证明,不加区分的递归训练会造成模型崩溃。原始分布的罕见部分先消失,随后才出现更广泛的退化 (Shumailov et al. 2024)。这项结果不能缩写成「合成数据会导致崩溃」。Gerstgrasser 等人在替换模式中也观察到崩溃,却在其研究的累积模式中避免了崩溃 (Gerstgrasser et al. 2024)。这些是取决于训练模式的结果,不是普适的安全混合比例。真实数据锚点有助于保留当前生成器无法重建的证据,尤其是罕见模式。
递归回路还有一些会被总体质量掩盖的失效方式:
| 失效 | 早期征兆 | 必需检查 |
|---|---|---|
| 错误接纳 | 回路内部得分提高,独立得分停滞 | 按切片审计接纳集精确率 |
| 错误拒绝 | 不常见但有效的回答消失 | 测量罕见有效样本的召回率 |
| 多样性损失 | 措辞、语法或解题路径反复出现 | 跟踪语义聚类与长尾覆盖 (Guo et al. 2024) |
| 基准污染 | 留出集分数异常陡增 | 去除精确重复、近似重复与语义重复 (Yang et al. 2023) |
| 课程漂移 | 生成任务越来越简单或格式错误 | 对照固定任务规格比较难度与有效性 |
| 递归依赖 | 少数生成器支配大量后代样本 | 记录父记录 ID 与递归深度 |
建立可审计的回路
生产中的基本单位不是「合成数据集」,而是带有接纳记录和退出决策的版本化轮次。最小实现可以写成:
输入:冻结的任务规格、来源混合 R、生成器 M_r、接纳流水线 A_r
1. 从获批来源创建提示,并排除私有评测材料。
2. 生成候选,记录模型、模板、检索、解码与随机种子版本。
3. 在质量过滤之前,先去重并去污染提示与回答。
4. 分开执行确定性检查、习得评判者与策略规则,分别作出决定。
5. 在分层独立审计中估计假阳性率与假阴性率。
6. 用接纳记录构造 D_(r+1),并保留经过刻意设计的真实数据锚点。
7. 按声明的更新规则训练候选模型 M_(r+1)。
8. 在从未向生成器和选择器开放的验证门槛上比较 M_(r+1) 与 M_r。
9. 只有能力、安全、多样性与污染门槛全部通过时才发布。
10. 一旦越过任何预先声明的回滚阈值,就停止回路并隔离该轮数据。
这里,、 与 沿用上文定义, 是第 轮的完整接纳流水线。逐行来源记录至少应包含:来源与许可证、生成器检查点、提示模板、检索语料库、解码参数、随机种子、父记录、递归深度、评判者或验证器版本、阈值、变换、去污染结果,以及接纳原因。缺少这条血缘链,后续发现的错误便无法追踪或删除。
作为验证门槛的独立留出集必须位于数据构造之外。它不能出现在生成提示、检索、评判者训练、验证器构造或接纳阈值调优中。它可以决定是否发布和何时提前停止,因此还应另留一份使用频率更低的私有最终测试集。验证评估者的失效方式应与选择器不同,因为选择和认证都使用同一个评判者,只能测到自洽性。
每一轮至少跟踪四组指标:
| 指标组 | 示例 |
|---|---|
| 数据构成 | 真实与合成比例、递归深度直方图、来源记录完整率 |
| 过滤器行为 | 接纳率、假阳性率、假阴性率、按切片统计的选择精确率 |
| 覆盖范围 | 任务、语言、难度、罕见类别与语义聚类覆盖 |
| 外部结果 | 独立能力和安全变化、污染率、选择器与评估者分歧 |
还要预先声明停止与回滚阈值。如果外部得分下降、长尾覆盖收缩,或选择器分歧超过限值,就应停止回路,隔离新记录,回退检查点,并检查被错误接纳的样本与遭错误拒绝的有效样本,再决定是否生成下一轮。
自我改进能证明什么,不能证明什么
当有用回答已经偶尔出现时,筛选训练可以让这种行为更可靠。任务生成可以扩充课程。强化学习可能发现并未作为示范文本出现的策略。蒸馏可以把行为传到另一个模型。这些观察都不能证明自主改进可以无限延续。
迭代使用模型生成数据究竟能把能力推进多远,目前仍没有定论。固定教师限制了模仿可直接获得的证据,却不意味着学生所有下游得分都必然低于教师。可靠的验证器可以在它所检查的属性上支持超越示范者的改善,但验证规格和任务分布仍构成边界。习得评判者可以覆盖更广的行为,却引入一个可能在优化中偏离人类判断的代理。因此,自我改进必须在独立留出集上跨轮次取得改善,不能只看构造训练集的选择器是否给出更高分。
可核查程度决定回路有多少部分能够安全自动化。当规格完整且检查器可靠时,形式化证明、程序执行和答案核查可以提供很强的证据。开放式的有用性、品味与社会判断通常需要习得评估者或人。上层训练方法无法让下层证据变得比它本身更强。证据不完整时,系统仍须保留人工审计、独立测试和运行时控制。
真正需要问的并不是数据来自人还是模型,而是记录中的哪些部分是合成的,哪些独立证据准许它进入训练,它代表什么分布,以及什么条件会叫停下一轮。能够回答这些问题的回路是一条数据流水线,不能回答的回路只是自动重复自己。
延伸阅读
- Bai et al., “Constitutional AI: Harmlessness from AI Feedback” (把性情挪进模型), 2022. arXiv:2212.08073Constitutional AI 通过成文原则、自我批判、修订与 AI 反馈,训练无害但不过度回避的助手行为。
- Zhou et al., “LIMA: Less Is More for Alignment,” 2023. arXiv:2305.11206LIMA 表明,仅用 1,000 条精心筛选的提示-回复对对 65B LLaMa 模型进行监督微调(无需 RLHF)即可实现强对齐效果,支持了"表层对齐假说"。
- Dong et al., “RAFT: Reward rAnked FineTuning for Generative Foundation Model Alignment” (拒绝采样微调), 2023. arXiv:2304.06767RAFT(奖励排序微调)通过迭代采样模型输出、用奖励模型评分并仅对高分子集做监督微调,以稳定的方式替代 PPO 完成大语言模型与扩散模型的对齐。
- Guo et al., “DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning” (通过大规模 RL 实现推理,从纯 RL 中涌现), 2025. arXiv:2501.12948DeepSeek-R1 展示了大规模可验证奖励强化学习能引出长推理行为;R1-Zero 不用监督冷启动直接 RL,R1 则加入多阶段训练以改善可读性和稳定性。
- Lightman et al., “Let's Verify Step by Step” (作为逐步验证的过程监督), 2023. arXiv:2305.20050《Let's Verify Step by Step》在固定生成器的 MATH Best-of-N 选择中比较结果监督与过程监督,并发布约 80 万条人工步骤标签的 PRM800K。
- Zhao et al., “Absolute Zero: Reinforced Self-play Reasoning with Zero Data” (同一个策略在代码执行器验证下自行提出并解决任务), 2025. arXiv:2505.03335Absolute Zero 让同一个模型自己提出最有学习价值的任务并求解,两个角色都由代码执行器核查,在不用任何外部数据的情况下取得强的代码与数学推理表现。
- Huang et al., “R-Zero: Self-Evolving Reasoning LLM from Zero Data” (在没有预先存在的任务与标签数据集时,让挑战者模型和求解器模型共同演化), 2025. arXiv:2508.05004R-Zero 从同一个基座初始化出题的 Challenger 与答题的 Solver 并让二者共同演化:Challenger 不断提出更难的任务,Solver 学着解决,从零外部数据生成自己的课程。
- Shumailov et al., “AI models collapse when trained on recursively generated data” (替换会崩溃,累积保持有界), 2024. nature.com在大语言模型自身合成输出上递归训练会导致模型崩塌,跨代累积后输出分布退化为噪声。
评论
登录后评论