量化与精度:8 位、4 位到底损失了什么

一、量化到底做了什么

简单说:把模型权重从高精度小数变成低精度整数。

原来一个参数用 16 位存,量化后可能只用 8 位或 4 位。体积降到一半甚至四分之一,显存需求跟着下降。

代价是精度损失。但损失多少,不是一句"会变差"能说清的。

二、三种常见方式

全精度。 不用说了,准,但贵。

8 位量化。 大多数场景下几乎看不出差别。这是目前最稳的选择。

4 位量化。 体积优势明显,但在长文本、多步推理、代码生成这类任务上容易露馅。

我的经验:做对话、做摘要,4 位可以接受;做结构化抽取和代码,优先 8 位或全精度。

三、判断损失的一个笨办法

不要看评测分数,做自己的小测试。

准备二十条任务,分三类:短问答、长文理解、格式输出。两种精度各跑一遍,人工对比。

如果格式类开始出现 JSON 少大括号、字段名蹭错,那就是精度不够了。

四、显存怎么算

粗略公式:参数量 × 每参数字节数 × 1.2(预留余量)。

7B 模型 8 位大约是 7 GB,加余量要 8-9 GB。4 位大约 4 GB,加余量 5-6 GB。

注意这只是权重。实际运行时还有上下文缓存,对话越长占得越多。很多人只算权重,结果聊到二十轮就爆了。

五、另一个常被忽略的维度

量化不只影响准不准,还影响速度。

某些低精度格式在特定硬件上有加速支持,实际比高精度还快。但不是所有显卡都支持,得查清楚。

六、部署时卡住怎么办

环境问题比模型本身更磨人:驱动版本、CUDA 版本、内存、磁盘。

如果你用的是云主机,系统镜像的选择也是环节之一。干净的系统能少很多奇怪报错。Windows 环境建议走正规渠道,比如 万象系统之家 把 Win11、Win7 等版本分得比较清楚,至少知道自己在装什么。

七、一句总结

量化是拿一点准确性换可用性。

先把任务类型想清楚,再决定换多少。不要默认用最省的,也不要默认用最贵的。