llama-quantize 是 llama.cpp 裡的量化工具,用來把高精度的 GGUF 模型轉成更小的量化版本。
它最常見的用途,是把像 F32、BF16 或 FP16 這樣的高精度模型,轉成 Q4_K_M、Q5_K_M、Q8_0 等更適合本機執行的格式。量化後模型體積會明顯縮小,推理通常也會更快,但精度會有一定損失。
基本用法
一個典型流程通常是先準備原始模型,再轉成 GGUF,最後執行量化。
|
|
量化完成後,就可以直接用 llama-cli 載入新的 GGUF 檔案:
|
|
常見參數
--allow-requantize:允許對已經量化過的模型再次量化,但通常不建議,品質可能下降得更明顯--leave-output-tensor:保留輸出層不量化,體積會更大,但有時能換來更好的品質--pure:關閉混合量化,讓更多張量使用同一量化類型--imatrix:使用重要性矩陣優化量化效果,通常值得優先考慮--keep-split:保留輸入模型的分片結構,而不是合併成單一檔案
如果只是想先跑起來,最實用的起點通常還是:
|
|
量化怎麼選
可以先把不同量化等級理解成「體積、速度和品質之間的交換」:
Q8_0:體積較大,但品質通常更穩Q6_K/Q5_K_M:常見的平衡型選擇Q4_K_M:很常見的預設檔,體積和效果通常比較均衡Q3/Q2:適合資源非常緊張的場景,但品質下降會更明顯
從示例資料來看,量化等級越低,模型通常越小;而在實際推理裡,更高精度也不一定總是更快,所以選型重點通常不是「越大越好」,而是「在你的硬體上夠穩、夠省、效果也能接受」。
實用建議
- 優先從
Q4_K_M或Q5_K_M開始試 - 如果更看重品質,再往
Q6_K或Q8_0提升 - 如果機器資源比較緊,再嘗試
Q3或Q2 - 最好始終用同一批測試問題比較不同量化版本
一句話總結:llama-quantize 的核心價值,不是單純把模型變小,而是讓 GGUF 模型在本地設備上更容易跑起來。