什么是模型量化?4bit、8bit 与显存占用讲清楚
同样的模型为什么有 4bit、8bit 等多个版本?本文用显存估算和实际使用场景,讲清量化改变了什么、为什么文件变小不等于运行必然更快,以及如何判断质量损失和部署条件。
下载本地大模型时,你可能会看到同一个名字后面跟着 4bit、8bit、FP16,文件大小却相差好几倍。四位版本更小,是不是只剩原来四分之一的能力?八位版本更大,就一定回答得更好吗?
这些问题都绕不开模型量化。它主要改变模型内部数字的表示方式,让权重等数据占用更少空间。理解这个概念,不需要先学会训练模型,但需要把文件大小、运行内存、计算速度和回答质量分开看。
量化减少的是某些数值表示所用的位数,不是按同样比例删除知识,也不是把大模型自动变成参数更少的小模型。
一、4bit 和 8bit 究竟在描述什么
模型里有大量数字,用来参与计算。计算机保存数字需要二进制位,也就是 bit。在其他条件相同的情况下,用较少的位数记录一个值,通常能减少存储需求,但可以区分的数值状态也会受到限制。
可以借用量尺理解:一把尺标到毫米,另一把只标到厘米。两把尺测的是同一件东西,但后一把记录得更粗。真实量化比这个比喻复杂得多,还要选择取值范围、缩放方式和分组规则,并非简单把所有数字的小数位删掉。
Hugging Face 的量化概念文档介绍了从高精度表示映射到低精度表示的基本思路。不同方法可能处理权重、激活值或其他数据,不能只看到文件名中的一个数字,就认定模型内部所有计算都采用同一种精度。
例如,某个四位权重方案可能在计算时使用更高精度的数据类型,还保留部分敏感模块的精度。因此,存储精度与计算精度不是一回事。比较两个量化版本,至少要看它们使用的方法、哪些部分被量化,以及运行框架是否支持。
二、先算权重体积,再给运行留出空间
假设一个模型恰好有七十亿个参数,所有权重统一用同一种位宽存储。下面只做理想化的裸权重估算,采用十进制 GB,也就是十亿字节;不是某个实际模型的下载大小或显存实测。
| 假设的每参数位数 | 简单计算 | 裸权重体积 |
|---|---|---|
| 16 位 | 七十亿 × 16 ÷ 8 字节 | 约 14 GB |
| 8 位 | 七十亿 × 8 ÷ 8 字节 | 约 7 GB |
| 4 位 | 七十亿 × 4 ÷ 8 字节 | 约 3.5 GB |
实际文件往往还包含量化所需的缩放参数、元数据,以及没有按相同比特数处理的部分。参数量本身也可能只是产品名称里的近似值。所以表格适合建立数量级直觉,不适合直接决定电脑一定能不能运行。
运行时还需要额外空间。常见自回归大模型会保存与上下文相关的缓存,通常称为 KV Cache;中间计算、工作缓冲区、框架和其他应用也要使用资源。上下文长度与同时处理的请求数量变化后,内存需求可能明显不同。
于是,“文件只有三点五 GB”并不等于“三点五 GB 显存就够了”。有的程序会把一部分数据放到系统内存或在不同设备之间搬运,看起来能够启动,却可能出现较长等待。启动成功只是第一关,不是完整的可用性测试。
还要留意 GB 与 GiB 的单位差异。操作系统、模型页面和监测工具可能采用不同口径。做预算时先统一单位,再加上实际运行测得的余量,比对着两个看似接近的数字判断更可靠。

三、为什么不能说“四位模型只有四分之一能力”
数值表示误差与任务表现之间,没有这样简单的线性关系。某些变化对最终输出影响很小,另一些变化可能改变候选词的顺序,或者让特定任务更容易出错。不同模型、方法和数据分布下,结果都可能不同。
例如,你的用途主要是把短工单归入几个类别,量化后的模型可能仍然满足需求;换成长文档里的条件提取、复杂计算或严格格式输出,就需要重新检查。这里说的是应当分别验证的任务,不是在宣称某种量化一定会损害某一项能力。
只问几个日常聊天问题,容易低估问题。句子依然流畅,不能说明关键数字、否定条件与边界案例也保持正确。反过来,某一次回答不理想,也不能全部归因于量化,原模型本身、提示方式和采样设置都可能参与其中。
实际比较应固定基础模型版本、输入和尽可能一致的生成条件,再统计一组任务的表现。不要把不同参数规模、不同训练版本的模型放在一起,然后把所有差异都解释成四位与八位的区别。
四、文件更小,为什么不一定更快
量化可能减少数据搬运量,也可能让某些硬件使用更适合的低精度计算。但速度还取决于硬件是否支持相应运算、实现是否优化,以及运行时有没有额外转换。省下的存储,不会自动按相同比例变成速度收益。
可以把问题拆成三个时间:加载模型要多久,提交请求后多久开始输出,开始输出之后每秒能生成多少内容。一个版本加载更快,却可能在长输入下等待更久;另一个版本单人使用不错,并发时又可能受到内存或计算限制。
Transformers 的 bitsandbytes 文档展示了量化层、混合精度处理和硬件兼容条件。这说明部署效果依赖具体实现,不能看到“支持四位”就假定所有设备都会得到相同结果。
对于个人电脑,最有意义的测试往往不是寻找一个最高的每秒输出数字,而是拿自己的典型输入完成任务:长文档能否读完、连续使用是否稳定、其他程序是否还能正常工作。不要只测一个很短的问题,却准备每天让它处理很长的材料。

五、训练后量化、量化感知训练与蒸馏怎么区分
训练后量化,通常是对已经训练好的模型进行低精度处理。有的方法会使用代表性数据来帮助确定量化配置,有的方法采用不同的动态或无需相同校准流程的处理方式。不能把“训练后”理解为完全不需要任何数据或验证。
量化感知训练,则会在训练过程中考虑量化带来的影响,让参数有机会适应这些限制。它涉及额外训练工作,但并不意味着任何模型经过这一流程都能在任意位宽下保留原有表现。
知识蒸馏是另一件事:利用教师模型提供的信号,训练学生模型学习某种行为。它经常用于得到更轻量的模型,但不是把同一组权重换成更短的数字格式。关于这条路线,可以接着读什么是知识蒸馏。
| 概念 | 主要改变 | 不能直接推出 |
|---|---|---|
| 量化 | 部分数值的表示或计算方式 | 参数数量一定减少 |
| 蒸馏 | 通过教师信号训练学生模型 | 学生拥有教师的全部能力 |
| 普通文件压缩 | 文件的打包与存储形式 | 运行时资源需求同步下降 |
这些方法并不互斥:一个蒸馏得到的模型,也可以继续量化。理解组合关系,才能看懂模型名称背后的实际变化,而不是把所有“小文件”都归为同一种技术。
六、拿一份小评测判断是否适合自己
先从真实工作里挑选一组脱敏任务,覆盖常见输入、长输入、容易误读的条件和需要固定格式的输出。为每道题写清成功标准,再比较原始版本与候选量化版本。任务集不必巨大,但不能只挑模型容易答对的问题。
例如在文档提取场景,分别记录字段是否正确、缺失时是否乱填、单位有没有改变,以及输出能否被程序解析。然后记录峰值资源占用和等待时间。质量与速度各自形成一列,避免用“感觉还可以”代替判断。
如果某个版本主要在少数关键场景中退步,先判断这些场景是否允许人工复核或使用其他方案。对于错误代价很高的流程,省下资源并不一定值得。这里没有通用的最佳位宽,只有特定任务下可接受的取舍。
评测过程中还要避免反复调整后只公布最好一次。可以参考训练、验证与测试的数据边界,保留一部分未参与调试的案例,给最终方案做独立检查。
小结:看量化模型,先问这五件事
- 量化的是哪些部分,使用什么方法,而不只是看文件名里的位数。
- 区分裸权重体积、下载文件大小与实际运行资源需求。
- 在同一任务与基础版本上比较,别把模型差异误算成量化差异。
- 分别测试质量、等待时间和资源占用,不默认体积越小速度越快。
- 为关键场景保留独立评测,让资源节省服从实际可用性。
先用自己的任务测出一个可靠版本,再考虑更激进的压缩。模型量化的价值,在于让有限资源完成需要的工作,而不是把位数压得越低越好。
本文为「读懂 AI」原创科普。容量表为简化计算,不是硬件选购建议或模型实测;技术资料见文中链接,兼容范围以对应版本文档为准。
配图来自 Unsplash:Christian Wiediger、Franck V.、Luca Bravo;照片用于辅助阅读,不是模型测试或合约验证截图。