Transformers documentation
メソッドを選択
はじめに
ベースクラス
モデル
プリプロセッサ
推論
Pipeline API
Generate API
最適化
モデルとチャットする
サービング
トレーニング
ハードウェア
量子化
エコシステム統合
リソース
API
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).
メソッドを選択
チェックポイントがすでに量子化されている場合は、そのチェックポイントがメソッドを決定します。事前量子化済みチェックポイントの読み込みの手順に従って読み込みます。そうでない場合は、ハードウェアと、モデルを読み込んだ後に実行する処理に基づいてメソッドを選択してください。
目標から始める
各行では、まず試すべき方法が推奨されています。特定の手法に決定する前に、完全な比較表を確認してください。
| 目標 | まずは | なぜ |
|---|---|---|
| 最小限のセットアップで、より少ないメモリでモデルを学習 | bitsandbytes | キャリブレーションなしで読み込み時に4ビットまたは8ビットに量子化し、CUDA、XPU、HPU、CPUで動作し、保存とファインチューニングをサポートします。 |
| QLoRAでファインチューニング | bitsandbytes | PEFT による 4-bit NF4 をサポートしています。HQQ、EETQ、GPTQ、SINQ、Quanto もファインチューニングをサポートしています。 |
torch.compileで推論を高速化 | torchao | generate は静的キャッシュを使用して torchao モデルを自動的にコンパイルし、torchao には CUDA、XPU、CPU 向けの int4、int8、FP8 スキームが用意されています。 |
| 4ビット精度を最大限に引き出す | GPTQ | 読み込み時にデータセットでキャリブレーションを行います。AWQまたはAutoRoundを使用する場合は、それぞれのライブラリで量子化してからチェックポイントをロードしてください。 |
| Ada、Hopper、または Intel XPU で FP8 を実行する | 細粒度のFP8 | CUDAの計算能力8.9以上、またはXPUが必要です。FBGEMM FP8には、計算能力9.0以上、またはXPUが必要です。 |
| BlackwellでFP4を実行する | NVFP4 | 読み込み時にNVIDIAの4ビット浮動小数点形式に量子化します。MXFP4は、計算能力7.5以上、XPU、およびCPUで実行できます。 |
| Apple siliconで実行 | Metal | MPS上で読み込み中に2、4、または8ビットに量子化します。GGUFファイルもMPS上で読み込むことができます。 |
| llm-compressorで作成されたチェックポイントを読み込む | compressed-tensors | compressed-tensors形式のFP8、int4、int8チェックポイントをロードします。 |
| 4ビット未満に圧縮 | HQQまたはSINQ | キャリブレーションなしで読み込み時に2ビットまたは3ビットに量子化します。AQLM、VPTQ、SpQRのチェックポイントはさらに低いビット数に対応しますが、それぞれの専用ライブラリで量子化する必要があります。 |
Show the full comparison table
| メソッド | quant_method | ワークフロー | ビット | ハードウェア | 保存 | ファインチューニング | 自動コンパイル |
|---|---|---|---|---|---|---|---|
| AQLM | aqlm | 事前量子化のみ | 1–2 | CUDA、CPU | ✅ | ✅ aqlm>=1.0.2 に対応 | ❌ |
| AutoRound | auto-round | 事前量子化のみ | 2–8 | CUDA、XPU、CPU | ✅ | ❌ | ❌ |
| AWQ | awq | 事前量子化のみ | 4 | CUDA、ROCm、XPU、CPU | ✅ ExLlama バックエンドを除く | ✅ gptqmodel>=5.0.0 に対応 | ❌ |
| BitNet | bitnet | 事前量子化のみ | 1.58 | CUDA | ✅ | onlineモードでは、autobitlinearのみ | ❌ |
| bitsandbytes | bitsandbytes | 読み込み中 | 4, 8 | CUDA、XPU、HPU、CPU | ✅ | ✅ | ❌ |
| compressed-tensors | compressed-tensors | 事前量子化のみ | チェックポイントで設定 | CUDA、XPU、MPS、CPU | ✅ | ✅ FP8カーネルの場合を除く | ✅ |
| EETQ | eetq | 読み込み中 | 8 | CUDA | ✅ | ✅ | ❌ |
| FBGEMM FP8 | fbgemm_fp8 | 読み込み中 | 8 | CUDA(compute capability 9.0 以上)、XPU | ✅ | ❌ | ❌ |
| 細粒度のFP8 | fp8, mxfp8 | 読み込み中 | 8 | CUDA (compute capability 8.9+)、XPU | ✅ | ❌ | ✅ |
| Four Over Six | fouroversix | 読み込み中 | 4 | CUDA(Blackwell 上で最速)、CPU | ✅ | keep_master_weights=True の場合のみ | ❌ |
| FP-Quant | fp_quant | 読み込み中 | 4 | CUDA、XPU | ✅ | store_master_weights=True の場合のみ | ❌ |
| GGUF | gguf | 事前量子化のみ | 1–8 | CUDA、MPS、XPU、CPU | ❌ | ❌ | ✅ |
| GPTQ | gptq | 読み込み中、キャリブレーションあり | 2, 3, 4, 8 | CUDA、ROCm、XPU、CPU | ✅ | ✅ | ❌ |
| HIGGS | higgs | 読み込み中 | 2, 3, 4 | CUDA | ✅ | ❌ | ❌ |
| HQQ | hqq | 読み込み中 | 1, 2, 3, 4, 8 | CUDA、XPU | ✅ | ✅ | ❌ |
| Metal | metal | 読み込み中 | 2, 4, 8 | MPS | ✅ | ❌ | ❌ |
| MXFP4 | mxfp4 | 読み込み中 | 4 | CUDA(計算能力 7.5 以上)、XPU、CPU | ✅ | ❌ | ❌ |
| NVFP4 | nvfp4 | 読み込み中 | 4 | Blackwell GPU 1 台 | ❌ | ❌ | ✅ |
| Quanto | quanto | 読み込み中 | 2, 4, 8 | CUDA、MPS、XPU、CPU | ❌ | ✅ | ❌ |
| Quark | quark | 事前量子化のみ | チェックポイントで設定 | CUDA、ROCm、CPU | ❌ | ❌ | ❌ |
| SINQ | sinq | 読み込み中 | 2, 3, 4, 6, 8 | CUDA GPU 1 台、CPU | ✅ | ✅ | ❌ |
| SpQR | spqr | 事前量子化のみ | 3 | CUDA | ✅ | ❌ | ❌ |
| torchao | torchao | 読み込み中 | 4, 8 | CUDA、XPU、CPU | ✅ | 8ビット方式のみ | ✅ |
| VPTQ | vptq | 事前量子化のみ | 1–8 | CUDA | ✅ | ❌ | ❌ |
量子化ピッカーでメモリを確認する
量子化ピッカーは、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 | 精度 |
|---|---|---|---|
| 8 | bitsandbytes int8、HQQ、Quanto、torchao、FP8 | 約2倍小さい | bf16に非常に近い |
| 4 | AWQ、GPTQ、HQQ、bitsandbytes NF4、SINQ | 約4分の1のサイズ | High. AWQ と GPTQ は多くの場合で上位に位置しますが、キャリブレーションが必要です。 |
| 4未満 | VPTQ、AQLM、2-bit GPTQ | 4倍以上小さい | 特に2ビットでは、性能の低下が顕著に見られます。AQLMおよびVPTQは、量子化に長い時間を要します。 |
Update on GitHub本番環境で手法を選択する前に、ご自身のタスクとハードウェアでベンチマークを実行し、精度と速度を確認してください。