模型蒸馏
大模型的能力能「传授」给小模型吗——软标签里藏着什么「暗知识」?
大模型很聪明,可惜用不起
走到这里,我们已经能造出一台 GPT-4 级别的庞然大物——会写论文、读合同、解数学、调代码。可它太贵: 每生成 1000 个 token 约 0.03 美元,一家中型公司若拿它扛下全部客服对话,一年 API 账单轻松上百万美元。
而一个 7B 的小模型,在一张消费级显卡(16GB 显存)上就能跑,成本是前者的几百分之一—— 但它笨得多,尤其在推理、写作、代码这些硬任务上。一边是聪明但烧钱,一边是便宜但平庸。
能不能把大模型的本事,「教」给一个小模型?
「软标签」里,藏着硬答案没有的「暗知识」
考一道选择题:「法国的首都是? A. 巴黎 B. 伦敦 C. 罗马 D. 柏林」。告诉学生答案,有两种讲法:
- 硬标签:「选 A。」——只传了一个比特:对,还是错。
- 软标签:「A 99.6%、B 0.25%、C 0.09%、D 0.05%」—— 还顺带告诉你:错误项里伦敦比罗马、柏林更像个首都。这层「错得有讲究」的信息,硬标签里完全没有。
这正是 Hinton(深度学习三位先驱之一)2014 年提出的知识蒸馏: 让小模型(学生)去模仿大模型(教师)的输出分布,而不只是抄那个正确答案。学生学的是教师的「判断纹理」,不只是结论。
难题:暗知识藏得太深,得用「温度」逼出来
有个麻烦:教师太自信了。它的原始分布常常 99.6% 全压在正确答案上,错误项小到 0.05%—— 暗知识虽在,却淹没在小数点后好几位,学生几乎看不见、学不到。怎么办?请回第 11 课那个老朋友:温度 T。
softmax 之前把每个分数都除以 T,T 越大、分布越「软」。拿一组教师打分 logits 手算一遍,体会暗知识怎么浮出来:
T=1(原始):softmax → [99.6%, 0.25%, 0.09%, 0.05%] ← 暗知识被压没了
T=4(除以 4 再 softmax):[2, 0.5, 0.25, 0.125] → [64%, 14%, 11%, 10%]
→ 巴黎仍最高,但「伦敦 14% > 罗马 11% > 柏林 10%」的相对纹理清清楚楚地露了出来
升温不改变谁高谁低,却把被压扁的差距拉开成学生看得见、学得到的信号。 于是蒸馏训练时,小模型同时背两个目标——既要像被升温软化的教师,也要答对真答案:
调两者轻重(常取 0.5~0.9,软标签为主)。值得回味的是,这一课三件工具没一件是新的:软标签是第 11 课 softmax 的概率分布,温度 T 是第 11 课那个调软硬的旋钮,KL 散度是第 6 课量「两个分布差多远」的尺子。临近终点,整门课的零件来了一次小小的会师。
现实里其实有两种「蒸馏」
上面讲的是 Hinton 的经典版,但它有个前提:你得拿得到教师每一步、整个词表上的概率分布。 这只有在你自己拥有教师模型(白盒)时才行。可大多数人只能通过 API 调 GPT-4——它只吐文字,不给你内部分布(黑盒)。于是现实分出两条路:
第二条路看着「只学了硬答案」,可一旦教师够强、数据够多够好,效果惊人。 尤其 2024 年起火热的推理蒸馏:让 DeepSeek-R1、o1 这类会一步步思考的强教师, 把完整的思维链写出来,小模型照着这些「解题过程」训——竟能把「慢慢想」的本事也学个八九分。 DeepSeek-R1-Distill 把推理能力蒸进 7B/14B,正是这条路。
现实中的蒸馏,与它的天花板
蒸馏早已是工业界压小模型、降成本的标准操作:
- DistilBERT(HuggingFace):把 BERT 蒸到 60% 大小,保留约 97% 的性能。
- Phi 系列(微软):小到 3.8B,靠精选「教科书级」数据 + 大模型输出,多项基准上压过更大的模型。
- DeepSeek-R1-Distill:把强推理大模型的思维链蒸进 7B/14B,推理能力大幅保留。
蒸馏有个铁律:学生的上限就是教师,它在模仿,不会凭空超越源头。 而且参数量是硬约束——小模型就那么点容量,哪怕完美复刻了教师的分布,也装不下教师那么多知识, 细节处终会露怯。
还有笔成本账:要生成软标签或大量高质量文本,得让昂贵的教师把整个训练集跑一遍, 数据越多这步越贵。蒸馏是把「一次性的教师推理成本」提前付掉,换来日后小模型的廉价部署—— 划不划算,要看你之后要跑多少次。
总结
蒸馏:让小模型学大模型的输出分布,而不只是正确答案。 软标签藏着「暗知识」(错误项的相对高低),靠温度 T 升温才看得见; 损失 = α·KL(贴近教师)+ (1−α)·交叉熵(对照真答案)。 白盒可做分布蒸馏,黑盒(API)只能做序列蒸馏——后者正撑起今天的推理蒸馏热潮。
这一课你亲手推导了
- 动机:大模型贵、小模型笨;蒸馏让小模型接近大模型。
- 软标签 vs 硬标签:分布里的「暗知识」——错误项之间也有相对信息。
- 温度:logits [8,2,1,0.5] 在 T=1 暗知识被压没,T=4 拉出「伦敦>罗马>柏林」。
- 损失:α·KL散度(对齐升温后的教师)+ (1−α)·交叉熵(对照真答案)。
- 两种路 + 局限:白盒分布蒸馏 / 黑盒序列蒸馏(含推理蒸馏);学生翻不过教师,且教师推理本身有成本。
大语言模型 · 核心技术栈,到此拼齐
这一卷从「注意力机制」一路走到「ChatGPT 诞生」: 注意力 → 多头 → Transformer 架构(FFN/位置编码)→ 分词器 → 编码器与解码器(自回归)→ 残差与归一化 → 预训练·SFT·RLHF → 长上下文(稀疏/KV缓存/FlashAttention)→ MoE → 蒸馏。
从第 1 课的一根数轴,到这一课的模型蒸馏——大语言模型的核心技术栈,到此就拼齐了。 AI 并不神秘:它是一步一步、都能追溯的数学与工程决策,垒起来的。 后面还有两课「加餐」:先把从 N-gram 到 Transformer 的整条路串讲一遍,再望一眼前沿与未来。
学习小测验
做完这一课,来检测一下核心知识点。选出你的答案后点击「提交」,即可看到正确选项与讲解。
串讲:从 N-gram 到 Transformer
零件都造完了,但它们还是一颗颗散落的珠子——下一课用一条线把它们串成项链。