llama-quantize の使用方法: GGUF モデル量子化の概要

ラマ量子化の機能、基本コマンド、共通パラメータ、およびさまざまな量子化レベルでの音量と速度のトレードオフについて簡単に説明します。

llama-quantize は、llama.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_M または Q5_K_M から優先順位を付ける
  • 品質がより重要な場合は、Q6_K または Q8_0 にアップグレードしてください。
  • マシン リソースが不足している場合は、Q3 または Q2 を試してください。
  • 異なる量子化バージョンを比較するには、常に同じバッチのテスト問題を使用することが最善です

一文の要約: llama-quantize の中心的な価値は、単にモデルを小さくすることではなく、GGUF モデルをローカル デバイス上で実行しやすくすることです。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。