2025 年,DeepSeek 用 600 万美金训练成本,做出了可以和 OpenAI 掰手腕的模型。OpenAI 指控 DeepSeek 用了蒸馏技术——把 OpenAI 的输出拿去训练自己的模型,相当于“抄捷径”。
有人把蒸馏比喻成“吸星大法”——巨量地向 OpenAI 发请求,把它的能力“吸”过来。
这场争议背后,是一个真实存在的技术:知识蒸馏(Knowledge Distillation) 。它不是什么黑魔法,而是一种让“小模型学习大模型”的成熟技术方案。
知识蒸馏的核心思想是:让一个体积庞大、性能优越但成本高昂的大模型(教师模型 Teacher),把自身的“知识”传授给一个体积小巧、运行高效的小模型(学生模型 Student)。
最终目标:让学生在保持高性能的同时,极大地降低计算和存储成本,使其能够部署在手机、浏览器、边缘设备等资源受限的场景中。
这就像培养一个厨师新人:

小模型学习大模型的能力,可以有两种方式:
方式一:向大模型发送请求,得到答案。 题目和标准答案都有了,小模型直接背答案。比如“这张图是猫”,这就是硬标签(Hard Label) ——答案就是“猫”,记住就好。
但死记硬背远远不够。
方式二:小模型学习的不是背答案,而是思维方式。

大模型在回答问题时,给的其实不是一个答案,而是一组概率分布——这就是软标签(Soft Label) 。
| 标签类型 | 来源 | 内容 | 作用 | 类比 |
|---|---|---|---|---|
| 硬标签 | 真实数据标注 | [1, 0, 0](如“猫”) | 让学生不偏离正确答案 | 考试的标准答案 |
| 软标签 | 教师模型的输出概率分布 | [0.6, 0.3, 0.1](猫、狗、虎的概率) | 让学生模仿教师的思维方式 | 老师写出的解题思路 |
例如,一张动物图片,大模型输出的软标签可能是:
为什么软标签更有信息量?
硬标签只告诉小模型:“答案就是猫,记住就好了。”但软标签告诉小模型:
它包含了大模型对这道题的“理解方式”:
这种“类比感”、“关联感”,是大模型积累了海量数据之后形成的暗知识(Dark Knowledge) 。蒸馏,就是让小模型去模仿这一套概率分布,从中学到“思维方式”,而不只是背标准答案。
小模型学到的,不是答案,而是“思维方式”——把老师的“思维方式”提炼出来,传给学生。
软标签在传递给学生之前,会经过一个 “温度缩放” 操作:
qi = exp(zi/T) / Σj exp(zj/T)
| 温度值 | 效果 | 适用场景 |
|---|---|---|
| T = 1 | 标准 Softmax(原始概率分布) | 常规推理 |
| T > 1(如 4 或 8) | 概率分布更平滑,小概率类别的“暗知识”被放大 | 让学生学到更多细微的区分能力 |
| T < 1(如 0.5) | 概率分布更尖锐,接近硬标签 | 让学生只关注最可能的答案 |
关键认知:温度 T 是蒸馏中最重要的超参数。T 越高,学生能学到老师越多的“思考过程”;T 越低,学生越接近“直接背答案”。
学生的训练目标是两部分损失的加权组合:
总损失 = α × 硬标签损失 + β × 蒸馏损失
| 损失类型 | 来源 | 作用 |
|---|---|---|
| 硬标签损失 | 真实标签(Ground Truth) | 让学生“不要偏离正确答案” |
| 蒸馏损失 | 教师模型的软标签(经温度缩放) | 让学生“模仿教师的思维方式” |
| 范式 | 名称 | 工作方式 | 适用场景 |
|---|---|---|---|
| 离线蒸馏 | 先学后教 | 先训练好教师模型(不再更新),然后专门指导学生 | 最常见的模式,适合资源充足、追求极致压缩的场景 |
| 在线蒸馏 | 教学相长 | 教师和学生同时训练、共同进步,教师会随学生一起更新 | 教师本身也需要迭代优化的场景 |
| 自蒸馏 | 自己教自己 | 模型利用自身深层网络学到的知识,来指导浅层网络 | 不需要额外教师模型,适合资源有限的场景 |
| 维度 | 蒸馏 | 微调 | 剪枝 |
|---|---|---|---|
| 压缩率 | ⭐⭐⭐⭐⭐(极高,10x~100x) | ⭐(不压缩) | ⭐⭐⭐(中等,1.2x~2x) |
| 训练成本 | ⭐⭐(需要训练学生,但远低于从头训练) | ⭐⭐⭐⭐(需要大量标注数据) | ⭐(几乎不需要训练) |
| 知识保留 | ⭐⭐⭐⭐(较好) | ⭐⭐⭐⭐⭐(最好) | ⭐⭐⭐(一般) |
| 适用场景 | 部署到边缘设备、移动端、浏览器 | 领域适配、特定任务优化 | 快速压缩已有模型 |
关键认知:蒸馏是压缩率最高的方法,但需要额外的训练流程;剪枝是成本最低的方法,但压缩率有限。
| 局限性 | 技术含义 | 影响 |
|---|---|---|
| 容量差距(Capacity Gap) | 学生模型参数量远小于教师,结构上限天然低于教师 | 学生很难在复杂推理任务上完全复刻教师表现 |
| 偏见继承(Bias Inheritance) | 如果教师模型本身存在数据偏见或逻辑缺陷,学生会“照单全收” | 偏见会在蒸馏过程中被放大或固化 |
| 知识损失(Knowledge Loss) | 教师的全部知识无法 100% 迁移给学生 | 学生在“边缘案例”上表现可能差强人意 |
| 极端情况失效 | 如果学生太小,甚至无法拟合教师的软标签 | 蒸馏效果差,可能不如直接在大数据集上从头训练 |
在调用大模型 API 时,可以通过设置 logprobs 参数获取模型输出的概率分布——这是实现蒸馏的数据来源。
json
复制代码{
"model": "gpt-4",
"messages": [...],
"logprobs": true,
"top_logprobs": 5
}
返回数据示例:
json
复制代码{
"choices": [{
"logprobs": {
"content": [{
"token": "猫",
"logprob": -0.05,
"top_logprobs": [
{ "token": "猫", "logprob": -0.05 },
{ "token": "狗", "logprob": -2.3 },
{ "token": "兔", "logprob": -3.9 }
]
}]
}
}]
}
| 概念 | 一句话解释 |
|---|---|
| 教师模型 | 大模型,扮演“师傅”角色 |
| 学生模型 | 小模型,扮演“徒弟”角色 |
| 硬标签 | 标准答案(猫=1,狗=0) |
| 软标签 | 概率分布(猫=0.6,狗=0.3,虎=0.1) |
| 暗知识 | 软标签中蕴含的类比感、关联感 |
| 温度 T | 调节软标签“锐度”的超参数,T 越高越平滑 |
| 蒸馏损失 | 让学生模仿教师思维方式的损失项 |
| 硬标签损失 | 让学生不偏离正确答案的损失项 |
logprobs 参数? 你觉得它除了蒸馏还能用在什么场景?