大模型蒸馏

大模型蒸馏

模型蒸馏不是复制别人的模型参数,而是让一个小模型学习大模型的输出行为

误区:蒸馏不是把大模型压缩一下,就变成小模型

真实的蒸馏过程:

  • 准备一批数据
  • 让强模型回答这些问题
  • 把强模型的答案整理成训练数据
  • 用这些数据训练一个小模型
  • 看小模型有没有学到强模型的能力

所以蒸馏学的不是参数,而是行为

为什么要蒸馏?

大模型太贵、太慢、太重

做大模型应用的时候,会有三个现实问题

  • 调一次模型,成本不低
  • 输出长一点,延迟就上来了
  • 想私有化部署,机器成本顶不住

但是很多业务场景,其实不需要一个全能大模型

只要在某个小任务上稳定、便宜、速度快,这就是蒸馏的价值

把强模型在某个任务上的能力,迁移到一个更便宜、更快、更好部署的小模型

硬蒸馏

只学习最终答案,学生模型只看到这个最终答案,然后学习怎么输出类似答案

通常是:

复制代码
问题 -> 老师最终回答

这种方式简单、便宜、常见

特别是黑盒api场景,你只能拿到模型输出文本,拿不到模型内部概率分布,所以现实中很多蒸馏都是硬蒸馏

软蒸馏

不仅仅学答案,还学习老师的判断分布

软蒸馏学的是老师模型对多个答案的概率分布,所以信息更细

但问题也很现实,软蒸馏需要拿到logits或概率分布,很多闭源API根本不给

所以大家听到有人说"蒸馏其他厂商模型,多数时候不是严格意义上的软蒸馏,而是黑盒硬蒸馏或者响应蒸馏

白盒蒸馏和黑盒蒸馏

白盒蒸馏:你能看到老师模型内部的一些信息

比如:

  • logits
  • 概率分布
  • 中间层表示
  • attention信息

这钟蒸馏更正统,信息量更大。通常发生在自家模型体系内,或者开源模型上。

黑盒蒸馏:你看不到模型内部,只能通过API问他问题,拿到回答

这就是大多数闭源模型API的情况

只能看到它最终输出,所以黑盒蒸馏常见做法是:

  • 准备大量问题
  • 调用强模型API
  • 收集输出
  • 清洗成训练数据
  • 拿去微调自己的小模型

黑盒蒸馏技术上不复杂,麻烦的是成本、质量、规模、合规

蒸馏其他厂商模型,是不是公开的秘密

大模型厂商都不希望自己的模型被别人蒸馏

训练一个强模型,需要花费大量算力,数据,工程,人力和对齐成本。

所以,用自家大模型蒸馏自家小模型,没问题

用开源模型和许可允许的数据做蒸馏,没问题

但是批量调用闭源模型api,拿输出训练竞争模型,很可能违反服务条款

蒸馏大模型有哪些方法

Response Distillation:学最终回答

很多垂直小模型,本质上就是大量高质量指令数据+SFT

缺点也很明显:学生只学到了老师最后怎么回答,不一定学到老师为什么这么回答

CoT 蒸馏:学习推理过程

Chain of Thought,思维链

普通蒸馏只学习答案,CoT蒸馏让老师模型把推理过程也写出来,但是CoT数据必须清洗好

Preference Distillation:学偏好判断

大模型不只是回答,还会判断哪个回答更好

这类蒸馏类似于对齐,让小模型更像强模型一样判断"什么是好回答"

Self-Instruct:让模型造训练题

让强模型自己生成题目,生成答案,生成变体

但是注意,强模型生成的数据,不等于高质量数据

生成数据很容易同质化,也容易带进模型自己的偏见和错误

真正有价值的是:生成之后的筛选,去重,评测,人工抽检

领域蒸馏:只蒸馏一个能力

不是把一个通用大模型完整蒸馏出来,而是只蒸馏某个具体的能力

全量复刻一个强模型太难了,但是复刻它在一个小任务上的表现,现实很多

蒸馏能学到什么,学不到什么?

蒸馏不是魔法,学生模型不是看了老师答案,就可以突然变成老师

能学到什么?

  • 常见问题的回答方式
  • 某个任务的输出格式
  • 老师模型的表达风格
  • 一部分领域的知识
  • 一部分推理套路
  • 一部分偏好判断

学不到什么?

  • 老师模型的完整参数
  • 老师模型的全部世界知识
  • 老师模型的全部泛化能力
  • 老师模型内部真实推理机制
  • 超过学生模型容量的复杂能力

这里有一个关键点:

学生模型容量是天花板

一个很小的模型,不可能因为蒸馏数据多,就完整学会强模型的全部能力

它能学到的一些解题套路,但底层知识结构和能力上限不一样

蒸馏和微调、量化、剪枝有什么区别?

微调:让一个已有模型学习你的任务数据

比如你拿客服问答数据去训练一个模型,让它更懂你公司的客服场景

微调强调的是:学任务数据

蒸馏:让学生模型学习老师模型的输出行为

老师开源是强模型,也可是多个模型的集成

蒸馏强调的是:学老师模型

量化:降低模型参数的数值精度

让模型占用显存更少、推理更快

量化强调的是:降低计算和存储成本

剪枝:删掉模型里面不重要的结构

比如删除部分神经元,通道,层,让模型更小

剪枝强调的是:减少模型结构规模

这几者不是互斥的,通常真实工程里经常组合使用:先蒸馏出来一个小模型,再量化部署

或者

先用强模型生成领域数据,再SFT微调,再做量化上线

他们依次解决的问题是:

  • 蒸馏:能力迁移
  • 微调:任务适配
  • 量化:降低精度
  • 剪枝:减少结构

蒸馏有那些应用场景?

最核心的场景,就是降本增效

1.降低API成本

如果一个业务每天要调用强模型几百万次,成本会很高

这时候可以先让强模型生成高质量数据,再训练一个小模型承接高频任务

强模型处理复杂问题,小模型处理常见问题

这就是典型的成本分层

2.降低延迟

强模型输出慢,小模型输出快

对客服、搜索、推荐、实时交互类场景来说,延迟很关键

用户不是来欣赏模型思考的,用户是来要结果的

3.端侧部署

手机、PC、本地设备,不可能都跑大模型

端侧模型需要小、快、省资源

蒸馏就是把云端强模型的一部分能力迁移到端侧模型的一种方式

4.企业私有化部署

训练一个领域小模型,在内网环境里面跑

5.垂直领域小模型

用强模型辅助生成领域数据,在结合真实业务数据,训练一个更懂业务的小模型

6.RAG系统里面的辅助模型

RAG不一定所有环节都用大模型

某些环节可以使用小模型承接

7.Agent系统里的子任务模型

Agent 系统里,很多判断不需要最强模型

这时适合蒸馏的小任务

相关推荐
skywsp5 小时前
Agent智能体架构设计-知识整理
大数据·人工智能
IT_陈寒5 小时前
Vue动态组件缓存的坑你踩过了吗?
前端·人工智能·后端
彩虹洋葱5 小时前
system_prompt 设为空、goal 设为 None,Claude 在虚拟荒岛跑了 30 小时:它开始给自己设目
人工智能
点PY5 小时前
《VLM-FO1》论文精读
人工智能
BSD_CGQ5 小时前
人形机器人触觉放量,柔性压力传感器采购该核验什么?
人工智能·机器人·压力传感器·源头工厂·柔性薄膜压力传感器
内容营销专家刘鑫炜5 小时前
AI搜索实战专家刘鑫炜:做AI搜索第一步,首先得让 AI 看到你
大数据·人工智能
鬼手爱剪辑6 小时前
短剧AI 配音技术的难点、原理、开源和闭源软件汇总-2026 年
人工智能
田里的水稻6 小时前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习
卿卿的产品经理日记6 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
cxj75146 小时前
GEO 工程化实践:关键页面的快慢双轨更新与多引擎引用维护
人工智能·geo·geo优化