LESSON 28 · 卷 大语言模型

模型蒸馏

大模型的能力能「传授」给小模型吗——软标签里藏着什么「暗知识」?

第 1 站

大模型很聪明,可惜用不起

走到这里,我们已经能造出一台 GPT-4 级别的庞然大物——会写论文、读合同、解数学、调代码。可它太贵: 每生成 1000 个 token 约 0.03 美元,一家中型公司若拿它扛下全部客服对话,一年 API 账单轻松上百万美元。

而一个 7B 的小模型,在一张消费级显卡(16GB 显存)上就能跑,成本是前者的几百分之一—— 但它笨得多,尤其在推理、写作、代码这些硬任务上。一边是聪明但烧钱,一边是便宜但平庸。

能不能把大模型的本事,「教」给一个小模型?

用大模型给一堆问题生成标准答案,再拿这批数据训小模型——行不行?漏了什么?
第 2 站

「软标签」里,藏着硬答案没有的「暗知识」

考一道选择题:「法国的首都是? A. 巴黎 B. 伦敦 C. 罗马 D. 柏林」。告诉学生答案,有两种讲法:

  • 硬标签:「选 A。」——只传了一个比特:对,还是错。
  • 软标签:「A 99.6%、B 0.25%、C 0.09%、D 0.05%」—— 还顺带告诉你:错误项里伦敦比罗马、柏林更像个首都。这层「错得有讲究」的信息,硬标签里完全没有。
硬标签(非对即错)巴黎100%伦敦0%罗马0%柏林0%软标签(概率分布)巴黎100%伦敦0.25%罗马0.09%柏林0.05%(柱高按 √概率 画,否则小项看不见)
图 28-1硬标签只有「对/错」;软标签是教师完整的概率分布,连错误项之间的相对高低也带着信息——「伦敦比罗马更像首都」。Hinton 把这层信息叫「暗知识」(dark knowledge)

这正是 Hinton(深度学习三位先驱之一)2014 年提出的知识蒸馏: 让小模型(学生)去模仿大模型(教师)的输出分布,而不只是抄那个正确答案。学生学的是教师的「判断纹理」,不只是结论。

第 3 站

难题:暗知识藏得太深,得用「温度」逼出来

有个麻烦:教师太自信了。它的原始分布常常 99.6% 全压在正确答案上,错误项小到 0.05%—— 暗知识虽在,却淹没在小数点后好几位,学生几乎看不见、学不到。怎么办?请回第 11 课那个老朋友:温度 T

softmax 之前把每个分数都除以 T,T 越大、分布越「软」。拿一组教师打分 logits 手算一遍,体会暗知识怎么浮出来:

教师 logits(巴黎/伦敦/罗马/柏林):[8, 2, 1, 0.5]
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 课量「两个分布差多远」的尺子。临近终点,整门课的零件来了一次小小的会师。

第 4 站

现实里其实有两种「蒸馏」

上面讲的是 Hinton 的经典版,但它有个前提:你得拿得到教师每一步、整个词表上的概率分布。 这只有在你自己拥有教师模型(白盒)时才行。可大多数人只能通过 API 调 GPT-4——它只吐文字,不给你内部分布(黑盒)。于是现实分出两条路:

① 白盒 · 分布蒸馏(经典)教师模型每步完整概率分布[0.64, 0.14, 0.11, …]学生用 KL 对齐分布白盒② 黑盒 · 序列蒸馏(API 时代主流)教师(API)只给生成的文本/推理「巴黎是法国首都……」学生当普通 SFT 训仅需黑盒
图 28-2两种蒸馏:白盒「分布蒸馏」让学生用 KL 对齐教师每一步的完整概率(信息最全,但要拥有教师内部);黑盒「序列蒸馏」只拿教师生成的文本当数据、给学生做普通 SFT(信息少些,但一个 API 就够)。如今很多「蒸馏版」开源模型,走的其实是第二条。

第二条路看着「只学了硬答案」,可一旦教师够强、数据够多够好,效果惊人。 尤其 2024 年起火热的推理蒸馏:让 DeepSeek-R1、o1 这类会一步步思考的强教师, 把完整的思维链写出来,小模型照着这些「解题过程」训——竟能把「慢慢想」的本事也学个八九分。 DeepSeek-R1-Distill 把推理能力蒸进 7B/14B,正是这条路。

第 5 站

现实中的蒸馏,与它的天花板

蒸馏早已是工业界压小模型、降成本的标准操作:

  • DistilBERT(HuggingFace):把 BERT 蒸到 60% 大小,保留约 97% 的性能。
  • Phi 系列(微软):小到 3.8B,靠精选「教科书级」数据 + 大模型输出,多项基准上压过更大的模型。
  • DeepSeek-R1-Distill:把强推理大模型的思维链蒸进 7B/14B,推理能力大幅保留。
天花板:学生翻不过教师这座山

蒸馏有个铁律:学生的上限就是教师,它在模仿,不会凭空超越源头。 而且参数量是硬约束——小模型就那么点容量,哪怕完美复刻了教师的分布,也装不下教师那么多知识, 细节处终会露怯。

还有笔成本账:要生成软标签或大量高质量文本,得让昂贵的教师把整个训练集跑一遍, 数据越多这步越贵。蒸馏是把「一次性的教师推理成本」提前付掉,换来日后小模型的廉价部署—— 划不划算,要看你之后要跑多少次。

第 6 站

总结

本课核心 · TAKEAWAY

蒸馏:让小模型学大模型的输出分布,而不只是正确答案。 软标签藏着「暗知识」(错误项的相对高低),靠温度 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 的整条路串讲一遍,再望一眼前沿与未来。

小测验

学习小测验

做完这一课,来检测一下核心知识点。选出你的答案后点击「提交」,即可看到正确选项与讲解。

Q1模型蒸馏(distillation)让小模型「学」大模型的能力,关键依赖大模型输出的什么?
Q2在蒸馏中常对 Softmax 使用较高的「温度 T」,目的是什么?
NEXT · 第 29 课

串讲:从 N-gram 到 Transformer

零件都造完了,但它们还是一颗颗散落的珠子——下一课用一条线把它们串成项链。

0 人点赞,0 人看过