大模型技术 · 知识蒸馏完全指南
大模型技术 · 模型压缩
知识蒸馏
让小模型学会大模型的思维方式
Teacher GPT-4 / 175B 高精度 · 慢 soft labels 暗知识 Student LLaMA / 7B 轻量 · 快 T = 4.0 训练阶段产出 soft labels 蒸馏后近似教师
8 章 · 5 张图 · 1 个交互演示 · 经对抗验证
大模型技术 · 模型压缩

知识蒸馏完全指南

从 Hinton 2015 年的一篇论文,到 DeepSeek-R1 的 32B 模型打败 OpenAI o1-mini——蒸馏是让大模型的智慧住进小模型身体的核心技术。

核实日期2026-08-08
主题知识蒸馏 · 模型压缩 · LLM
来源核实23/25 claims 对抗验证通过
阅读约 20 分钟 · 8 章
01

什么是知识蒸馏

你训练了一个巨大的模型,精度很高,但部署成本让你望而却步——有没有办法让一个小模型也拥有同样的"判断力"? 把 GPT-4 的"思维方式"装进一个 7B 的模型里,可能吗?

知识蒸馏(Knowledge Distillation)的答案是:可以——而且比你想象的更有效。

2015 年,Geoffrey Hinton 和同事发表了一篇名为《Distilling the Knowledge in a Neural Network》的论文,提出了一个优雅的想法:训练小模型不要只看正确答案,而要去模仿大模型对所有答案的"打分方式"。这篇论文后来成为深度学习压缩领域引用最多的工作之一。

从那时起,蒸馏就在做一件事:知识转移——把一个大的、能力强的模型(Teacher)所学到的知识,用一种更高效的方式传递给一个小的模型(Student),让 Student 在参数量只有 Teacher 几分之一的情况下,尽可能复现 Teacher 的能力。

为什么不直接用更多数据训练小模型?

因为 Teacher 所学到的知识,并非只存在于它对正确类别的判断里,而是存在于它对每一个候选答案的相对评分里。这些细粒度的概率分布携带了 Teacher 对世界的"隐性理解",是硬标签(0/1)无法给出的。蒸馏的本质,是把这份隐性知识显式化,作为 Student 的训练信号。

蒸馏不是在复制一个模型,而是在传递一种理解世界的方式。

在深度学习发展的不同阶段,蒸馏的形式也在演变。早期主要用于图像分类模型的压缩;到了大语言模型时代,蒸馏的内涵扩展到了合成训练数据、推理链迁移、对齐偏好等更广泛的形式。今天我们提到的"蒸馏",实际上是一个涵盖了多种技术路径的大家族。

本文将从基础原理出发,经过分类图谱、LLM 时代的新范式、工程陷阱,一直讲到 DeepSeek-R1 的现代案例和法律争议。读完你会对蒸馏建立一个完整的、可操作的理解。

02
Hinton et al. 2015 · arxiv:1503.02531

暗知识与温度缩放

蒸馏最核心的洞察,藏在一个被大多数人忽略的问题里:一个训练好的模型,除了会预测"正确答案",它还知道什么?

想象你在识别图片里的动物。一张图片被正确预测为"猫"。但除了猫,模型还给"豹"打了 0.15 的概率,给"狗"打了 0.08,给"汽车"打了 0.001。这些看似无用的概率,其实揭示了模型的泛化结构:它知道猫和豹比猫和汽车更相似。

Hinton 把这种隐藏在概率分布里的结构性信息称为暗知识(Dark Knowledge)——它无法从硬标签(猫=1,其他=0)里读出来,但包含在 Teacher 的输出分布里。

温度缩放:把暗知识"放大"

问题是,正常的 softmax 输出会把绝大多数概率集中在正确类别上,其他类别的概率接近零——暗知识被压缩到了噪声级别。Hinton 的解决方案是引入一个温度参数 T,对 logits 进行缩放:

温度缩放的 softmax 公式数学
// 标准 softmax:T=1,分布尖锐
q_i = exp(z_i / 1) / Σ_j exp(z_j / 1)

// 高温 softmax:T=4,分布平滑,暗知识可见
q_i = exp(z_i / T) / Σ_j exp(z_j / T)

// T → ∞ 时趋向均匀分布;T → 0 时趋向 one-hot

T 越大,各类别之间的概率差距越小,暗知识越容易被 Student 学到。训练时 Teacher 和 Student 都用同一个 T 计算 softmax,训练完成后推理时把 Student 的 T 调回 1。

损失函数设计

Hinton 提出的训练目标是两个损失的加权组合:

KD 训练损失Python 风格伪代码
# 软标签损失(Student 模仿 Teacher 的概率分布)
L_soft =  × KL_divergence(
    softmax(student_logits / T),
    softmax(teacher_logits / T)
)

# 硬标签损失(Student 仍然学习真实答案)
L_hard = CrossEntropy(softmax(student_logits), true_labels)

# 合并:α 控制两者权重
L_total = α × L_soft + (1 - α) × L_hard

其中 的缩放是为了补偿温度缩放后梯度量级的变化——高温下梯度变小,乘以 T² 可以保持与 L_hard 量纲一致。这是原论文中一个容易被忽略但实践中必须实现的细节。

被驳回研究中有一种说法认为"只用 KL 散度,去掉硬标签损失也能达到 SOTA"——这个 claim 在对抗验证中被 3 票全否。社区的主流共识是:两者配合效果最好,移除 hard-label loss 在大多数任务上会降低效果。
交互 · 温度对概率分布的影响
Teacher logits(固定):猫=3.2,豹=1.8,狗=1.2,汽车=-0.5,飞机=-1.1
Teacher(高温) 拖动温度观察:T↑ → 分布越平滑 → 暗知识越多

在实践中,T 通常在 2 到 20 之间选取。对于小 Student 模型,适当降低 T 以避免信号过于平滑;对大 Student 模型,可以用较高的 T 来传递更多结构信息。

03
Gou et al. IJCV 2021 · arxiv:2006.05525

蒸馏的分类图谱

知识蒸馏不是一种方法,而是一类方法。理解它的分类,你才能为不同问题选对工具。

Gou 等人在 2021 年发表的综述论文,从两个正交维度对蒸馏方法进行了系统分类:知识的类型训练方案

第一维:知识来自哪里

Response-based输出层蒸馏
响应式知识
最经典的形式。Student 直接模仿 Teacher 的输出层概率分布(logits)。Hinton 2015 就是这一类。对 Teacher 只需黑盒访问(只需要 API 输出)。实现简单,效果稳定。
Feature-based中间层蒸馏
特征式知识
Student 不只学输出,还学 Teacher 中间层的特征表示(hidden states)。代表工作 FitNets(2015)让 Student 把某一层的输出作为"提示"(hint)去匹配 Teacher 对应层。因为 Teacher 和 Student 中间层维度通常不同,需要额外的 regressor 层做维度映射。信息更丰富,但需要白盒访问。
Relation-based关系式知识
关系式知识
不传递具体的特征值,而是传递样本之间或层之间的关系结构——例如哪些样本在 Teacher 的表示空间里更相似、哪些层之间的激活模式更相关。对噪声更鲁棒,但实现最复杂。
注意这三类并不互斥,实际方法常常跨越多个类别。LLM 时代的调研(Xu et al. 2024)使用了完全不同的分类法(algorithm / skill / verticalization),原因是这个经典三分法难以容纳数据蒸馏、推理链蒸馏等新形式。

第二维:Teacher 和 Student 怎么训练

Teacher 已训好·冻结 Student 单向学习 Offline Teacher 同步更新 Student 互相学习 Online 同一网络 自己教自己 Self-distillation 最常见 预训练 Teacher 复用 成本高 类 mutual learning 无需额外 Teacher 早期层教后期层
图 2 · 三种训练方案对比——Offline 最主流,Online 成本最高,Self 不需要单独 Teacher 模型
04
Xu et al. 2024 · arxiv:2402.13116

LLM 时代的蒸馏

当模型大到无法直接访问权重、无法拿到 logits,传统蒸馏的前提就不再成立了——这迫使整个领域重新定义"蒸馏"的含义。

LLM 时代的蒸馏,首先面对的是一个现实约束:GPT-4、Claude 等模型是闭源的。你只能通过 API 拿到文本输出,没有 logits,没有中间层,什么都没有。这催生了两条完全不同的路线,形成了当代蒸馏领域最重要的一道分水岭。

白盒蒸馏 vs 黑盒蒸馏

两条路线的核心对比

维度白盒蒸馏黑盒蒸馏
Teacher 访问权限完整参数 + logits仅 API 文本输出
适用 Teacher开源模型(LLaMA, Mistral)闭源 API(GPT-4, Claude)
知识传递方式Logit 匹配、hidden state 匹配合成数据、推理链、指令遵循
代表方法MINILLM, GKD, FitNetsAlpaca, Orca, Zephyr, WizardLM
信息密度高(完整分布)低(只有最终输出)
法律风险取决于 Teacher 许可证通常违反闭源模型 ToS

黑盒蒸馏的三大范式

黑盒蒸馏是 LLM 时代最活跃的方向,因为它只需要 API 访问就能工作。它有三种主要形式:

范式一 数据蒸馏 用大模型生成问答对 / 指令数据,拿来微调小模型。代表:Stanford Alpaca(GPT-3.5 生成 52k 指令数据,微调 LLaMA)
范式二 Chain-of-Thought 蒸馏 让大模型在回答时附带推理链,小模型学习模仿推理过程而不只是答案。代表:Orca 系列
范式三 偏好蒸馏 让大模型对多个候选回答排序(AI Feedback),用 DPO/RLHF 训小模型对齐偏好。代表:Zephyr-7B

这三种范式并不互斥,现代最好的工作往往把它们结合起来:先用数据蒸馏做 SFT,再用偏好蒸馏做对齐。

LLM 蒸馏的三大角色

Xu 等人在 2024 年的综述里总结,LLM 时代的蒸馏服务于三个核心角色:

  1. 能力迁移:把 GPT-4 等闭源模型的高级能力(复杂推理、多语言理解、代码生成)迁移到 LLaMA、Mistral 等开源模型上,降低使用门槛和成本
  2. 模型压缩:把 70B 的开源模型压缩成 7B,在保留大部分能力的同时大幅降低推理成本
  3. 自我改进:让模型用自己生成的数据来训练自己(Self-play / Constitutional AI 等),无需人类标注

蒸馏在 LLM 时代最重要的意义,不是"让小模型更好",而是"让好能力不被垄断在闭源模型里"。

05
工程实践

容量差距、分布失配与一致性教学

蒸馏有三个反直觉的坑,踩中任意一个都会让效果大打折扣——而这三个坑,正好对应三篇影响最大的工程论文。

坑一:更大的 Teacher 不一定更好

直觉上,Teacher 越强,Student 学到的应该越多。但 Mirzadeh 等人在 AAAI 2020 的工作揭示了容量差距(Capacity Gap)问题:当 Teacher 和 Student 之间的能力差距过大时,Student 反而学不好

为什么会出现容量差距?

Teacher 的概率分布编码了极其复杂的决策边界。但 Student 容量有限,它没有足够的参数去"理解"这种复杂的分布,结果反而学到了一个混乱的近似——类似于让小学生抄博士论文,强行模仿导致理解力比从头学习更差。

解决方案有两类:一是引入Teacher Assistant(中间尺寸的模型做中间人),把知识分两步传递;二是改变损失函数,使用 Reverse KL 散度Generalized JSD 等"mode-seeking"散度,让 Student 只关注 Teacher 的高概率区域,放弃对低概率尾部的强制匹配。

坑二:训练时的输入和推理时不一样

标准蒸馏在训练时让 Student 在固定数据集的 token 序列上学习 Teacher 的分布。但推理时,Student 要自回归生成——每一步的输入都是自己前面生成的内容,而不是数据集里的内容。这导致了训练-测试分布失配(Distribution Mismatch),在长序列任务上累积的误差尤其严重。

Agarwal 等人在 ICLR 2024 提出的 GKD(Generalized Knowledge Distillation)直接解决了这个问题:训练时不用固定数据集,而是让 Student 自己先生成输出,然后用 Teacher 对这些 Student 生成的序列打分,作为训练信号。相当于 Student 在练习自己会犯的错误,而不是练习"模范答案"的场景。

GKD 核心让 Student 在自己生成的输出分布上学习,而非固定数据集——这一改变显著提升了长序列任务的蒸馏效果。GKD 同时支持 forward KL、reverse KL、JSD 等多种散度,可根据任务灵活选择。

相关的方法 MINILLM 专门研究了散度的选择问题:forward KL(标准选择)会让 Student 在 Teacher 的低概率区域浪费大量拟合能力;改用 reverse KLD 后,Student 更专注于匹配高概率的输出,生成质量明显提升。

坑三:Teacher 的预测不能提前算好

一种常见的工程优化是:在训练前把所有训练数据过一遍 Teacher,把 soft labels 全部缓存起来("固定 Teacher"),这样训练时不需要每步都跑 Teacher 前向传播,节省大量计算。

Beyer 等人在 CVPR 2022 发现这个优化有代价:提前缓存的 Teacher 预测会导致过拟合——在 ImageNet 上,Student 的准确率先升到 78.11%,然后随着训练步数增加退化到 76.95%。而"一致性教学"(Consistent Teaching)——让 Teacher 和 Student 每步都接受完全相同的随机数据增强,Teacher 实时产生预测——则可以持续改进,即便训练 100 万步也不会过拟合。

范围限定一致性教学的实验结论来自视觉模型压缩场景,LLM 蒸馏中 Teacher 通常为预训练好的大模型,能否直接套用需谨慎验证。
容量差距 Teacher 太强 → Student 学不明白 Teacher Assistant Reverse KL / JSD 分布失配 训练 token ≠ 推理 token → 累积误差 GKD:在 Student 自己 生成的序列上学习 预计算过拟合 缓存 soft labels → 后期 性能退化 一致性教学:Teacher 实时产生预测 三个坑独立出现,需分别处理
图 3 · 蒸馏三大工程坑及对应解决方案——每个坑背后都有一篇 top-tier 论文
06
2023–2025 · 已验证数据

现代案例解剖

三个案例,代表了 LLM 蒸馏的三种不同策略——从最直接的能力迁移,到对对齐的重新定义,再到推理能力的极限挑战。

案例一:Zephyr-7B — 蒸馏也能对齐

2023 年,HuggingFace 发布 Zephyr-7B,核心问题是:能否在不使用任何人类标注的情况下,通过蒸馏完成对齐?

答案是两阶段流程:

阶段一 · dSFT 蒸馏式 SFT 用 GPT-4 / Claude 生成大量多轮对话数据,在这些合成对话上做监督微调
阶段二 · dDPO 蒸馏式 DPO 用 Teacher 模型对多个候选回答打分排序(AI Feedback),拿这些偏好数据做 DPO 对齐,无人类介入
结果 超越 10× 参数量 MT-Bench:Zephyr-7B = 7.34 vs Llama2-Chat-70B = 6.86。仅 dSFT(无 DPO)得分 6.64,DPO 是关键
关键发现仅靠 dSFT 阶段(6.64)还不够超越 Llama2-Chat-70B(6.86);加上 dDPO 偏好对齐后(7.34)才真正实现了以 7B 打败 70B。对齐阶段的蒸馏和能力阶段的蒸馏同样重要。

案例二:Orca 2 — 质疑模仿

微软的 Orca 系列提出了一个尖锐的质疑:过度模仿 Teacher 的输出,是否反而限制了 Student 的潜力?

传统的数据蒸馏思路是:Teacher 怎么回答,Student 就学怎么回答。Orca 2 认为这有问题——Teacher(如 GPT-4)会对每个问题使用它自己擅长的推理策略,但 7B 的小模型有不同的认知"能力曲线",照抄 Teacher 的策略对小模型来说未必是最优的。

Orca 2 的解法:教给 Student 多种推理策略(逐步推理、先回忆再生成、直接回答),然后训练 Student 根据具体任务自主选择最适合自己的策略——即使这个策略和 Teacher 使用的不同。

蒸馏的终极目标不是复制 Teacher,而是让 Student 找到属于自己的最优路径。

案例三:DeepSeek-R1 — 蒸馏 vs RL 的决定性对比

2025 年,DeepSeek-AI 发布 DeepSeek-R1,做了一个清晰的实验:对于小模型,直接做强化学习(RL)和从大推理模型蒸馏,哪个效果更好?

方法:用 DeepSeek-R1(大推理模型)生成 80 万条推理数据,在 Qwen2.5 和 Llama-3 不同尺寸的 base 上做 SFT 微调(即蒸馏),得到 DeepSeek-R1-Distill 系列(1.5B 到 70B)。

DeepSeek-R1-Distill-Qwen-32B vs 基准模型(已验证数据)

评测集R1-Distill-32B(蒸馏)OpenAI o1-mini差距
AIME 202472.663.6+9.0
MATH-50094.390.0+4.3

来源:DeepSeek-R1 论文 arxiv:2501.12948,3-0 对抗验证通过

更重要的发现来自比较实验:用同等计算量对小模型直接做 RL,效果明显不如用大模型蒸馏。这一结论在 NeurIPS 2025 oral 论文(arxiv:2504.13837)中也得到独立证实:RLVR(强化学习)并不能在小模型上教出新的推理模式,而蒸馏可以。

结论在推理能力迁移上,从大推理模型蒸馏 > 在小模型上直接做 RL——这一发现改变了业界对小模型推理能力上限的认知。
07

蒸馏 vs 其他压缩技术

蒸馏不是唯一的模型压缩方法,但它的独特之处在于——它改变的是模型的知识,而不是模型的结构。

LLM 压缩领域有四大主流技术路线,理解它们的边界才能做出正确选择。

方法工作原理压缩对象典型压缩比需要再训练
知识蒸馏Student 学习 Teacher 的知识/行为模型能力10–100×是(Student 全新训练)
量化用低比特数表示权重(FP32→INT8/INT4)存储 / 计算2–8×否(或轻量微调)
剪枝删除重要性低的权重或注意力头参数数量2–10×通常需要(恢复精度)
低秩分解将权重矩阵分解为两个低秩矩阵之积参数数量2–4×通常需要

这四种方法并不互斥——实际部署中最强的方案往往是蒸馏 + 量化的组合:先用蒸馏得到一个精度尽可能高的小模型,再对这个小模型做 INT4/INT8 量化,进一步降低推理成本。

我需要快速降低推理成本,模型已经训好了
量化(无需重训)
我需要的是一个全新的、更小的模型,愿意花训练成本
知识蒸馏
我的 Teacher 是闭源 API,没有权重
黑盒蒸馏(数据蒸馏)
想在边缘设备(手机/嵌入式)部署
蒸馏 + 量化组合
我的模型里有很多冗余的注意力头
结构性剪枝
我需要把 GPT-4 的推理能力装进 7B
蒸馏(但注意 ToS)
实践建议对于 LLM 部署,业界主流流水线是:大模型蒸馏小模型 → 小模型量化 → 小模型剪枝(可选)。三步叠加,通常可以在损失 5% 精度的前提下,将推理成本降低 20–50×。
08
法律 · 伦理

蒸馏的法律灰色地带

蒸馏最大的法律争议,不在于它的技术是否有效,而在于:你有没有权利用别人训好的模型来训自己的模型?

2025 年初,OpenAI 公开指控 DeepSeek通过大规模调用 OpenAI API,把 API 的输出当作训练数据来训练 DeepSeek 的模型——这正是黑盒蒸馏中的数据蒸馏方法。OpenAI 认为这违反了其服务条款;DeepSeek 否认。这一事件让蒸馏从技术圈走进了法律和商业舆论的中心。

法律争议的本质

这场争议涉及两个层面的法律问题,但目前两者都没有定论:

合同法层面:OpenAI 的服务条款(ToS)明确禁止"自动提取模型输出"用于训练竞争模型。这是 OpenAI 主要依赖的法律依据——不是知识产权法,而是合同违约。UC Berkeley Law 的分析指出,OpenAI 最有可能依赖合同法(ToS 违约)追诉,而非直接的 IP 侵权主张,因为目前法律对 AI 输出是否受版权保护仍存在争议。

知识产权层面:AI 模型的输出是否构成受版权保护的"作品"?如果构成,那蒸馏确实可能侵权;如果不构成,那蒸馏在法律上更类似于"向人学习"而非"抄袭"。这个问题各国法院至今没有形成一致判例。

法律风险在实践中,用商业闭源模型(OpenAI、Anthropic、Google)的 API 输出来训练自己的竞争模型,极大概率违反这些公司的服务条款,存在账号封禁和法律追诉风险。使用开源模型蒸馏通常取决于其具体许可证(如 LLaMA 早期版本限制商用)。

不同情形的风险地图

用 OpenAI / Anthropic API 输出训练模型
高风险:违反 ToS
用 Apache 2.0 开源模型(如 Mistral-7B)蒸馏
低风险:许可证允许
用 LLaMA 3(Meta 商用许可)蒸馏做商业产品
需确认规模条款(MAU 限制)
用 API 输出做学术研究(非商业)
灰色地带:不同平台政策不同
用公开的蒸馏数据集(如 Alpaca 52k)微调
通常可以:具体看数据集许可

这些法律问题目前仍在快速演变中,没有任何一个结论是最终答案。但对于工程实践来说,使用开源许可证明确允许的模型和数据集做蒸馏,是目前最安全的路径。

··

参考资料

所有技术事实核实于 2026-08-08;23 条 claims 经三投票对抗验证通过,2 条被驳回并已在文中标注。

阅读 · 右上角 ◐ 切换深浅色 · 大模型技术系列