Skip to content

合成数据与自我改进(Synthetic Data & Self-Improvement)

"高质量真实数据不够用了"是 2024-2026 大模型训练的中心矛盾——Chinchilla-optimal 需要几万亿 token、GPT-4/Llama-3 已经吃到了公开互联网的天花板。合成数据从"补充"变成了主力增量来源:Llama-3 后训练主要靠拒绝采样、Phi 系列的预训练几乎全靠"教科书合成"、DeepSeek-R1 用自己的推理轨迹蒸馏出一系列小模型。本文把合成数据的五大技术路线、质量控制、模型崩溃风险与规避一次讲透。前置阅读:数据工程与合成数据RLHF/DPO 对齐推理模型与慢思考

面试先背这几句话

  • 合成数据不是"造假数据":它是"用现有强模型 / 规则 / 验证器"生成新的训练样本,让新模型能学到目标能力。核心不是"合成",而是"验证"——能自动判对错的领域(数学、代码)最成功。
  • 五条主线:① Self-Instruct(Alpaca / Vicuna 谱系);② Evol-Instruct(WizardLM / WizardMath / WizardCoder);③ 强蒸馏(用 GPT-4/R1 生成 SFT 数据教弱模型);④ 拒绝采样(Llama 2/3 的后训练主力:采样 N 条 → RM 选最好);⑤ 自我改进(STaR / rStar / rest-EM / R1-Zero,模型自己生成-筛选-再训练)。
  • 数据领域的"新摩尔定律"合成 CoT + 可验证奖励 让数学/代码这两个领域的数据量在 12-18 个月内涨了 100 倍——NuminaMath、OpenMathReasoning、MetaMath、Magicoder 都是这条路径的产物。
  • 头号风险:模型崩溃(model collapse):反复用模型输出训练模型 → 分布尾部信息逐代丢失、多样性塌缩。对策三件套——始终混合真实数据用验证器/RM 过滤控制合成比例

一、为什么合成数据从"补充"变成"主力"?

三个结构性原因:

原因事实
数据墙(Data Wall)高质量公开英文文本约 10-30T token 已被大厂吃透;扩到 100T 只剩低质量网页
训练配方后重心从"堆预训练"转向"预训练 + SFT + RL + 蒸馏",后三阶段几乎完全是合成数据主导
领域数据难获取中文推理、多步数学、专业代码、长文档理解——真实标注贵,合成成本降 10-100 倍

一个具体数据:Llama-3 后训练用了 ~10M SFT 样本、~10M 偏好对,其中绝大部分是合成/半合成(Meta 报告"人工写作只占很小比例")。DeepSeek-R1 生成的 80 万条推理轨迹蒸馏出的 R1-Distill 系列,让 7B 模型都能追上 GPT-4o 的数学能力。

二、五条技术路线全景

2.1 Self-Instruct(Alpaca 谱系)

做法:手写 175 条种子指令 → 让 GPT-3.5 按种子风格扩写 52K 条新指令 → 拿这批合成数据 SFT LLaMA-7B → Alpaca

  • 贡献:证明了"几百美元 GPT-4 API 就能造出一个能对话的 7B 模型"这条路径;
  • 谱系:Alpaca → Vicuna(ShareGPT 对话)→ Dolly(真人指令)→ OpenAssistant;
  • 局限:早期 Self-Instruct 数据分布窄、深度浅,简单任务 SFT 就够,复杂推理不行。

2.2 Evol-Instruct(WizardLM/Math/Coder)

核心创新:不是"横向扩量",而是"纵向加深"。用 LLM 把一条指令"进化"成更难/更复杂的版本:

  • In-depth Evolving:加约束、加推理步骤、加复杂化前提;
  • In-breadth Evolving:改变主题、换问法。

代表

  • WizardLM — 通用指令进化;
  • WizardMath — 数学推理进化,MATH benchmark 显著提升;
  • WizardCoder — 代码进化,HumanEval 超越 GPT-3.5。

这条路径证明了"指令复杂度比"指令数量"对下游性能更重要"。

2.3 强蒸馏(Strong-to-Weak Distillation)

做法:用最强模型(GPT-4、Claude、R1)生成高质量输出,直接 SFT 弱模型。

代表教师学生
VicunaChatGPT(ShareGPT 对话)LLaMA-7B/13B
ZephyrGPT-4 生成 + UltraFeedbackMistral-7B
Nemotron-4 340B Reward 蒸馏Nemotron 教师Nemotron 学生
DeepSeek-R1-DistillR1 生成推理轨迹Qwen2.5-7B/14B/32B、Llama3-8B/70B

为什么小模型蒸馏 R1 效果比自己做 RL 还好? 小模型受限于容量和算力,很难自行探索到"回溯 / 自验证 / 反思"这类复杂推理模式;把 R1 探索出的优质推理轨迹直接教给它,比让它从零摸索高效得多。这是 推理模型页 的核心结论之一。

2.4 拒绝采样(Rejection Sampling)

做法:对每条 prompt 采样 N 条回答 → 用 RM / 规则筛出最好的 → 只用这些进入训练集。

  • Llama 2 / 3 后训练主力:Meta 明确说"拒绝采样是最重要的合成手段";
  • WizardMath / rStar-Math:数学题采样 32-64 条 → 只保留答案正确的 → SFT,等价于"用验证器过滤 CoT";
  • 本质离线的 Best-of-N——用推理时的 test-time compute 换离线数据质量。

拒绝采样与 RLHF 的关系:拒绝采样是开销更小、更稳的替代路径——不用 RL 训练不稳定的 policy,直接用高质量 top-1 做 SFT。Llama 3 报告中 RLHF 前先跑几轮拒绝采样 SFT 是标准做法。

2.5 自我改进(Self-Improvement)

模型自己生成 → 自己筛选 → 训练自己 → 迭代。是最激进也最像 R1-Zero 的一条路径。

方法核心机制
STaR(Self-Taught Reasoner,2022)模型生成 CoT,答对的直接留下;答错的用 hint 重新生成,再当"正确 CoT"训练
rStar-Math(2024)用 MCTS + PRM 生成高质量数学推理链,蒸馏出 7B 数学模型追平 o1-mini
rest-EM(DeepMind)Reject-sample + EM 迭代,理论对应到一个 EM 算法
R1-Zero(DeepSeek)纯 RL + 可验证奖励,模型自发涌现长 CoT / 反思,等价于自我改进的极限
Absolute Zero(2025)让模型自己出题 + 自己解 + 自己验证,完全 self-play

关键限制:必须有可靠的验证器(数学 checker、代码 executor、RM),否则错误会被放大而不是被过滤。

三、按领域看合成数据的现状

3.1 数学推理

数据集规模生成方式
MetaMathQA395KGPT-3.5 rewrite MATH/GSM8K,多种改写视角
NuminaMath(数字合作 & MIT,2024)860K竞赛题人工整理 + LLM 生成 CoT + 验证
OpenMathReasoning(NVIDIA,2025)3B tokenR1/o1 生成 CoT + TIR(工具集成推理),配 3.2M 训练 recipe
DAPO-Math-17k(字节,2025)17k精选 + DAPO 训练用

趋势:从"重写已有题目"→ "合成 CoT" → "合成 CoT + 代码工具(TIR)"三代演进。CoT+TIR 是 2025 数学推理的 SOTA 配方。

3.2 代码

数据集生成方式
CodeAlpacaSelf-Instruct 生成编程指令
WizardCoderEvol-Instruct 加深代码题
Magicoder / OSS-Instruct真实开源代码片段出发,让 LLM 生成"教学任务",覆盖度远超凭空生成
StarCoder2-Data开源代码 + LLM 教程 + 数学
CodeR1 / DeepSeek-Coder-V2用 R1 类推理链 + 单元测试 RL 生成

关键洞察:Magicoder 的 OSS-Instruct 用真实代码"锚定"合成分布——避免了纯合成的"教科书幻觉",是 2024 后代码合成数据的主流做法。

3.3 偏好数据(RLHF 用)

方法描述
Constitutional AI(Anthropic,2022)用"宪法原则"让 AI 自己评判 AI 的输出,生成偏好对(RLAIF)
UltraFeedback(清华,2023)GPT-4 打分给多模型输出排序,产生 64K 偏好对
PairRM(AllenAI)一次生成偏好对 + 排序模型
Nemotron-4 340B用大 RM 自动生成偏好,训 Llama-3 有类似效果

RLAIF vs RLHF:RLAIF 便宜、可扩展、闭环稳定;风险是偏好会向 AI 评审自身的"品味"漂移。Anthropic 内部经验:"RLAIF 不能完全替代 RLHF,但可以把人工偏好用得更少。"

3.4 中文与多语

  • BELLE / Firefly / MOSS — 早期 Chinese Alpaca 谱系;
  • YAYI2 / DeepSeek-V3 后训练 — 大规模中文合成 + 拒绝采样;
  • 多语翻译 SFT — 用 GPT-4 翻译英文 SFT 数据,覆盖低资源语言。

四、数据质量控制:合成 ≠ 有效

4.1 数量 vs 质量:LIMA 观察

LIMA(Meta,2023):1000 条精选指令 SFT LLaMA-65B,效果优于用 52K Alpaca 数据 SFT。结论:SFT 阶段质量 >> 数量

  • Alpagasus 用 GPT-4 筛掉 Alpaca 里 90% 的低质数据,效果反而更好;
  • DEITA / IFD 分数 用 LLM 打分自动选高质量数据。

:预训练阶段仍是"越多越好",SFT 才是"精而不多"——这个反转是面试题常问的。

4.2 语义去重

  • 表面去重(MinHash)→ 只去字面重复;
  • 语义去重(SemDeDup、SimSeek)→ Embedding 相似度阈值,能干掉"改写但意思相同"的样本;
  • 通常能砍掉 20-40% 数据、下游指标反而略升。

4.3 难度平衡(Curriculum)

  • 全是简单题 → SFT 完模型只会做简单题;
  • 全是难题 → 训练发散、收敛慢;
  • 实践:难度分层 + 从易到难 curriculum,或动态过滤(DAPO 的动态采样思路——扔掉过易过难样本)。

4.4 数据配比

后训练混合数据的经验配比(Llama 3 / Qwen 2.5 报告口径):

  • 通用对话 : 数学 : 代码 : 安全 : 多语 ≈ 40 : 20 : 20 : 10 : 10;
  • 强推理阶段:数学 + 代码可占 60-80%;
  • 每个类别内部再做"高质量精选 40% + 广度覆盖 60%"。

五、模型崩溃(Model Collapse)

Shumailov et al. 2024(Nature):反复用模型输出训练模型,会导致:

  • 早期阶段:分布尾部(罕见事件)逐代丢失;
  • 晚期阶段:分布中心也开始退化 → 生成越来越单调、越来越"典型";
  • 极限:模型只输出高概率 token,多样性彻底崩塌。

数学上是递归采样导致的方差累积——每一代模型都在采样上一代的近似分布,误差累积。

5.1 会不会真的发生?

实践中:如果完全用合成数据递归训练,几代后可测量地退化。但从没有大厂真的这么干

  • Llama 3 训练数据是"真实 + 合成"混合;
  • Phi 系列虽然重合成,但基础语料仍含真实数据;
  • DeepSeek-R1 用真实数学题和真实代码库做 verifier。

5.2 三件套对策

对策说明
锚定真实数据始终保留一定比例(>30%)真实高质量数据,防止分布漂移
验证器过滤数学 checker、代码执行、RM 打分——只留通过验证的合成样本
多样性度量用 embedding 熵、n-gram 多样性等指标监控,触发告警时上采样人写数据

验证器优先原则能自动验证的领域(数学、代码、事实性问答)合成数据最安全;开放域生成(诗歌、创意写作)风险最大——因为没有"对错"就没有过滤器。

六、合成数据的伦理与法律

  • 训练数据版权:用 GPT-4 API 生成的数据训练竞争模型是否违反 OpenAI ToS 一直有争议("竞争模型条款")。开源社区常绕道用开源强模型(Llama 3、Qwen、R1)生成。
  • 模型溯源:合成数据训练的模型经常"暴露教师"——问它"你是谁"会说自己是 ChatGPT,需要专门 SFT 修正身份。
  • 数据污染:合成数据可能包含教师模型在评测集上见过的答案 → 下游评测虚高。清洗合成数据前先做benchmark 污染检测(n-gram 匹配、embedding 匹配)。

高频追问

Q:合成数据能否完全替代真实数据? 不能。① 真实数据是"分布锚点",防止 model collapse;② 真实数据里的"长尾罕见知识"是合成模型无论怎么改写都造不出来的;③ 有版权和溯源的真实数据是法律合规的最终依据。合成数据是"扩量 + 领域增强",不是"替代"。

Q:Self-Instruct 和 Evol-Instruct 的核心差别? Self-Instruct 横向扩量——用种子生成更多样但相似难度的指令;Evol-Instruct 纵向加深——把一条指令逐步进化得更难更复杂。WizardLM 系列证明"复杂度 > 数量",同样规模数据下 Evol-Instruct 训出的模型在复杂任务上显著强于 Self-Instruct 版本。

Q:拒绝采样为什么在 Llama 3 里被称为"最重要的合成手段"? 因为它兼顾了质量、稳定性和简单性:① 直接用 RM 选 top-1 → 质量高;② 只做 SFT 不做 RL → 训练稳定,避免 PPO 的调参地狱;③ 天然离线,可大批预生成、缓存复用。Meta 的做法是"拒绝采样 SFT 多轮 + 一轮 DPO 收尾",比"直接 PPO"更省钱、更可控。这条路径 2024 后被 Qwen、DeepSeek 等广泛复制。

Q:小模型蒸馏 R1 为什么比自己做 RL 强? 探索能力受限。小模型(7B)在 RL 训练时很难自发探索到 R1 那种"反思-回溯-验证"的长 CoT 模式(这需要模型有足够的表征能力);而 R1 已经把这些模式具象化在它的输出里了——小模型 SFT 上这些轨迹,等于"跳过探索、直接模仿"。这是 推理模型页 的核心工程结论。

Q:STaR / rStar 和 R1-Zero 的区别? 都是"自我改进",但机制不同:

  • STaR:模型生成 CoT → 答对留下 → SFT,是离线迭代
  • rStar-Math:加入 MCTS + PRM 精细搜索,把高质量推理链筛出来,然后蒸馏;
  • R1-Zero在线 RL 直接用 GRPO 训练,跳过 SFT,模型自发涌现推理。 STaR/rStar 是 SFT 系"离线自蒸馏",R1-Zero 是 RL 系"在线自改进"。

Q:LIMA 说"1000 条精选 SFT 就够",那 Llama 3 为什么还要 10M 样本? LIMA 观察适用于"基础对话能力"——1000 条高质量样本足以激活预训练模型已有的知识和对齐。但领域能力(数学、代码、多语、长上下文、Agent 工具调用)需要专门覆盖,量还是要够。所以现代配方是"精选核心对话 + 广覆盖专项能力"两层结构,总量仍要百万到千万级。

Q:模型崩溃在实际生产中真的发生吗?纯递归合成的实验里可复现,但大厂实际配方从不纯递归。Llama 3 / DeepSeek 都保留真实数据、加验证器过滤、控制合成比例。风险在长期迭代——如果一个模型的输出被互联网大量抓取、又被下一代训练数据吸收,理论上会形成慢性污染。这是 2025 年学界呼吁"标记 AI 生成内容"(水印、C2PA)的部分动机。

Q:RLAIF 会不会陷入"AI 评审 AI"的偏见循环? 会。风险两类:① 风格漂移——AI 评审偏爱"AI 味"的输出(长、结构化、免责声明多);② 能力上限锁死——RLAIF 只能训到评审模型的能力上限,无法超越。Anthropic 的做法是"Constitutional AI + 少量高质量人工偏好锚点",用宪法原则约束评审、用人工样本校准漂移。RLAIF 不是 RLHF 的完全替代,而是"人工偏好数据量放大器"。

Q:怎么防止合成数据污染 benchmark?n-gram 匹配:训练集/合成集与常见 benchmark 做 13-gram/33-gram 匹配,命中即剔除;② embedding 相似度:语义级去污染;③ 独立验证集:用私有或最新 benchmark(如 LiveCodeBench, GPQA 更新版)做防污评估;④ 溯源合成数据:明确记录每条合成样本的教师模型和生成时间,方便回溯。GPT-4/Claude 蒸馏数据里混入过 MMLU/HumanEval 答案的案例在开源社区多次被抓出。

Q:合成数据在预训练阶段和 SFT 阶段的用法有何不同?

  • 预训练:追求广度、量大——教科书合成(Phi)、多语翻译扩充、代码合成,数据量到 T 级;重点是覆盖,不是精雕。
  • SFT:追求深度、质精——Evol-Instruct 加深、拒绝采样选优、LIMA 式精选,量在 10K-10M;每条样本都要打磨。
  • RLHF/RL 阶段:追求可验证性——数学题、代码题、RM 打分,能自动判"好坏"的样本才能进 RL loop。 三个阶段的合成配方本质是"广 → 精 → 可验证"三层递进。

基于 MIT 许可发布