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 設計