同一个开源大模型,有人用 8GB 显存的卡就跑起来,有人换了 24GB 的卡还喊不够——差距往往就在量化部署这一步。这篇用一个具体例子,把「压缩后再上卡」讲透。
量化是什么:把大字抄成小字
模型里每个参数原本用 16 位浮点数存放,占 2 字节,好比用一整行格子记一个数字。量化做的事,是用更少的格子记同一个数字:8 位整数占 1 字节,4 位只占半个字节。参数总数不变,每个参数变小,整个模型跟着瘦身。
类比一下:原稿用大号字工整誊写,量化像把它缩印成小字版本,内容还在,字迹淡了一点、偶尔有个别笔画糊掉,但书薄了一半甚至四分之三,口袋里也装得下了。
一个例子:7B 模型的上卡过程
拿一个 70 亿参数的开源模型走一遍。原始 16 位版本,参数占 14GB,加上运行时的临时空间,至少要 20GB 显存,消费级单卡基本无缘。转成 8 位后,参数缩到 7GB,一张 12GB 的卡就能容纳,速度还有提升,因为搬运量少了一半。再压到 4 位,参数只剩 3.5GB,8GB 显存的入门卡也装得下,同带宽下每秒生成的字数还翻倍。
实际操作通常是下载社区做好的量化版本,用推理框架加载即可,几行命令的事。想自己转换也可以,工具链都现成,关键是选对目标位数。
量化档位速查
- 16 位:原版精度,14GB,效果基准
- 8 位:体积减半,损失几乎察觉不到,优先选它
- 4 位:体积四分之一,8GB 卡友好,个别任务略有下降
- 更低位数:需要专门技术弥补,新手不建议直接用
选档口诀:显存装得下 8 位,就别急着上 4 位。
精度换空间:损失去哪了
压缩不是白拿的,代价是数值精度。参数被四舍五入到更粗的刻度上,模型的判断会有一丝偏差。多数日常任务里这点偏差难以察觉,但在精细的推理题、代码生成的边角场景里,4 位版本可能偶尔露怯。8 位版本基本无损,所以它是最稳妥的默认选择;4 位是「显存紧张时的合理让步」,不是默认档。
另一个隐含好处常被忽略:参数变小后,同样的显存带宽一秒能搬更多参数,生成速度反而加快。对推理场景来说,量化常常是压缩和提速兼得。
什么时候不该量化
三种情况建议保留原精度。一是显存本来就够,没有牺牲的必要;二是对输出质量有硬要求,例如严肃场景的核对类任务,细微偏差也可能是代价;三是模型本身参数就少,2B 量级的小模型再压缩就伤到骨头了。量化是给显存不够的人开的路,不是无脑必选项。
三种该保留原精度的情形,理由各不相同。
| 情形 | 判断标准 | 为什么保留原精度 |
|---|---|---|
| 显存本来就够 | 原精度权重装得下,没有压缩的必要 | 白牺牲精度,换不来任何空间收益 |
| 输出质量有硬要求 | 严肃场景的核对类任务 | 细微偏差也可能成为代价 |
| 模型本身参数就少 | 2B 量级的小模型 | 再压缩就伤到骨头了 |
量化决策链一次理清
记住决策链:先算原模型装不装得下,装得下就用原版;装不下先试 8 位,还不够再降到 4 位。量化部署解决的是「上卡」问题,装下之后想更快,还要看带宽和并发。带宽的原理见什么是显存带宽?速度的第二要素,多大显存怎么算回看什么是显存?跑模型的第一道门槛,单卡实在装不下的拆分方案在什么是模型切分?一个模型多张卡,加载量化模型用什么软件看推理框架怎么选?主流引擎的定位。
关于量化部署的三个常问问题
- 量化后的模型还能恢复原精度吗?:不能。它是单向压缩,缩印版变不回原稿,想找回精度只能重新用原版权重。
- 量化会影响 API 调用云端模型吗?:影响不到你。云端服务由提供方决定服务端配置,你调通义千问、智谱清言这类接口时,压缩与否是它们的事。
- 为什么量化版有时回答变啰嗦或跑题?:位数压太低会放大数值偏差,个别参数失真后模型行为漂移,退回更高位数通常就能改善。


