LLM 量化大小计算器

GGUF 文件大小 = 参数 × 每权重比特 ÷ 8。按 llama.cpp 实测的 4.89 比特,Llama 3.1 8B 的 Q4_K_M 为 4.58 GiB,Q8_0 为 7.95 GiB,F16 为 14.96 GiB(llama.cpp quantize README,2026 年 10 月 16 日核对)。

每权重比特取自 llama.cpp(Llama 3.1 8B),核对于 2026-10-16。仅为估算。

问题解决了吗?

使用方法

  1. 选择模型会自动填入参数、层数、KV 头数和头维度,也可以直接填 config.json 里的值。
  2. 设置上下文长度、KV 缓存精度和额外开销比例。
  3. 在表中查看各量化格式的每权重比特、文件大小和总内存。名称旁的百分比是相对 F16 的大小。

计算方法

文件大小 = 参数 × 每权重有效比特 ÷ 8。本工具采用 llama.cpp 在 Llama 3.1 8B 上实测的值:F16 16.00,Q8_0 8.50,Q6_K 6.56,Q5_K_M 5.70,Q4_K_M 4.89,Q3_K_M 4.00,Q2_K 3.16。来源:ggml-org/llama.cpp 仓库 tools/quantize/README.md,2026 年 10 月 16 日核对。

这些值比名称里的数字大,是因为 K-quant 为每个权重块单独存储缩放值和最小值,而且嵌入层、输出层等部分张量保留更高精度。按 80.3 亿参数计算,Q4_K_M 为 4.58 GiB,与 README 一致。

内存 = 文件大小 + KV 缓存 + 额外开销。KV 缓存 = 2 × 层数 × KV 头数 × 头维度 × 上下文 × 每个值的字节数,与 GPU 显存计算器相同。额外开销是你为缓冲区和运行时设定的比例。

结果以 GiB(2^30 字节)表示。其他模型的张量构成不同,实际文件可能相差几个百分点。

各模型的文件大小

量化Llama 3.1 8BQwen2.5 32BLlama 3.1 70B
F1614.96 GiB61.02 GiB131.41 GiB
Q8_07.95 GiB32.42 GiB69.82 GiB
Q6_K6.14 GiB25.03 GiB53.91 GiB
Q5_K_M5.33 GiB21.75 GiB46.84 GiB
Q4_K_M4.58 GiB18.67 GiB40.20 GiB
Q3_K_M3.74 GiB15.24 GiB32.82 GiB
Q2_K2.95 GiB12.05 GiB25.95 GiB

怎么选

  • Q4_K_M 是常用默认选择,大小约为 F16 的 31%。
  • Q5_K_M 和 Q6_K 比 Q4_K_M 多用 16% 和 34% 内存,更接近原始模型。
  • Q8_0 约为 F16 的一半,质量最接近 F16。
  • Q3_K_M 和 Q2_K 能把大模型塞进小显卡,但质量损失更大。llama.cpp 的 README 列有各格式的困惑度。

常见问题

7B 模型用 Q4_K_M 有多大?

每 10 亿参数约 0.57 GiB,70 亿参数约 3.99 GiB。72.5 亿参数的 Mistral 7B v0.3 约 4.13 GiB。

为什么 Q4_K_M 超过 4 比特?

每个权重块都存有自己的缩放值,部分张量保留更高精度。llama.cpp 在 Llama 3.1 8B 上实测为每权重 4.89 比特。

70B 模型用 Q4_K_M 能放进 48 GB 吗?

文件约 40.2 GiB。上下文 8,192 Token 时 KV 缓存再加 2.5 GiB,加上 10% 开销约 47 GiB,非常紧。

和 GPU 显存计算器有什么不同?

内存公式相同,但把所有 GGUF 格式按实测的每权重比特放进一张表,方便一眼对比。