Transformers documentation

メソッドを選択

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

メソッドを選択

チェックポイントがすでに量子化されている場合は、そのチェックポイントがメソッドを決定します。事前量子化済みチェックポイントの読み込みの手順に従って読み込みます。そうでない場合は、ハードウェアと、モデルを読み込んだ後に実行する処理に基づいてメソッドを選択してください。

目標から始める

各行では、まず試すべき方法が推奨されています。特定の手法に決定する前に、完全な比較表を確認してください。

目標まずはなぜ
最小限のセットアップで、より少ないメモリでモデルを学習bitsandbytesキャリブレーションなしで読み込み時に4ビットまたは8ビットに量子化し、CUDA、XPU、HPU、CPUで動作し、保存とファインチューニングをサポートします。
QLoRAでファインチューニングbitsandbytesPEFT による 4-bit NF4 をサポートしています。HQQ、EETQ、GPTQ、SINQ、Quanto もファインチューニングをサポートしています。
torch.compileで推論を高速化torchaogenerate は静的キャッシュを使用して torchao モデルを自動的にコンパイルし、torchao には CUDA、XPU、CPU 向けの int4、int8、FP8 スキームが用意されています。
4ビット精度を最大限に引き出すGPTQ読み込み時にデータセットでキャリブレーションを行います。AWQまたはAutoRoundを使用する場合は、それぞれのライブラリで量子化してからチェックポイントをロードしてください。
Ada、Hopper、または Intel XPU で FP8 を実行する細粒度のFP8CUDAの計算能力8.9以上、またはXPUが必要です。FBGEMM FP8には、計算能力9.0以上、またはXPUが必要です。
BlackwellでFP4を実行するNVFP4読み込み時にNVIDIAの4ビット浮動小数点形式に量子化します。MXFP4は、計算能力7.5以上、XPU、およびCPUで実行できます。
Apple siliconで実行MetalMPS上で読み込み中に2、4、または8ビットに量子化します。GGUFファイルもMPS上で読み込むことができます。
llm-compressorで作成されたチェックポイントを読み込むcompressed-tensorscompressed-tensors形式のFP8、int4、int8チェックポイントをロードします。
4ビット未満に圧縮HQQまたはSINQキャリブレーションなしで読み込み時に2ビットまたは3ビットに量子化します。AQLM、VPTQ、SpQRのチェックポイントはさらに低いビット数に対応しますが、それぞれの専用ライブラリで量子化する必要があります。
Show the full comparison table
メソッドquant_methodワークフロービットハードウェア保存ファインチューニング自動コンパイル
AQLMaqlm事前量子化のみ1–2CUDA、CPU✅✅ aqlm>=1.0.2 に対応❌
AutoRoundauto-round事前量子化のみ2–8CUDA、XPU、CPU✅❌❌
AWQawq事前量子化のみ4CUDA、ROCm、XPU、CPU✅ ExLlama バックエンドを除く✅ gptqmodel>=5.0.0 に対応❌
BitNetbitnet事前量子化のみ1.58CUDA✅onlineモードでは、autobitlinearのみ❌
bitsandbytesbitsandbytes読み込み中4, 8CUDA、XPU、HPU、CPU✅✅❌
compressed-tensorscompressed-tensors事前量子化のみチェックポイントで設定CUDA、XPU、MPS、CPU✅✅ FP8カーネルの場合を除く✅
EETQeetq読み込み中8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8読み込み中8CUDA(compute capability 9.0 以上)、XPU✅❌❌
細粒度のFP8fp8, mxfp8読み込み中8CUDA (compute capability 8.9+)、XPU✅❌✅
Four Over Sixfouroversix読み込み中4CUDA(Blackwell 上で最速)、CPU✅keep_master_weights=True の場合のみ❌
FP-Quantfp_quant読み込み中4CUDA、XPU✅store_master_weights=True の場合のみ❌
GGUFgguf事前量子化のみ1–8CUDA、MPS、XPU、CPU❌❌✅
GPTQgptq読み込み中、キャリブレーションあり2, 3, 4, 8CUDA、ROCm、XPU、CPU✅✅❌
HIGGShiggs読み込み中2, 3, 4CUDA✅❌❌
HQQhqq読み込み中1, 2, 3, 4, 8CUDA、XPU✅✅❌
Metalmetal読み込み中2, 4, 8MPS✅❌❌
MXFP4mxfp4読み込み中4CUDA(計算能力 7.5 以上)、XPU、CPU✅❌❌
NVFP4nvfp4読み込み中4Blackwell GPU 1 台❌❌✅
Quantoquanto読み込み中2, 4, 8CUDA、MPS、XPU、CPU❌✅❌
Quarkquark事前量子化のみチェックポイントで設定CUDA、ROCm、CPU❌❌❌
SINQsinq読み込み中2, 3, 4, 6, 8CUDA GPU 1 台、CPU✅✅❌
SpQRspqr事前量子化のみ3CUDA✅❌❌
torchaotorchao読み込み中4, 8CUDA、XPU、CPU✅8ビット方式のみ✅
VPTQvptq事前量子化のみ1–8CUDA✅❌❌

量子化ピッカーでメモリを確認する

量子化ピッカーは、KVキャッシュを含む各精度でモデルがハードウェアに収まるかを推定します。モデル、ハードウェア、およびメソッドに求める要件を選択すると、Compareビューに該当するメソッドがリスト表示されます。

ベンチマーク

以下のベンチマークでは、Llama 3.1 8B と 70B に対して複数の手法を比較しています。報告される指標は、精度、トークン/秒でのスループット、ピークメモリ(GB)、および量子化時間です。

Llama 3.1 70B は bf16 で 2 枚の NVIDIA A100 80GB GPU 上で実行されました。FP8 手法は 1 枚の NVIDIA H100 80GB GPU 上で、その他のすべての手法は 1 枚の NVIDIA A100 80GB GPU 上で実行されました。スループットはバッチサイズ 1、生成トークン数 64 で測定しました。結果には、手法がサポートしている場合に torch.compile と Marlin カーネルが含まれています。

結果は3つのビット範囲に分類されます。

ビットベンチマークされた手法メモリとbf16精度
8bitsandbytes int8、HQQ、Quanto、torchao、FP8約2倍小さいbf16に非常に近い
4AWQ、GPTQ、HQQ、bitsandbytes NF4、SINQ約4分の1のサイズHigh. AWQ と GPTQ は多くの場合で上位に位置しますが、キャリブレーションが必要です。
4未満VPTQ、AQLM、2-bit GPTQ4倍以上小さい特に2ビットでは、性能の低下が顕著に見られます。AQLMおよびVPTQは、量子化に長い時間を要します。

本番環境で手法を選択する前に、ご自身のタスクとハードウェアでベンチマークを実行し、精度と速度を確認してください。

Update on GitHub