模型蒸馏 (Knowledge Distillation) 入门:把大模型能力“蒸“进小模型

授权与合规声明
本文为作者原创技术分享,内容基于公开可查的工程实践与官方文档整理,仅用于学习交流。文中涉及的工具、命令与配置均在你自建的隔离环境中操作;引用第三方内容已尽量标注来源。若你对文中任何技术细节有疑问,以官方最新文档为准。本文不含任何攻击步骤、利用载荷与绕过手法,请勿将内容用于非自有、未获授权的系统。

第一章 蒸馏是什么

1.1 Teacher 与 Student 的角色

模型蒸馏的核心思想是"让小模型向大模型学习"。我们把参数量大、效果好的模型称为 Teacher(教师模型),把目标部署的小模型称为 Student(学生模型)。

传统监督学习只用到训练集的 hard label(例如"这张图是猫"),而蒸馏让 Student 同时学习 Teacher 输出的概率分布,从而拿到更丰富的"类别之间相似性"信息。

1.2 Soft Label 与温度 (Temperature)

Teacher 输出的原始 softmax 概率里,正确答案往往占大头,但错误答案中也藏着结构信息(比如"狗 0.08、狼 0.02")。蒸馏用一个温度系数 T 软化分布:

softmax(z_i / T) 除以 Σ softmax(z_j / T)

T 越大,分布越平滑,错误类别的相对概率被放大,Student 能学到更多暗知识。这部分超参(T 取值、损失权重等)需结合任务调,本文给出的是入门骨架,具体数值待验证。

第二章 蒸馏和量化不是一回事

2.1 量化改的是推理表示

我之前写过「小模型量化」:它的思路是把高精度权重压成低精度表示,降低显存与计算量,模型结构基本不变,改的是"推理时怎么表示参数"。量化几乎不碰训练过程,部署侧改动为主。

2.2 蒸馏改的是训练过程

蒸馏则相反:它需要一个训练阶段,让 Student 在 Teacher 监督下重新学一遍,得到结构更小、但"被教过"的模型。两者可以叠加——先用蒸馏得到小模型,再量化进一步压缩,是常见组合。

第三章 为什么非要用小模型

3.1 成本与延迟

大模型每次推理的算力成本高,且响应延迟随参数量上升。在高频、对延迟敏感的业务(如实时推荐、端侧输入)里,小模型的单次成本与延迟通常更友好。

3.2 边缘与私有部署

很多场景数据不能出内网,或要在手机、嵌入式设备上跑。此时小模型能放进有限内存,离线可用,也更便于私有化交付。蒸馏是"把大模型能力留下、把大模型体积卸掉"的常用手段。

第四章 典型蒸馏流程

4.1 用大模型打软标签

第一步:把训练数据喂给 Teacher,收集它的软化输出(soft label)作为监督信号。你也可以同时保留原始 hard label,做混合监督。

4.2 小模型学习

第二步:Student 用一份组合损失训练——一部分对齐 Teacher 的软标签(通常用 KL 散度),一部分对齐真实标签(交叉熵)。训练完,Student 即可独立部署,不再依赖 Teacher。

第五章 蒸馏损失怎么写

5.1 PyTorch 风格伪代码

下面是一段未实际跑过的训练骨架,仅用于说明损失组合方式,超参待验证:

⚠️代码待验证

importtorchimporttorch.nn.functionalasFdefdistillation_loss(student_logits,teacher_logits,labels,T=4.0,alpha=0.7):# 软标签损失:KL 散度对齐 Teacher 的软化分布soft_s=F.log_softmax(student_logits/T,dim=-1)soft_t=F.softmax(teacher_logits/T,dim=-1)kd_loss=F.kl_div(soft_s,soft_t,reduction='batchmean')*(T*T)# 硬标签损失:常规分类ce_loss=F.cross_entropy(student_logits,labels)returnalpha*kd_loss+(1-alpha)*ce_loss

第六章 蒸馏还是直接调 API

6.1 怎么选

如果你的场景调用量不大、能接受网络依赖、且数据允许上云,直接调大模型 API 往往更快上线,不必自训。

如果调用频次高、成本敏感、要求低延迟或离线/私有部署,那蒸馏出自有小模型更划算。注意:蒸馏需要你有 Teacher 模型、训练数据与算力,前期投入比调 API 大。

第七章 入门实践建议

7.1 上手路线

建议先从"已开源的小模型 + 现成 Teacher"做起:用公开数据集跑通上面的损失函数,观察 Student 在验证集上的表现是否接近 Teacher,再逐步尝试不同 T 与 alpha。具体超参组合与最终收益因任务而异,待验证。


写在最后:这篇用到的资料

写这篇文章时,我在把「小模型怎么继承大模型能力」这件事理成可落地的路子,顺手也整理了几份配套的东西:

  • 模型蒸馏入门图解:Teacher/Student 与温度软标签一张图讲清
  • 小模型落地检查单:什么场景该蒸馏、什么场景直接用 API
  • 蒸馏损失伪代码模板:可套用的 PyTorch 风格训练骨架

资料是我自己整理的,放在下面这个码上,扫码即可获取:




资料较多,建议先看「全套 AGI 大模型学习路线」,再挑一个实战项目跟练。

附表 A 本文引用事实与出处对照表

序号事实出处本文位置
1蒸馏让 Student 学习 Teacher 的软标签分布社区共识(待验证)第一章
2温度 T 用于软化 softmax 输出分布社区共识(待验证)1.2
3量化压缩的是参数表示、不改训练社区共识(待验证)第二章
4蒸馏与量化可叠加使用社区共识(待验证)2.2
5蒸馏损失常由 KL 散度与交叉熵组合社区共识(待验证)第五章
6高频低成本场景更适合自蒸馏小模型社区共识(待验证)第六章

附表 B 术语速查表

术语英文一句话解释
模型蒸馏Knowledge Distillation让小模型在教师模型监督下学习其输出分布
教师模型Teacher Model参数量大、效果好的被模仿模型
学生模型Student Model目标部署的小模型
软标签Soft LabelTeacher 输出的软化概率分布
温度Temperature软化 softmax 分布、放大暗知识的系数
KL 散度KL Divergence衡量两个概率分布差异的损失
量化Quantization把高精度参数压缩为低精度表示

相关新闻

滑模控制与自适应控制融合的Simulink路径跟踪控制器设计

滑模控制与自适应控制融合的Simulink路径跟踪控制器设计

我看到很多朋友一提到滑模控制,第一反应就是“抖振太大、不敢用”,提到自适应,又觉得“参数更新律调不明白、容易飘”。这次我用一个具体的Simulink仿真项目,把滑模控制和自适应控制融合到一起,做了一套带扰动抑制的路…

2026/10/20 16:06:26 阅读更多 →
用Wireshark抓包分析QQ流量:从TCP/UDP到TLS的实操指南

用Wireshark抓包分析QQ流量:从TCP/UDP到TLS的实操指南

有人问起网络相关的实操项目,我最推荐的就是拿着Wireshark抓自己电脑上的QQ流量。原因很简单:工具免费、对象现成、反馈直接。你不用搭什么测试服务器,只要电脑上装一个Wireshark,再把QQ登录、发消息、传文件的操作重演一遍&#…

2026/10/20 16:06:26 阅读更多 →
多轮对话式自动修复:ChatGPT如何以0.42美元成本修复162个真实Bug

多轮对话式自动修复:ChatGPT如何以0.42美元成本修复162个真实Bug

读了这篇论文我第一反应是:修 bug 这个活儿,过去我们当它是一道“一次性推理题”,给足上下文、让模型生成一行补丁就交卷;但它其实更像一场“持续对话”——第一轮猜错了不要紧,把报错喂回去,让它看到自己错…

2026/10/20 16:06:26 阅读更多 →

最新新闻

基于51单片机和LabView的虚拟GPS接收机设计与实现

基于51单片机和LabView的虚拟GPS接收机设计与实现

1. 项目概述与核心需求解析做这个“基于51单片机和LabView的虚拟GPS接收机”项目,最早是因为某课程需要一个能演示、能上手、成本还压得极低的定位展示系统。真正GPS接收机模块并不贵,但要在教室里直观讲清楚“接收机是怎么工作的”、卫星数据长什么样、…

2026/10/20 16:59:20 阅读更多 →
PPO vs PID:倒立摆控制对比实验全解析

PPO vs PID:倒立摆控制对比实验全解析

我花了大半个星期,在同一个仿真环境里把PPO和PID都拉出来遛了遛。目标是同一个倒立摆,任务也一样:从倾斜状态恢复直立、稳定抵抗扰动。做完之后我最大的感受是,这类对比实验如果不亲自跑一遍,很难理解为什么很多控制工…

2026/10/20 16:59:20 阅读更多 →
Cron与Heartbeat协同:打造可靠可观测的分布式批处理任务编排

Cron与Heartbeat协同:打造可靠可观测的分布式批处理任务编排

做自动化编排的时间久了,你会发现一个很有意思的现象:定时任务本身很少出问题,真正让人头疼的是“任务到底有没有在预期时间、以预期状态被执行”这件事失去了掌控。我在用 OpenClaw 做日常数据批处理和报表编排时,最开始只依赖 C…

2026/10/20 16:59:20 阅读更多 →
2026年五大论文降重平台实测:AIGC率从20.3%压到15.2%的操作链路

2026年五大论文降重平台实测:AIGC率从20.3%压到15.2%的操作链路

又到毕业季,论文降重和AIGC率检测这两件事,几乎成了每个写论文的人绕不过去的坎。我最近帮几位学弟学妹处理投稿前的修改,发现市面上号称"一键降重"的平台五花八门,但真正能把AIGC率实实在在压下来、又不把句子改得七零…

2026/10/20 16:59:20 阅读更多 →
Agent底层机制拆解:ReAct循环、工具与记忆的工程实践

Agent底层机制拆解:ReAct循环、工具与记忆的工程实践

单纯把 ChatGPT 接上几个工具,离一个真正可用的 Agent 还很远。我在本地跑过很多 demo,最常见的情况是:模型调用工具时找一个不存在的函数、参数格式反复解析失败,或者是链条进了一个死循环,同一个搜索动作重复执行十几…

2026/10/20 16:59:20 阅读更多 →
Postgres-XL GTM节点管理器:分布式事务核心组件的高可用运维实践

Postgres-XL GTM节点管理器:分布式事务核心组件的高可用运维实践

Postgres-XL 这个架构,用过的朋友应该都清楚,它的核心组件 GTM(Global Transaction Manager)就像整个集群的“总调度室”。所有跨节点的分布式事务、全局快照、事务 ID 分配,全部由它一手包办。但正因为 GTM 太核心了&…

2026/10/20 16:58:17 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →