蒸馏、量化这些词是什么意思,和普通人有什么关系

2小时前发布

蒸馏、量化这些词是什么意思,和普通人有什么关系

看模型发布的消息,常能看到「7B 蒸馏版」「4bit 量化,显存只占 6G」。这些词听起来像工程师的内部行话,实际上它们决定了你手上的设备能不能跑起来一个模型,以及跑起来的那个模型还剩几分本事。

把这两个词拆开看,不需要数学基础,只需要理解它们各自在「拿什么换什么」。

蒸馏:把大模型的本事挪到小模型身上

训练一个大模型贵得离谱,跑一个大模型也贵。想让小模型有大模型的水平,一个思路是让大模型当老师,把它的判断方式教给小模型。

做法不是简单地把大模型的答案抄下来给小模型背。答案只有一个字,背后的信息量太少。真正的做法是让老师模型对每个问题输出一整串概率:这个字百分之七十,那个百分之二十五。这串概率叫软标签,它携带的信息比一个标准答案多得多,因为它告诉你「哪些是接近正确的」。

学生模型照着这串概率去拟合,学的是老师的判断倾向,不只是最终结论。这个过程叫蒸馏。

实验室里玻璃蒸馏装置,烧瓶中液体微微沸腾,冷凝管滴下液滴

蒸馏留下了什么

留下了语言风格和常见的推理套路。学生模型说话像老师,遇到常见问题会走相似的思路,输出格式也接近。这就是为什么有些小模型用起来「感觉很聪明」,因为它模仿到位了。

还留下了不少领域知识。大模型在训练中见过的概念、术语、常见搭配,通过软标签传给了小模型。这部分是蒸馏最实在的收益。

蒸馏丢掉了什么

丢掉了容量。小模型的参数少,装不下大模型那么多细节。表现是:常见问题答得漂亮,冷门问题开始含糊,需要多步推理的时候半途走偏。

也丢掉了「知道自己不知道」的能力。大模型碰到不确定的问题会犹豫、会追问,小模型往往直接给一个自信的错答案。这个差别在实际使用里比分数差距更麻烦。

还有一个隐性代价:老师模型的偏见和错误一起被继承了。老师在某类问题上答得偏,学生学得更偏,因为小模型没有足够的容量去做纠正。

蒸馏还有一个变种叫数据蒸馏:不用老师的概率,只用老师生成的大批问答对来训学生。做法更简单,成本更低,效果差一些。业内两种都在用,取决于手上有多少算力和多少时间。

量化:把数字的精度砍下来

模型里的参数本来是小数,每个占两个字节。一个 70 亿参数的模型,光权重就占十几 G。量化是把这些小数用更少的位数表示,比如每个参数只用一个字节,甚至半个字节。

效果很直接:体积缩到四分之一,显存占用跟着降,推理速度也快。代价是精度损失,参数被抹掉了细节。

砍掉精度为什么还能用

因为模型对小幅扰动不敏感。参数从 0.1234 变成 0.12,输出几乎不变。语言模型的计算是大量的加权求和,个别参数的微小偏差会被平均掉。

量化做到位的实现,会在关键层保留更高精度,把容易受影响的权重单独处理。所以同样是 4bit,不同实现的效果差别很大。

砍到什么程度会崩

8bit 量化多数场景感知不到差异,这是目前最稳的一档。4bit 在多数对话任务上还能用,长文推理和数学题开始掉。2bit 以下基本只在特定任务上勉强能跑,通用对话会出现明显退化,比如答非所问、语言混乱。

退化不是均匀发生的。它先影响需要精确的操作,再影响需要长链条推理的任务,最后才影响日常闲聊。所以「能聊天」不代表「能用」。

算显存的公式很粗但够用:参数量乘以每个参数占的位数,再除以八,就是权重占用的字节数。70 亿参数、每个占 4 位,算下来大约 3.5G,加上缓存和解码开销,实际占用五到六 G。这个估算能帮你在买卡前判断够不够。

意式咖啡机正在萃取,浓缩液流进一只小杯,杯里只有半满

还有两个常一起出现的词

剪枝。模型里有些参数贡献很小,剪掉影响不大。剪枝就是按某种标准删掉一部分,让模型变瘦。粗暴地剪会伤到能力,讲究的做法是剪完再训一轮,把损失补回来一部分。

混合专家。把模型拆成若干个子网络,每次推理只激活其中一小部分。这样总参数很大,实际计算量小。听起来两全其美,代价是显存要装下全部参数,只是算得少。

这些事和普通人有什么关系

决定了你手上的设备能不能跑

想在笔记本或者手机上跑本地模型,量化是绕不开的一步。没有量化,十几 G 的权重装不进消费级显卡;有了 4bit 量化,同样一个模型能塞进一张 8G 显存的卡。

这也是为什么本地模型的效果总比在线服务差一截。你在本地跑的是压缩过的版本,在线服务跑的是完整版本,压缩会掉分。

决定了便宜的小模型能不能替代贵的

很多企业想省钱,用蒸馏出来的小模型替代大模型接口。这个思路在标准化的任务上成立,比如固定格式的信息抽取、常见问题的分类、模板化的回复生成。放在需要判断和推理的任务上,省下的钱会以返工的形式还回去。

决定了你看到的「本地 AI」宣传有多少水分

宣传里常写「手机本地运行大模型」,实际跑的往往是几亿参数的小模型加低比特量化。它能做输入法联想、能做通知摘要,做不了复杂的文档分析。这不算是骗人,只是宣传口径和实际能力之间有距离。

为什么不干脆都用大模型

成本是一条。大模型的调用费按字数算,每天处理几万条工单,账单跑得比人力快。本地部署大模型又要一整套机器,中小企业摊不平。

时延是另一条。大模型回答慢,用户等三秒就开始怀疑网络。压缩过的小模型出字快,交互体验顺。客服、输入法、语音助手这类场景,速度经常比答得多好更要紧。

还有隐私。数据不能出内网时,能本地跑的只有压缩过的小模型。答案差一点,总比把客户名单传到别人服务器上强。

怎么判断一个小模型值不值得用

别看参数规模,看它在你的任务上的实际表现。拿二十条真实业务样本去跑,统计正确率和可用率。可用率指「不需要人工改就能直接用」的比例,这个数字比准确率更能反映成本。

看它在边界上的表现。故意问几个它答不上来的问题,看它是老老实实说不知道,还是编一个。编的比例高,说明它不能放在对外的位置。

轻薄笔记本旁边放着一台外接显卡坞,屏幕亮着微光

看推理速度。本地模型的速度取决于硬件和量化档位,同一款模型在不同机器上能差好几倍。每秒出几个字,直接决定了用户愿不愿意等。

蒸馏和量化,本质都是用精度换成本。这个交换在什么位置划算,取决于任务对错误有多容忍。写营销文案可以容忍偶尔跑题,做报价单不能容忍算错一位。任务定下来,选型才有依据。