大模型量化(4bit/8bit)到底能省多少显存?
一、核心答案
量化是把模型权重从 FP16 压到 FP8、INT8 或 INT4,显存占用直接砍半甚至更低,推理速度还能提升。精度损失一般可控,但敏感任务要先做评测再上线。
二、为什么量化能省这么多显存
显存里存的是模型权重。每个参数占的字节数直接决定总大小:
- FP16/BF16:2 字节/参数
- INT8:1 字节/参数,省一半
- INT4:0.5 字节/参数,省四分之三
70B 模型权重:FP16 约 140GB,INT8 约 70GB,INT4 约 35GB。差距就是这么算出来的。
量化不只是省显存,还有两个附带好处:显存带宽压力变小,推理吞吐通常更高;原本要 2 张卡才能跑的模型,量化后 1 张卡就能跑,GPU 租赁成本直接减半。
三、具体怎么判断该不该量化
该不该量化看三个因素:精度敏感度、显存压力、推理速度要求,三个条件都满足再动手。
看精度敏感度
不同任务的容忍度不一样:
- 文本生成、摘要、翻译:INT8 基本无损,INT4 大多数场景可接受。
- 数学、代码:对精度更敏感,建议 INT8 起步。
- 训练、微调:量化主要用在推理;训练时用量化需要专门的框架,别图省事。
看量化方式
当前主流做法:
- 训练后量化(PTQ):模型训完直接转,简单快,精度损失稍大。
- 量化感知训练(QAT):训练时就考虑量化,精度好,成本高。
- 常见框架:llama.cpp 的 GGUF(4bit 支持成熟)、bitsandbytes 的 8bit/4bit 加载、vLLM 的 AWQ/GPTQ 支持。
四、不同场景下怎么选
不同场景对精度的容忍度不同:个人和 Demo 可以大胆量化,生产任务要谨慎评测。
个人开发者
用 GGUF 的 Q4 档位,一张 24GB 的卡就能跑不少 13B、甚至 30B 级别模型。性价比最高。
企业推理服务
用 INT8 或 AWQ/GPTQ 量化,配 vLLM 做并发,在吞吐和精度之间取平衡。生产环境建议先做评测,量化后跑一遍你的业务样例,确认可接受再上线。
训练场景
别指望量化省训练显存。训练要的是精度和稳定,主流的做法是租更大的卡,或者用 LoRA。想省钱就从小模型、小 Batch 开始。
量化之后对显存的需求算清楚了,下一步就是按显存预算选 GPU 配置。可以到 JYGPU 算力市场按显存大小筛卡,用多少租多少。查看 JYGPU 算力市场
五、常见问题
大多数场景不明显,但数学和代码任务可能有可感知的下降。最好的办法是量化后拿你的业务数据实测对比,别听别人说。
主流开源模型基本都有量化版本。闭源 API 模型不用考虑。注意有些量化版本社区维护,质量和上游有差异,优先用官方或大社区出的版本。
因为训练需要精度,而量化主要服务推理。另外 KV Cache 不随权重量化减少,长上下文场景省的总量没那么大。省的是权重这部分,这点要清楚。
数据来源与说明
- FP16/INT8/INT4 每参数字节数与省显存比例:行业通行计算口径,为理论计算值。
- 70B 权重显存(140/70/35GB):基于 70B 参数规模的理论计算值,实际以模型官方文档为准。
- GGUF、AWQ、GPTQ、bitsandbytes 量化方式与精度特性:开源框架官方文档及社区资料。
- 量化精度损失程度:行业经验值,具体以实际评测为准。