一句话答案:量化精度不是越低越好,而是要按「显存够不够」定下限、按「任务容错度」定上限——INT8 / FP8 是几乎无感的安全区(模型体积减半),INT4 是实用甜点(再压约一半,多数任务掉点可控),再往下压到 2bit 精度会明显崩。真正决定成败的不是选哪个格式,而是有没有在你自己的评测集上跑过对比。
「 70B 模型要多大显存」这类问题的答案,本质上就是一道量化选择题。 FP16 下 70B 大约 140GB,单卡放不下;换成 INT4 大约 35GB,一张消费级 48GB 卡就能跑。代价是什么、能省多少、什么时候不能省——这篇讲清楚。
先看基础:位宽决定了什么
量化的定义很朴素:降低表示模型权重(或激活值)所用的精度,目标是减少显存占用、让模型更容易或更便宜地跑起来,同时尽可能保住模型质量。
| 精度 | 每参数位宽 | 相对 FP32 | 8B 模型权重约 | 70B 模型权重约 |
|---|---|---|---|---|
| FP32 | 32 | 100% | 32 GB | 280 GB |
| FP16 / BF16 | 16 | 50% | 16 GB | 140 GB |
| FP8 / INT8 | 8 | 25% | 8 GB | 70 GB |
| INT4 | 4 | 12.5% | 4 GB | 35 GB |
这张表只是理论权重存储。实际部署显存还要加上 KV cache 、激活值、混合精度组件和运行时开销,真实占用通常更高。别拿它当采购依据,拿它当估算起点。
四条主流技术路线:不是竞争,是分工
量化不是一种技术,Hugging Face 官方把它按做法分成几类:
1. 加载时量化(on-the-fly)—— bitsandbytes
在模型加载时量化,不需要分发单独的预量化权重,也不需要校准数据集,权重在加载时自动转换。 4bit 时可选 fp4 或 nf4(NormalFloat4,假设权重呈高斯分布,在零点附近放更多量化层级,而权重恰恰集中在零点附近)。
- 优点:Transformers 集成好,开箱即用;是 QLoRA 微调的标准路径
- 缺点:推理速度通常慢于 GPTQ 或 FP16;主要面向 NVIDIA GPU
2. 基于校准的后训练量化 —— GPTQ / AWQ
需要一份校准数据集跑一遍校准步骤,用误差优化来做权重量化。
- GPTQ:以最小化输出误差为目标做后训练量化,8B 模型单张 A100 校准约 20 分钟,通常精度高,可带来推理加速
- AWQ(激活感知权重量化):通过观察激活值识别并保护重要权重,8B 模型校准约 10 分钟,在 4bit 下常能取得高精度,特定任务上有时优于 GPTQ
两者的共同风险是可能在校准数据上过拟合。好消息是 Hugging Face Hub 上有大量预量化好的 GPTQ / AWQ 模型,多数情况不必自己量化。
3. 运行时生态 —— GGUF / llama.cpp
面向本地与可移植推理的完整工具链:转 GGUF → llama-quantize 出 Q8 / Q6 / Q5 / Q4 等变体 → 评估质量与性能 → 用 llama.cpp 跑。本地部署和消费级硬件首选这条路。
4. FP8 与硬件原生低精度 —— NVFP4
FP8 保持浮点格式,在 NVIDIA 新一代硬件上有原生算力支持。更进一步,Blackwell 架构支持 NVFP4:对每个 16 值微块施加细粒度的 FP8(E4M3)缩放,再对每个张量施加二级 FP32 缩放。这种分层缩放能在保持 4bit 计算速度的同时大幅压低量化误差。
NVIDIA 公开的实测数据
怎么选:一张决策表
| 场景 | 推荐格式 | 理由 |
|---|---|---|
| 本地 / 消费级硬件推理 | GGUF(Q4_K_M / Q5_K_M) | 生态成熟,量化变体多,CPU 也能跑 |
| 显存紧张要微调 | bitsandbytes NF4 + QLoRA | PEFT 支持最好,文档最全 |
| 生产 GPU 服务、要吞吐 | AWQ 或 GPTQ 预量化 | 误差优化过,推理可加速 |
| 快速实验、不想校准 | bitsandbytes 8bit / 4bit | 加载即用,无需校准集 |
| Hopper / Blackwell 新卡 | FP8 或 NVFP4 | 硬件原生支持,精度损失极小 |
| 追求极致吞吐(NVIDIA) | TensorRT-LLM | 定制内核 + 算子融合,需按 GPU 编译引擎 |
实操:选精度之前先做这三件事
- 算清显存下限:模型参数量 × 位宽 ÷ 8,再预留 20% 到 30% 给 KV cache 、激活值和运行时开销,得到你的最低可行位宽。
- 准备 50 到 200 条真实业务评测题,覆盖你的高频任务类型,不要用公开的通用基准代替——量化损失往往集中在特定任务上。
- 从保守位宽开始试:先 INT8 / FP8,掉点可接受就继续下探 INT4;代码生成、数学推理、长上下文任务要额外谨慎,这类任务对数值误差敏感。
- 对比质量与速度两项指标:质量看评测集通过率,速度看首 token 延迟和每秒 token 数,两项一起记,别只看其中一个。
- 优先用社区预量化权重:Hub 上现成的 GPTQ / AWQ 模型通常自带量化配置与评测结果,比自己从零量化省事且更稳。
- 上线后保留回滚能力:存一份高精度权重或托管 API 兜底,一旦发现特定场景质量异常能立刻切回。
几个常见误判
- 「 INT4 一定比 INT8 快」——不一定。省的是显存和带宽,速度取决于有没有对应的低精度算子内核,没有的话反量化开销可能吃掉全部收益。
- 「量化后模型就变小了,可以放心加长上下文」——权重省下来的显存会被 KV cache 吃掉。长上下文场景要单独考虑 KV cache 量化(FP8 / NVFP4 方案在这一项上已接近 BF16 表现)。
- 「 4bit 微调等于 4bit 推理」——QLoRA 是量化基座 + 可训练低秩适配器,训练完的适配器仍是高精度,推理时通常要合并或按原精度加载。
- 「官方榜单掉 1 个点所以我也能接受」——公开基准和你业务分布的偏差,往往比量化本身的损失更大。必须自己测。
成本视角:量化真正省钱在哪
量化带来的是三重收益的叠加:显存门槛下降(能用更便宜的卡)、单卡可承载的并发上升(显存省下来给 KV cache)、以及在新硬件上的算力提升(低精度张量核心吞吐更高)。
但要注意一次性成本:GPTQ 8B 校准约 20 分钟,AWQ 约 10 分钟,都是在单张 A100 上的量级;70B 级别则要翻数倍。如果只打算跑几天,直接上 FP8 或用托管服务可能更划算。
INT4 相比 INT8 能省多少显存?
GPTQ 和 AWQ 该怎么选?
bitsandbytes 适合生产推理吗?
FP8 和 INT8 哪个更好?
量化后长上下文能力会下降吗?
2bit 量化实用吗?
相关阅读
- 本地大模型部署:Ollama 从安装到跑通——量化模型最常见的落地方式
- 大模型推理成本怎么控制——把量化放到整体成本结构里看
- Hugging Face 模型怎么选:选型维度与筛选方法——在 Hub 上找预量化权重
- 上下文工程:怎么把有限的上下文用在刀刃上——省下的显存怎么用才值






评论 (0)