llama-quantize 怎么用:GGUF 模型量化入门

简要说明 llama-quantize 的作用、基本命令、常见参数,以及不同量化等级在体积与速度上的取舍。

llama-quantizellama.cpp 里的量化工具,用来把高精度的 GGUF 模型转换成更小的量化版本。

它最常见的用途,是把类似 F32BF16FP16 这样的高精度模型,转换成 Q4_K_MQ5_K_MQ8_0 等更适合本地运行的格式。量化后模型体积会明显变小,推理通常也会更快,但精度会有一定损失。

基本用法

一个典型流程通常是先准备原始模型,再转换为 GGUF,最后执行量化。

1
2
3
4
5
6
7
8
# install Python dependencies
python3 -m pip install -r requirements.txt

# convert the model to ggml FP16 format
python3 convert_hf_to_gguf.py ./models/mymodel/

# quantize the model to 4-bits (using Q4_K_M method)
./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M

量化完成后,就可以直接用 llama-cli 加载新的 GGUF 文件:

1
2
# start inference on a gguf model
./llama-cli -m ./models/mymodel/ggml-model-Q4_K_M.gguf -cnv -p "You are a helpful assistant"

常见参数

  • --allow-requantize:允许对已经量化过的模型再次量化,但通常不推荐,质量可能掉得比较明显
  • --leave-output-tensor:保留输出层不量化,体积会更大,但有时能换来更好的质量
  • --pure:关闭混合量化,让更多张量使用同一量化类型
  • --imatrix:使用重要性矩阵优化量化效果,通常值得优先考虑
  • --keep-split:保留输入模型的分片结构,而不是合并成单个文件

如果只是想先跑起来,最实用的起点还是:

1
./llama-quantize ./models/mymodel/ggml-model-f16.gguf ./models/mymodel/ggml-model-Q4_K_M.gguf Q4_K_M

量化怎么选

可以先把不同量化等级理解成“体积、速度和质量之间的交换”:

  • Q8_0:体积较大,但质量通常更稳
  • Q6_K / Q5_K_M:常见的平衡型选择
  • Q4_K_M:很常见的默认档,体积和效果通常比较均衡
  • Q3 / Q2:适合资源非常紧张的场景,但质量下降会更明显

从给出的示例数据看,量化等级越低,模型通常越小;而在实际推理里,更高精度并不一定总是更快,所以选型重点通常不是“越大越好”,而是“在你的硬件上够稳、够省、效果也能接受”。

实用建议

  • 优先从 Q4_K_MQ5_K_M 开始试
  • 如果更看重质量,再往 Q6_KQ8_0 提升
  • 如果机器资源比较紧,再尝试 Q3Q2
  • 最好始终用同一批测试问题比较不同量化版本

一句话总结:llama-quantize 的核心价值,不是单纯把模型变小,而是让 GGUF 模型在本地设备上更容易跑起来。

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计