Home
avatar

ychhh

合成与蒸馏

07 合成与蒸馏(综述 §2.3.6)

定位:五大动机与一条铁律

合成数据解决五个问题:① 数据稀缺(小数据集增广);② 隐私(敏感数据换合成);③ 多样性不足(生成欠代表案例);④ 缺推理数据(代码、CoT);⑤ 缺对齐数据(人或 LLM 标注更好的回答)。

铁律:毒性/偏见会从教师模型继承甚至放大 → 所以每条合成路线都自带验证/过滤机制。综述概括三大范式:样本驱动生成、域对齐合成、推理中心格式化。最大挑战:推理链合成的严谨性 + 成本-质量平衡。

0 一图看懂:按目标选路线 + 通用闭环

按缺什么选路线:

缺什么?                      走哪条线                        代表
─────────────────────────────────────────────────────────────────
缺指令/对齐数据     →    种子驱动 or 零种子        →  Self-Instruct / AgentInstruct
                        (有种子) / Magpie(零种子)     / PersonaHub(十亿人格)
缺推理数据          →    答案可验证吗?             →  可验证:STaR / PaD / Case2Code / MUSTARD
                                                      不可验证:Orca / MathShepherd(过程监督)
缺多样性/规模       →    视角驱动                   →  PersonaHub / GLAN / KPDDS
怕模型坍缩          →    半合成(在人类数据上改)      →  token editing / WRAP

所有靠谱路线共享一个闭环(验证是质量闸门):

      ┌──────────────────────────────────────────┐
      ↓                                          │
种子/原始文本 → 教师模型生成 → 验证器判真假 ──→ 过滤/修正 → 合成数据集
                              │                    │
                    程序可执行验证(PaD/Case2Code)    迭代:废料回流再生成
                    形式化证明验证(MUSTARD)          (STaR/MetaMath 的 bootstrap 循环)
                    过程级监督(MathShepherd)
                    LLM 评审(多分支CoT/KPDDS投票)

总分类(Table 7 + 按阶段展开)

阶段类别代表方法
蒸馏推理增强CoD/CoT 提示蒸馏、PaD(程序验证)、MCKD(多阶段协作)
预训练增强蒸馏+微调+提示JiuZhang3.0、Instruction PT、MathGPT、WRAP、跨语言合成、Case2Code
SFT 增强提示GLAN、KPDDS、MMIQC、AgentInstruct、Self-Instruct
推理增强提示/验证MUSTARD、多分支 CoT、Satori(COAT)、MathShepherd、LIMO
RL标注HH-RLHF(人标偏好)、LLM-RLHF(judge 自动化)
RAG隐私关键信息保留 + 敏感细节合成改写

1 知识蒸馏(用大模型造数据训小模型)

  • CoD / CoT 提示蒸馏

    一句话:把大模型的结构化输出(高密度摘要 / 分步推理)当训练信号蒸馏给小模型。

    细节:CoD(Chain-of-Density)迭代往摘要里加实体提升信息密度;CoT 引导数学等推理任务分步推理。用 GSM8K + Llama-3.1-405B 造数据,微调 Llama-3.1-8B/70B,配简化提示——兼顾效率与任务专精。

  • Orca(解释轨迹蒸馏,本地论文)

    一句话:论文摘要原话——小模型模仿大模型时常「学到风格、没学到推理过程」,Orca 让 13B 模型从 GPT-4 的解释轨迹、逐步思维过程和复杂指令里学推理过程本身(Explanation Tuning)。

    细节:

    • 数据:大规模且多样的模仿数据 + 审慎采样选择,来自 FLAN-v2 体系;系统消息(system message)控制生成方式;ChatGPT 当助教辅助引导;
    • 关键数字(论文摘要):复杂零样本推理上超 Vicuna-13B 100%+(BBH)、42%(AGIEval);BBH 上追平 ChatGPT;SAT/LSAT/GRE/GMAT 等考试与 ChatGPT 差距 4 分以内(零样本、无 CoT)。

    定位:「学过程不学风格」是蒸馏合成数据的分水岭,后面 MathShepherd 的过程监督是它的量化升级。

  • PaD(Program-aided Distillation)

    一句话:用「可执行的程序」替代有错误中间步骤的自然语言 CoT——编译器当免费验证器。

    细节:三件套:① 程序化推理——LLM 生成可执行代码(数学题→Python)替代自然语言 CoT,编译器自动滤掉逻辑错误;② 错误注入训练——合成注入 AST 级错误(如 NameError)让模型学纠错;③ 语义验证——解码时按语义对齐分(余弦相似度)选步骤,防错误传播。

  • MCKD(多阶段协作 KD)

    一句话:标注极贵时的省钱方案——用两个小模型互相交叉标注、迭代精炼伪标签,50 条标注 ≈ 传统 500 条。

    细节:面向低资源场景(生物医学解析、句法/语义解析)。三步:① GPT-3.5 给无标注数据打伪标签;② 数据切两半、一对 T5-Base 互相交叉标注(降噪声过拟合),迭代 3 轮精炼标签;③ 精炼后标签训单模型。效果:50 条标注 ≈ 传统 500 条的监督性能。

2 预训练数据增强

  • Phi-1(教科书级合成数据,本地论文)

    一句话:论文摘要原话——1.3B 的 Transformer 在 8 张 A100 上训 4 天,用「textbook quality」的 6B 网络 token + GPT-3.5 合成的 1B 教科书与练习 token,HumanEval pass@1 达到 50.6%——沿着 TinyStories 的思路证明数据质量能改写 scaling law 的形状。

    细节:

    • 数据配方:网络筛选的「教科书质量」代码(6B)+ GPT-3.5 合成的教材与习题(1B);
    • 关键数字(论文摘要):HumanEval 50.6% / MBPP 55.5%;350M 的 phi-1-small 用同管道也有 45% HumanEval;
    • 定位:「合成教科书数据」路线的奠基作,直接启发了后续的合成预训练增强。
  • WRAP(改写合成)

    一句话:把网页文本用 LLM 改写成多种「教材风格」,改写版和原版混着训——预训练提速 3 倍。

    细节:Mistral-7B 把 C4 网页文本改写成四种格式——① 儿童易懂(简单词汇句式);② 标准百科体;③ 学术体(复杂术语、简洁学术句式);④ 多轮对话。混合改写与原始数据训练 → 训练快 3×、Pile 上 PPL 降 50%。

  • JiuZhang3.0(数学,蒸馏路线)

    一句话:先用 GPT-4 的 QA 对「教」出一个会出数学题的中型模型,再让它大规模生产数学语料——出题能力从教师蒸馏到合成器。

    细节:① 用 GPT-4 生成的 QA 对微调 DeepSeekMath-7B 模仿其生成;② 梯度相似度优先选任务相关数据;③ 过滤后精炼模型 → 基于多源语料(Wikipedia 等)+ 提示集产出最终数学合成语料。

  • Instruction PT(指令增强预训练)

    一句话:训一个「指令合成器」给原始预训练文本挂上多任务指令,让预训练同时混入结构化任务执行。

    细节:微调出 Instruction Synthesizer(Mistral-7B 在 40+ 任务类上微调),给原始文本挂 few-shot 多任务指令(“总结学校活动” → QA/推理对)。500M 模型 ≈ 1B baseline。

  • MathGPT(CPT vs SFT 之争的实验)

    一句话:教师模型生成「学生错解 + 纠错步骤」的数据,让模型学自查自纠——顺带证明复杂推理 CPT 优于 SFT。

    细节:学生模型(Llama2)对收集的数学题生成答案 → 教师模型(更大 Llama2)检测错误并按提示生成纠正步骤。结论:CPT 学复杂推理(多步方程求解)优于 SFT;只用 100B 精造数学 token 的 MathGPT-8B ≈ Qwen2-Math-72B。

  • 跨语言合成(救 Llama-3 的中文与科学推理)

    一句话:按固定配比(中文:英文

    = 1:7
    )混入多学科合成数据,补上基座的语言与学科短板。

    细节:种子数据用 TinyBERT / BERT-Tiny-Chinese 从 Dolma CC + C4 分类到多学科 → Mistral-7B 生成多学科科学 QA;代码题用 LeetCode 任务当种子、Magicoder-SDS-6.7B 生成。置换实验(TinyLlama-1.1B 代理验证)两个结论:合成数据占 20%、错误率 <30% 时最优;由易到难的课程式训练优于随机。

  • Case2Code(代码,程序验证路线)

    一句话:从真实仓库抽函数 → 生成输入 → 真实执行拿输出——I/O 对就是免费标注,1.3M 样本摆脱对 GPT-4 的依赖。

    细节(四步):① 从开源仓库抽可执行函数(带 I/O 参数);② 轻量 LLM(InternLM2-7B)分析函数逻辑生成多样输入;③ 真实执行得输出、过滤无效结果;④ I/O 对转自然语言 prompt(多样化模板)。

  • 多样性的量化研究

    一句话:把「多样性」做成可操作变量——层级主题树 + 主题/提示/模型三重变换,实验证实多样性与下游性能正相关。

    细节:GPT-4 从爬取数据建层级主题树(量子计算 → 量子比特类型 → 叠加)→ 变换主题/提示风格/模型(GPT-4o、Llama-3)生成数据 → 实验:合成数据多样性与 HellaSwag、ARC-Challenge 上性能正相关。

  • 多模态图文合成

    一句话:文生图走扩散模型变体,caption 走「先看图再写」补视觉语义,全合成走「视觉打标 + 双向生成」。

    细节:文生图路线用扩散模型(DiffuseMix 混合原图与生成图;EDA 语义一致变体);caption 路线——LaCLIP 用 ChatGPT 改写 caption(缺点:语言模型看不到图,可能丢视觉语义)→ VeCLIP 补上:LLaVA 先给图写详细视觉描述(颜色/形状/物体/关系)再与原 caption 融合;CtrlSynth 三件套同时造图和文——Florence-large 视觉打标(抽视觉元素)+ Qwen2-7B 按指令生成文本 + Stable Diffusion XL 文生图。

3 SFT 数据增强

  • Self-Instruct(指令合成的起点,本地论文)

    一句话:论文摘要原话「bootstrapping off their own generations」——让 LLM 自己生成指令-输入-输出三元组、滤掉无效和相似的,再用这些数据微调它自己,几乎零人工标注。

    细节:

    • 流程:从 175 条手写种子任务出发 → LLM 生成新指令 → 按任务类型分策略造输入输出(分类任务先生成类标签再生成各类输入;开放任务先描述再答案)→ 多轮过滤(去重、去无效、保对齐)→ 微调回原模型;
    • 关键数字(论文摘要):GPT-3 上 Super-NaturalInstructions 绝对提升 33%,追平用私有用户数据 + 人工标注训的 InstructGPT001;专家写的新任务上只落后 InstructGPT001 5%。

    定位:所有「自举式」指令合成的祖宗,WizardLM/Evol-Instruct 都是它的变异升级。

  • AgentInstruct(Agentic Flows,注意本地 PDF 内容与文件名不符,按综述转述)

    一句话:用多个 LLM agent 组成「教学流水线」,把随手可得的原始文本/代码逐步转成大规模多样对齐数据(Generative Teaching)。

    细节:GPT-4 把原始输入(文本/代码)转成结构化格式(论点段落、API 列表)→ 多个 GPT-4 agent 按详细任务分类法生成多样指令与答案 → GPT-4 + Claude-3 再精炼(加密上下文、提难度)。

  • GLAN(知识课程式)

    一句话:把人类教育体系搬进合成——先排课程大纲,再按大纲出题造答案,系统性覆盖知识域。

    细节(三步):① 把知识域(自然科学/人文)组织成学科(数学/编程);② 制定课程大纲(单元如”微积分入门”、核心概念如”极限”);③ GPT-4 组合概念造多样的题、快的 GPT-3.5 生成答案。

  • KPDDS(数学,主题-技能矩阵)

    一句话:先建「主题 × 技能」共现概率矩阵约束出题逻辑,再合成 + 投票精炼——防随机拼接式出题。

    细节:GPT-4 识别数学题主题(代数/几何)与核心技能(因式分解)→ 建主题共现概率矩阵指导出题 → GPT-4 合成新题、按清晰度/连贯性评估 + GPT-4 投票精炼 → 变式扩展 + 迭代投票优化。

  • MMIQC

    一句话:从已有题迭代生成「更复杂、更多样」的题,验证通过再扩库——自举式扩充数学题库。

    细节:从已有题迭代生成更复杂更多样的题(加约束、加变量、延长推理),过滤机制保逻辑一致性、题解对齐、正确性。

  • PersonaHub(十亿人格规模化,本地论文)

    一句话:论文摘要原话——从网络数据自动策展 10 亿个人格(≈全球人口 13%)当「世界知识的分布式载体」,用不同人格驱动 LLM 从几乎所有视角生成数据,能规模化造数学题、指令、知识文本、游戏 NPC 和工具函数。

    细节:

    • 机制:人格 = 视角。同一个人格 × 同一个任务模板 = 一种「真实用户用法」;10 亿人格 → 覆盖 LLM 内知识的几乎所有调用角度;
    • 关键数字(论文摘要):7B 模型用其数据训到 MATH 65%,追平 gpt-4-turbo-preview;论文自己警告这会把顶级 LLM 的能力「倾倒」出来(disclaimer)。

    定位:规模化的天花板——把「多样性」从手艺变成可枚举的工程量。

4 推理数据合成(重点段落)

  • STaR(自举推理的祖师,本地论文)

    一句话:论文摘要原话——用「生成理由 → 答对留下、答错看答案再想一次(rationalization)→ 用所有最终答对的理由微调 → 重复」这个简单循环,让模型从自己生成的推理里学推理。

    细节:

    • 循环:少量 few-shot 理由示例 + 大量无理由数据 → 生成 rationale → 答案错误的「given the correct answer try again」→ 收集所有最终答对的 rationale → 微调 → 下一轮更难;
    • 关键数字(论文摘要):多数据集显著超过直接训答案的模型;CommonsenseQA 上追平 30 倍大的 SOTA 模型微调。

    定位:后来所有「 rejection sampling + 自举」路线(MetaMath、ScaleDiff 等)的源头。

  • MetaMath(本地 PDF 损坏无法抽取,按综述转述)

    一句话:把 GSM8K/MATH 的题「换个问法、倒着问、增强答案」批量 bootstrap 出新题,专攻数学弱点的数据增广。

    细节(综述):从已有题迭代重述与增强(问题改写、答案增广),扩出 MetaMathQA 训练集。

  • MathFusion(跨题融合,本地论文)

    一句话:论文摘要原话——现有数据增广都是题内改写(rephrasing、句法变体),没利用数学知识之间的关联结构;MathFusion 学人类「成体系地接触关联概念」的方式做跨题指令合成,+18 分只用 45K 条增广指令。

    细节(三种融合策略,论文):

    • 顺序融合 sequential:把相关题串成链,建模解题依赖;
    • 并行融合 parallel:合并类比题,强化概念理解;
    • 条件融合 conditional:造「情境感知的选择题」,练推理灵活性。
    • 关键数字(论文摘要):DeepSeekMath-7B / Mistral-7B / Llama3-8B 微调,六基准平均 +18.0 点,只需 45K 条合成指令——比单题增广(MetaMath、RFT、MMIQC、DART-Math)数据效率都高。
  • MUSTARD(形式化验证)

    一句话:给数学题同时生成自然语言解和可机器验证的形式化解,证明工具判对错、按反馈迭代——推理链的严谨性由工具兜底。

    细节:数学基础概念当种子 → GPT-4 生成两种解法:自然语言推理过程 + 兼容证明工具的形式化代码 → 形式解送证明工具验证,失败就按反馈调整再验证,直到通过。

  • 多分支 CoT(错误路径也是资产)

    一句话:不止收正确推理——刻意探索错误路径、让验证 LLM 标注「错在哪步 + 怎么改」,纠正后的错误与正确路径合成多分支 CoT。

    细节:每题让多个小模型(Qwen-7B、Llama-3-8B)各生成 20~50 条回答,刻意探索错误路径(错公式、逻辑跳跃)但保留完整错误分析 → 验证 LLM(GPT-4)逐条批判:错误路径标注错在哪步 + 改法(如”第 3 步误用余弦定理,应换勾股定理”),正确路径抽关键步成精简 CoT → 纠正后的错误尝试与正确路径合并成多分支 CoT。打破「只用正确推理路径」的传统限制。

  • Satori(COAT,推理格式创新)

    一句话:在推理链里嵌入元动作 token(Continue / Reflect / Explore),RL 阶段部分回滚历史推理、触发自我修正——教模型「什么时候该回头」。

    细节:Chain-of-Action-Thought 两阶段:① 多 agent 生成 COAT 格式推理链微调 base model 掌握格式;② RL 从历史推理(对/错路径)部分回滚(≤5 步)后加 <reflect> 触发修正推理,奖励 = 答案正确 + 错误纠正;RL 后蒸馏到 Llama-8B 等基座迭代。

  • 过程监督 > 结果监督(数字要记)+ MathShepherd

    一句话:人工逐步标注的监督比只看最终答案高 5.8 个百分点——MathShepherd 用「LLM 补全 + 硬/软双估计」把逐步监督自动化。

    细节:人工逐步标注 GPT-4 推理步骤 vs 只看最终答案——78.2% vs 72.4% 解题准确率。人工太贵 → MathShepherd 自动化:对初始推理步用 LLM 多次补全后续与答案,每步按两个指标打分:硬估计(最终答案对错,0/1)+ 软估计(该步之后答对的比例)→ 产出训 PRM(过程奖励模型)的数据。

  • 质量与格式的双重关键(LIMO 等)

    一句话:少量高质量样本 + 双重过滤就能激发复杂推理;而且推理步骤的组织结构比答案对错更重要。

    细节:少量高质量样本(问题 + 详细解法 + 推理链,来源含官方解、专家解、LLM CoT)+ 规则与 LLM 双重过滤就能激发复杂推理。硬数字:用答案错误的样本训练只掉 3.2% 准确率;打乱 67% 推理步骤顺序掉 13.3%(AIME 2024)→ 推理步骤的组织结构比答案本身更关键。

  • How to Synthesize Text Data without Model Collapse(合成数据的边界,本地论文)

    一句话:论文摘要原话——先实验证明「合成数据占比与模型性能负相关」,统计发现背后是分布偏移和 n-gram 特征过度集中;解法是在人类数据上做 token 级编辑得到半合成数据,理论上证明能把测试误差约束在有限上界内。

    细节:

    • 实验:不同合成占比从头预训练 → 占比越高性能越差(负相关);统计分析揭示 distributional shift + n-gram 过集中;
    • 解法:token editing on human-produced data(半合成);理论:token 级编辑防坍缩,test error 有有限上界;
    • 验证:从头预训练、继续预训练、SFT 三个场景都验证有效。

    定位:给「合成能加多少」画理论边界的一篇,2026 防坍缩议题的核心参考。

5 RL 与 RAG 数据

  • HH-RLHF(人工路线)

    一句话:开放式对话收人来标 helpful/harmless 偏好 → 训偏好模型打分 → RL 优化 → 新模型再生成新数据更新偏好模型(数据飞轮)。

  • LLM-RLHF(自动化路线)

    一句话:judge 模型给多回答排序替代人工标注,聚类量化多样性。

  • RAG 隐私合成(两阶段循环)

    一句话:先生成「保功能、去敏感」的合成数据,再迭代改写消泄漏——评估-改写循环到零隐私风险为止。

    细节:① LLM 基于关键信息生成不含敏感细节的合成数据;② LLM 对合成数据做改写消除潜在泄漏(删具体人名、模糊化描述);循环往复直到既保留功能又零隐私风险。

记忆锚点

综述对合成的立场:合成不是「要不要」而是「怎么验证」——每条高效路线都把程序可执行验证(PaD、Case2Code、MUSTARD)或过程级监督(MathShepherd)当作质量闸门。这与 2026 年「防模型坍缩」的议题一脉相承(见 10 LLM4DATA与未来挑战;本地论文《How to Synthesize Text Data without Model Collapse》给了半合成的理论边界)。

数据 综述 合成数据 蒸馏 推理数据 RL数据