跳转到内容

输入关键词开始搜索

    Knowledge Distillation(知识蒸馏)

    概念更新 2026-07-01置信度 high#概念#基础#蒸馏#后训练

    用一个更强的“教师模型”去训练一个较小/较弱的“学生模型”,让学生模仿教师的行为——不仅是最终答案,更是教师对输出的概率判断

    Knowledge Distillation(KD)最早由 Hinton et al. (2015) 提出。核心思想是:

    • 教师模型(Teacher):一个已训练好的大模型,对输入 xx 输出概率分布 pteacher(yx)p_\text{teacher}(y \mid x)
    • 学生模型(Student):一个较小的模型,学习目标是 pstudent(yx)pteacher(yx)p_\text{student}(y \mid x) \approx p_\text{teacher}(y \mid x)

    学生不仅学“正确答案是什么”,还学教师对不同答案的概率判断——这种隐藏在 softmax 输出中的细粒度信息被称为 dark knowledge(暗知识)

    普通 SFT 用 hard label 训练:

    输入:法国首都是哪里?
    标签:巴黎 ✓,其他 ✗

    模型只知道“巴黎正确,其他都错”。

    KD 中,教师给出 soft label(概率分布):

    巴黎:0.92
    马赛:0.03
    里昂:0.02
    柏林:0.001

    这告诉学生:

    • “巴黎”最对
    • “马赛/里昂”虽不对,但至少是法国城市,比“柏林”更接近
    • 不同错误之间存在相似度层级——这就是 dark knowledge
    1. 模型压缩:将大模型能力迁移到小模型,降低推理成本
    2. 信息效率:soft label 比 hard label 包含更丰富的监督信号(O(V)O(V) vs O(1)O(1)VV 为词表大小)
    3. 泛化提升:学生学到教师分布中的归纳偏置,往往比单独训练效果更好
    4. 能力迁移:将特定能力(数学、代码、安全、工具调用)从强模型蒸馏到弱模型

    教师先生成完整回答,学生用这些回答做 SFT。

    Prompt: 解释一下牛顿第二定律
    Teacher → "牛顿第二定律指出,物体的加速度与所受合外力成正比……"
    Student → 用教师答案做 SFT

    优点:简单、常用、不需要教师输出 logits 缺点:本质是“用教师数据做监督微调”,学生只看到最终答案,没学到推理过程

    教师不仅给最终文本,还给每个 token 的概率分布。训练目标通常是最小化 KL 散度:

    LKD=KL(pteacherpstudent)=vpteacher(vst)logpteacher(vst)pstudent(vst)L_\text{KD} = \text{KL}\left(p_\text{teacher} \lvert\rvert p_\text{student}\right) = \sum_v p_\text{teacher}(v \mid s_t) \log \frac{p_\text{teacher}(v \mid s_t)}{p_\text{student}(v \mid s_t)}

    这是 Forward KL:mean-seeking,推动学生覆盖教师的所有高概率模式。

    优点:信息密度高,能传递完整分布 缺点:需要教师 full logits(计算/存储成本高),师生 tokenizer 不同时麻烦

    对于推理模型,蒸馏目标扩展为:

    • Chain-of-Thought 推理步骤
    • 数学证明路径
    • 代码推理过程
    • 工具调用轨迹
    • Agent planning 过程

    让小模型不仅学会答案,更学会“大模型是怎么一步步思考的”。

    KL 方向 公式 性质 适用场景
    Forward KL KL(pteacherpstudent)\text{KL}(p_\text{teacher} \lvert\rvert p_\text{student}) Mean-seeking,覆盖教师所有模式 传统 logit distillation
    Reverse KL KL(pstudentpteacher)\text{KL}(p_\text{student} \lvert\rvert p_\text{teacher}) Mode-seeking,锁定单一模式 On-Policy Distillation,RL 结合

    Reverse KL 的优势在于:只需教师对学生已采样 token 的 logprob,计算比 full distribution 便宜,且天然适合 policy-gradient 框架。但若学生从不采样教师想要的 token,reverse KL 难以“凭空教会”。

    MiniLLM (Gu et al., 2023) 论证了 reverse KL 比 forward KL 更适合生成式 LLM 蒸馏,可缓解学生过度估计教师低概率区域的问题。

    方法 学什么 信号形式 轨迹来源
    SFT 人类/教师的标准答案 Hard label(固定文本) 教师或人类
    KD 教师的概率分布/行为 Soft label(logits/logprobs) 教师或静态数据
    RL (PPO/GRPO) 根据奖励优化行为 标量 reward(稀疏) 学生自己
    OPD(On-Policy Distillation) 在学生轨迹上蒸馏教师 Token-level KD(密集) 学生自己
    DMD(分布匹配蒸馏) 教师 score + fake score 分布匹配(密集) 学生自己

    SFT 教学生“答案是什么”;KD 教学生“老师是怎么判断的”。

    KD 是大类,OPD 是一种特殊的 on-policy KD:

    • 普通 KD:教师生成答案 → 学生模仿教师答案(off-policy)
    • OPD:学生先自己生成答案 → 教师在学生的生成轨迹上给信号 → 学生学习(on-policy)

    所以:KD 是蒸馏方法的总称,OPD 是在 on-policy 条件下做 KD 的一种具体方法。

    • Hinton et al. (2015):提出 Knowledge Distillation 概念,引入 dark knowledge 和 temperature scaling
    • Sequence-Level KD (2019+):用教师生成的数据做 SFT,广泛用于 LLM 预训练/deployment
    • MiniLLM (Gu et al., 2023):论证 reverse KL 更适合生成式 LLM 蒸馏
    • On-Policy Distillation (2025):Thinking Machines Lab 系统化研究,将 KD 与 on-policy 采样结合
    • DMD / DiffRO (2025-2026):扩散/流匹配领域的分布蒸馏,token 级可微后训练
    • “KD 就是用小模型模仿大模型” → 这只是最常见的用法。KD 也可以用于同规模模型的知识迁移、能力恢复、多教师蒸馏等场景。
    • “KD 一定比直接训练好” → 教师和学生能力差距太大时,KD 效果可能不如直接训练(学生“听不懂”教师)。
    • “KD 和 SFT 是同一回事” → SFT 用 hard label,KD 用 soft label(概率分布)。信息量差 O(V)O(V) vs O(1)O(1)
    • “Forward KL 和 Reverse KL 等价” → Forward KL 是 mean-seeking(覆盖所有模式),Reverse KL 是 mode-seeking(锁定单一模式)。在生成式任务中行为差异显著。