量化、剪枝、蒸馏,这些大模型黑话到底说了些啥?
量化、剪枝、蒸馏——如果你经常关注大语言模型,一定对这几个词不陌生。单看字面,确实有点摸不着头脑,但它们对现阶段的AI发展却至关重要。这篇文章就来掰扯清楚,这些技术到底在做什么,背后的原理又是什么。

模型压缩
量化、剪枝、蒸馏,这三个词其实并不是大语言模型的专属技术,而是通用的神经网络模型压缩手段。
模型压缩的意义
压缩模型,最直接的好处是文件变小了,占用的硬盘空间更少,加载到内存或显存时需要的空间也变小,而且运行速度往往会更快。
换句话说,模型压缩能降低计算资源消耗。这意味着即使是在手机、嵌入式设备这类资源受限的场景下,也能跑得动大模型,应用范围一下子就打开了。
压缩的是什么?
压缩的对象是模型的参数。那参数又是什么?
现在的机器学习大多基于神经网络模型,它模拟了人脑的神经网络结构。这里有一个简单的示意图:
为了好理解,只画了三个神经元:A1、A2、A3。每个神经元都接收来自其他神经元的信号,也把信号传出去。A3会接收A1和A2传来的信号,但两个信号的强度(称为“权重”)不同,假设分别是W13和W23。A3对接收到的数据进行加工:先对信号加权求和(IA1×W13 + IA2×W23),再加上自己的一个参数B3(称为“偏置”),最后把结果转换成特定形式,传给下一个神经元。
这个过程中用到的权重和偏置,就是模型的核心参数。当然,模型还有其他参数,但权重和偏置通常占了80%以上。使用训练好的大模型时,这些参数是固定的,就像数学多项式的系数——我们只能输入变量(比如文本),然后得到输出结果。
模型压缩,就是对这些参数做“瘦身”,主要手段就是量化、剪枝和蒸馏。
量化
量化,简单说就是降低参数数值的精度。比如模型训练时权重用的是32位浮点数,但实际部署中发现用16位表示也几乎不损失效果。这一降,模型文件大小减半,显存占用减半,处理器和内存之间的通信带宽需求也降低了——成本更低,收益更高。
这很像做饭时称食材。你可以用精度0.01克的电子秤,很精确但没必要。做家常菜,一个最小刻度1克的普通秤就绰绰有余。量化就是这么个思路:牺牲一点精度,换来巨大便利。
量化还有一个额外好处——计算更快。现代处理器里有很多低精度向量计算单元,量化后的模型可以充分利用这些硬件,并行执行更多运算。同时,低精度运算本身比高精度快,单次乘法、加法耗时更短。这也让模型能跑在更低配置的机器上,比如普通电脑、手机等移动设备。
沿着这个思路,人们继续压缩出了8位、4位、2位的模型,体积更小,资源需求更低。但精度降低到一定程度,不同权重的值会越来越接近甚至相等,模型的输出准确度也会下滑,性能表现出现不同程度的损失。
量化技术还有不少细分策略,比如动态量化、静态量化、对称量化、非对称量化等。对大语言模型而言,通常采用静态量化——在模型训练完成后一次性对参数量化,推理时不再做量化计算,这样方便分发和部署。
剪枝
剪枝,顾名思义,就是去掉模型中不重要的、很少用到的参数。这些参数的数值通常接近于零。对于某些模型来说,剪枝能产生不错的压缩比,让模型更紧凑、更高效。这对资源受限的设备或存储有限的场景尤其有用。
剪枝还能增强模型的可解释性——删掉不必要的组件后,模型的底层结构变得更透明、更易分析。这对理解像神经网络这样的复杂模型、理清其决策机制很重要。
剪枝不限于权重参数,还可以剪除某些神经元节点,就像下面这张图所示:
但要注意,剪枝并非对所有模型都适用。对于稀疏模型(大部分参数已经是零或接近零),剪枝可能没什么效果;对于参数很少的小型模型,剪枝可能导致性能明显下降;而对于高精度任务,比如医疗诊断这种涉及人命的领域,贸然剪枝风险很大。
实际操作中,需要权衡剪枝带来的速度提升和性能损失。常用的策略是给每个参数打分,评估它对模型性能的贡献度。分数高的就是“重要参数”,绝对不能剪;分数低的可以考虑去掉。这个分数可以通过参数大小(绝对值大的通常更重要)或者更复杂的统计分析方法来确定。
蒸馏
蒸馏,是把一个大模型学到的概率分布“传授”给一个小模型。大模型被称为教师模型(通常是参数量大、性能强的优秀模型),小模型被称为学生模型(参数较少)。
蒸馏时,教师模型根据输入生成多个可能输出的概率分布,学生模型则去学习这个输入和输出的映射关系。经过大量训练,学生模型就能模仿教师模型的行为,相当于学到了教师的知识。
举个例子,在图像分类任务中,教师模型看到一张图片,输出这样的概率分布:
- 猫:0.7
- 狗:0.4
- 车:0.1
然后把这张图和这个概率分布一起交给学生模型去学习模仿。
蒸馏的本质是把教师模型的知识压缩到更小、更简单的学生模型里。但压缩过程可能会丢失一些信息。另外,学生模型如果过度依赖教师,泛化能力可能不够好。
为了让学生学得更到位,可以采取一些策略:
引入温度参数
调整教师和学生模型的结构
以上介绍了三种主要的模型压缩技术,当然还有很多细节,不过理解原理已经够了。此外还有低秩分解、参数共享、稀疏连接等其他压缩方法,有兴趣可以深入研究。
需要注意的是,模型压缩后性能可能出现明显下降。这时候可以对模型做一些微调——特别是对精度要求高的任务,比如医学诊断、金融风控、自动驾驶。微调能让模型性能得到一定恢复,稳固它在关键任务上的准确性。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名