INT4 与 Q4(GGUF)量化怎么选:两套话语、与工具怎么绑

2 阅读6分钟

本稿 · 2026-04-26 · 同专栏「小显存、长上下文、语义压缩」系列

系列位置:同专栏「小显存、长上下文、语义压缩」一组;本篇只谈选型和话语对齐,不铺具体端口与 curl——机器上怎么分资源、能跑多长的上下文见后续篇。
说明:不背公式、不讲芯片级细节;能帮你做到两件事——搜到 W4A16Q4_K_M 时不懵,按硬件/目标选对栈


1. 为什么「4 bit」会搜出一堆不同词

  • 你会同时看到 INT4 / W4A16 / Q4_0 / Q4_K_M / AWQ 等。
  • 原因:「4 位」只是位数,背后可能是 PyTorch+CUDA 上的训练/服务栈,也可能是 llama.cpp 的 GGUF 文件里那一套——不是同一个产品的两个型号,而是两套生态里各自的习惯叫法

后文就按两条主叙事来分:(A) 通用 INT4 系(偏 GPU、训练/服务)(B) GGUF 里的 Q4 系(偏本机、一条文件、Ollama/llama.cpp)


2. (A) 广义 INT4:在说什么

口语里的「INT4 量化」 多指:权重用 4 bit 整型(或等价的低比特存储与计算)表示,在 GPU 上做推理或训练/微调。文档里还常见:

  • W4A16:权重量化到 4 bit,激活仍用较高精度(如 16 bit),是推理侧很常见的一种组合。
  • GPTQ、AWQ 等:在「怎么把权重量到 4 bit」上有不同假设与实现,落地时往往对应一套导出格式 + 一套推理实现(如 vLLM、部分 TGI 等)。
  • 与 PyTorch / HuggingFace 全精度的关系:你通常要有一个 全精度或 FP16 的底座,再走「校准 → 导出 → 部署」;和「下载一个 GGUF 就跑」是两条不同的准备成本。

更适合干什么:有 NVIDIA 独显、CUDA 可用 时,做 vLLM 高吞吐、QLoRA/训练后再下 INT4 部署 等——和「我只有一个 CPU 想体验」的默认路线不一样


3. (B) 名字里带 Q4 的:多半指 GGUF 里那一族

llama.cpp / Ollama 的语境下,Q4_0、Q4_1、Q4_K_* 指的是 GGUF 文件里采用的具体 4 bit 变体(不同块大小、是否 mix 更高位的「K-quants」等),不是「再发明一种比 INT4 多一位的数学」。

  • K-quants(如 Q4_K_M:常见表述是在重要权重上用更高位、在次要部分压得更狠,在 CPU / 内存 上跑时,在体积、速度、主观质量之间往往比较好折中。
  • 实践中:没有独显、或只想本机一条文件跑起来时,选 GGUF 的 Q4 变体比「去折腾通用 INT4 的 PyTorch 推理在 CPU 上」要省心;社区资源也更多。

更适合干什么Ollama、llama.cpp、koboldcpp 等;不拿来训练/微调(训练侧仍是全精度 / BF16+LoRA+… 等路径)。

补一句,避免绝对化llama.cpp 有 CUDA 时也可以让 GGUF 走 GPU;下文的「搭配」分的是心智——本机一条 GGUF + 轻量体验 常走 (B);有卡、要服务化、要和训练管线下游对齐 常走 (A)。两套可以都在你机器上并存,别在文章里和读者吵架说「Q4 永远不能上 GPU」


4. 怎么和硬件、工具搭配(人话表)

情况更常走的路线典型工具训练?
没独显 / 以 CPU 为主、先跑通GGUF 的 Q4 系Ollama、llama.cpp否(推理/体验)
有独显、要 vLLM、要和 QLoRA/INT4 部署一条心W4A16 / INT4 推理等(含 GPTQ、AWQ 等落地形态)vLLM、TGI、自写 PyTorch训练/微调用上游链;**INT4 多为推理侧权重
边缘 GPU、要极致时延/厂商栈视情况 TensorRT-LLM 等各厂商指南偏部署侧
  • (1) CPU 跑、没独显:优先在 Ollama / llama.cpp 侧选 GGUF Q4;别指望在这套链路上「顺手做完整微调」。
  • (2) 独显跑、要服务/要对齐你训练产出的 int4 权重INT4 / W4A16 + vLLM 等更常见;准备成本在「环境、依赖、与底座一致的导出」上,通常比「下个大 GGUF」重——所以小项目、先验证产品,很多人会用 在线 API 换时间(这点与后面「12G 本机实验」那篇的交代一致)。

所谓「不建议用 GPU 去硬跑」通常指:别指望vLLM+INT4GGUF+llama.cpp 上搞一套同一句命令的「通用迁移」——格式与内核不是一回事,选型时按目标栈来,而不是只按「都是 4 bit」来。


5. INT4「大家族」里怎么粗选(不背厂商名单)

类型(文档里常见名)核心直觉常见用途
GPTQ 系对权重做分组量化,有校准过程离线量化后,给 vLLM 等 加载跑推理
AWQ 系强调对「重要权」的保护,主观质量在不少任务上更稳稳字当头的线上生成
PyTorch/框架内 W4A16和训练/实验脚本绑得紧,可定制多自己写 pipeline、接 QLoRA 训练后再量化 时常见
TensorRT-LLM 等强绑定硬件与图优化,偏「部署交付」有明确交付形态时再看

结论给懒人:有 NVIDIA 卡 + 要 vLLM,先看你 底座模型官方 推荐哪种 INT4/AWQ/GPTQ 导出,再对 vLLM 的模型页 能吃什么格式——比先背名词重要


6. Q4(GGUF)里「后缀」怎么粗选

变体大致印象什么时候想它
Q4_0更省、更糙极轻设备、能忍质量波动
Q4_1比 Q4_0 多一点表示力略在乎主观质量时试对比
Q4_K_S / K_MK-quants:混合精度、常见「日用默认」在 K_M 一类笔记本/一般 PC 上想 少折腾 时,多数场景先试 Q4_K_M 再微调

结论给懒人本机 Ollama/llama.cpp 体验时,在容量够的前提下,优先试社区口碑好的 K-quants(如 K_M);再往下抠再换 Q4_0 等。


7. 10 秒速查(可贴便签/笔记)

你问自己的更偏 (A) INT4/服务系更偏 (B) GGUF/Q4 系
硬件CUDA 独显、愿意维护推理栈CPU 为主或先单文件开跑
目标训练/微调、高吞吐、和 OpenAI 兼容服务 对齐本机/离线体验快速对话、少依赖
工具vLLM、TGI、HF 训练+导出Ollama、llama.cpp
环境、与底座一致的量化格式、显存/上下文窗口不用于完整微调;和 (A) 的权重不互通 别硬搬

8. 收束

  • INT4 在本文里=GPU/训练+服务语境里,大家嘴上说的那一类 4 bit 权重量化+对应运行时
  • Q4_* 在本文里=GGUF 生态里 4 bit 的多种口味和 Ollama/llama.cpp 一条线不解决「我要训 LoRA」
  • 搜资料时,先问自己:我此刻是在选 GGUF 文件名,还是在选 vLLM 能吃的 checkpoint?——两种都「是 4 bit」,但两条准备路径不是同一项工作。

下一篇12GB 本机:在有独显+内存的情况下,把长上下文、向量、重排跑成可测实验(含:快速起项为何更推荐在线 API)——《12GB 本机实验:上下文链路先跑通——向量、重排与 llama.cpp 三进程》

本篇到这里就够用了。


若文内工具名与版本随社区更新,以各项目官方说明为准。欢迎勘误。