🦥Unsloth Dynamic NVFP4 実行ガイド
Unsloth Dynamic NVFP4がNVIDIA Blackwell GPUで高速かつ高精度な4ビット推論をどのように実現するかを学びましょう。
Unsloth Dynamic NVFP4 は、NVIDIA Blackwell GPU 上で動作する量子化モデル形式で、より高速かつ高精度な4ビット推論向けに設計されています。NVIDIA ネイティブの NVFP4 精度と Unsloth Dynamic 2.0 量子化を組み合わせ、VRAM 使用量を減らしつつ速度を向上させます。このガイドでは FP4 量子化を解説し、NVFP4 を他の形式と比較し、次のようなモデルを実行する方法を示します。 Qwen3.8, Gemma 4 と Qwen3.6 RTX 5050-5090、B200、RTX PRO 6000 などのGPU上で、vLLM または SGLang を使ってローカルに実行できます。
Dynamic NVFP4 は、すべての層を FP4 に押し込むのではなく、重要な層を FP8 (W8A8) または BF16 のままにし、残りを W4A4 (W4A16 ではない) にすることで動作します。これにより最大で 2.5倍高速な推論 W4A4 が Blackwell GPU の FP4 Tensor Core を活用するためです。すべての量子化版について、FP8 KV キャッシュのキャリブレーションも提供しており、 コンテキスト長を2倍に延長.
8月14日: Qwen3.8-27B が、私たちの NVFP4 量子化版とともに公開されました。
すべて Gemma 4 モデルは現在、Unsloth Dynamic NVFP4 量子化版として利用できます: E2B、E4B、12B Unified、26B-A4B MoE、31B Dense。
次を確認してください Unsloth Dynamic NVFP4 コレクション すべてのモデルアップロードを対象に。
Float4 と他の精度
より高速な GPU では、 行列乗算の数値精度を下げることです。行列乗算ユニットに必要なトランジスタ数は、 仮数の二乗に関係しています。仮数によって、数値にどれだけの「小数」桁を持たせられるかが決まります。つまり、ビット数が多いほど小数をより正確に表現できます。たとえば、仮数ビットが多ければ 0.121332 を表現できますが、仮数ビットが少ないと 0.1 に丸められます。
FP32 には 23 個の仮数ビットがあるため、23^2 + 8 指数ビット = 537 の領域が必要です。Bfloat16 には 7 個の仮数ビットがあるので、7^2 + 8 指数 = 57 の領域です。つまり、bfloat16 は FP32 より約 9 倍少ない領域で済みます。さらに、仮数ビットが 3 個の float8 では 3^2 + 4 指数 = 13 となり、FP32 より 41 倍少ない領域で済みます!
最後に、float4 は仮数ビット 1 個と指数 2 個なので、必要な領域は 3。これは FP32 より驚異の 179 倍少ない領域で済むことを意味し、実質的には 同じ領域で、GPU は FP32 の乗算 FLOPs と比べて約 179 倍多くの FP4 行列乗算を実行できます!

NVFP4 vs MXFP4


MXFP4 と呼ばれる別の FP4 形式があります。NVFP4 より精度が低いのは、次の 2 つの理由によります:
NVFP4 はブロックサイズ 16 を使用しますが、MXFP4 は 32 です。これにより外れ値を分離しやすくなり、より小さな重みのサブセットごとにスケーリング係数を与えられるため、精度が向上します
各ブロックで E8M0(2 のべき乗によるスケーリング)ではなく E4M3 (FP8) スケールを使用します。FP8 型のブロックサイズを使う方が、特に LLM ではかなり良さそうです。
性能分析
私たちの新しい Dynamic NVFP4 Qwen3.6 量子化版は約2.5倍高速 他の NVFP4 量子化版よりも高速で、 より高い性能 および同等のファイルサイズです。Qwen3.6-27B NVFP4 を実行してください 2.5倍高速 で 24GB VRAM および Qwen3.6-35B-A3B 1.7倍高速 で 32GB VRAM。さらに私たちは FP8 KV キャッシュのキャリブレーション を追加し、コンテキスト長を2倍に延長できます!NVFP4 には、RTX 50X、DGX Spark(参照 Unsloth Dynamic NVFP4)、B200、B300 GPU が必要です。古い GPU では、私たちの GGUF がよく動作します!

すべてのベンチマークは 1x B200、128 同時実行で行っています。より高い同時実行数では 35B が 17,561 tokens/s まで向上します。さらに、私たちは新しい Qwen3.8 NVFP4 量子化版も公開しました:
Qwen3.8-27B NVFP4 (新規)
35B-A3B の NVFP4 版も 2 種類公開します:
Qwen3.6-35B-A3B-NVFP4-Fast これは完全な W4A4 量子化版で、1.79倍高速です
Qwen3.6-35B-A3B-NVFP4 こちらは少し大きいですが、より高精度で 1.56倍高速です
精度ベンチマークでは、FP8、BF16、NVIDIA の NVFP4、そして私たちの NVFP4 に対して MMLU-Pro、AIME 2025、GPQA を実施しました。より高速な量子化版もすべてで同様の結果を示しています:

Qwen3.8-27B NVFP4 (新規)
Qwen3.6-35B-A3B-NVFP4 (1.56倍高速)
Qwen3.6-27B-NVFP4 (2.5倍高速)
Qwen3.6-35B-A3B-NVFP4-Fast (1.79倍高速)
追加の高速化のため、MTP テンソルも量子化版に直接組み込まれています。 精度向上は、Qwen3.6 のチャットテンプレートとデータセットキャリブレーションの改善によるものです。以前のチャットテンプレート更新を活用し、コード生成やツール呼び出しの一貫性を高めつつ、ループやその他報告されている問題を減らしています。キャリブレーションでは、UltraChat に加えて、コード生成、ツール呼び出し、チャット向けに最適化した私たちのデータセットを組み合わせています。
デコード速度(tokens per person)では、私たちのものは 27B で 1.03倍高速、35B で 1.17倍および 1.22倍高速です。

概要
以下は、Gemma 4 や Qwen3.6 を含む、使用可能なモデルのハードウェア要件です。あわせて、得られる全体的な速度向上もご覧ください:
Gemma 4:

Qwen3.6:
NVFP4 ベンチマーク
NVFP4 は Blackwell Tensor Core 上で 4 ビット重みと行列乗算を直接実行します。私たちの Qwen3.6 NVFP4 量子化版は W4A4 を使うため、実際に FP4 Tensor Core を利用し、W4A16 を使う NVIDIA のものよりデコードが高速です。精度を維持するために層を動的に量子化しており、FP8 と BF16 との比較を含め、すべての量子化版について MMLU-Pro、AIME 2025、GPQA を実施しました。
Qwen3.6-27B NVFP4 精度ベンチマーク
Unsloth
86.25
86.34
93.12
NVIDIA
85.96
86.87
93.12
FP8
86.11
86.87
93.75
BF16
85.96
88.13
93.33
Qwen3.6-35B-A3B NVFP4 精度ベンチマーク
Unsloth
85.85
86.74
92.29
Unsloth Fast
85.58
87.75
91.67
NVIDIA
85.60
87.12
91.88
FP8
85.75
86.74
93.12
BF16
85.75
86.36
92.50
すべてのベンチマークの出力長も確認しましたが、同等だったため、新しい NVFP4 量子化版が長く考え込むことはなく、量子化の目的を損ないません!(つまり、2倍高速でも 2倍多く考えるなら無意味です)

NVFP4 チュートリアルを実行
NVFP4 量子化版を実行するには、以下の Qwen3.6-27B を実行するコマンドを参照してください vLLM と SGLang (モデル名は Qwen3.6-35-A3B-NVFP4).
vLLM チュートリアル
すべての NVFP4 モデルを vLLMで実行できます。MoE バックエンドは選択しないでください。vLLM に選ばせてください。たとえば Marlin は 2.5倍遅いです!参照 Marlin vs Flashinfer vs cutlass vs cute-DSLDGX Spark をお持ちの場合は、参照 Unsloth Dynamic NVFP4 次を使用する必要があります --moe-backend flashinfer_b12x さもないと、推論がかなり遅くなります。
別の venv に vLLM をインストールするには:
次に、35B Fast バリアントをサーブするには:
変更 unsloth/Qwen3.6-35B-A3B-NVFP4-Fast を NVFP4 量子化版の名前に!
MTP / speculative decoding(デコードは高速ですが、スループットはやや低下)を有効にするには、次を使用します:
Torchcodec に関する問題が発生した場合は、以下を実行してから vllm を再起動してください。
DGX Spark チュートリアル
DGX Spark に正しいカーネルが入っていることを確認するには(さもないと 推論が2倍遅くなります)、まず次を確認します:
エラーにならないはずです。もしエラーになる場合は、vllm を更新するか、次で再インストールしてください:
DGX Spark で vLLM を使ってサーブするには:
Torchcodec に関する問題が発生した場合は、以下を実行してから vllm を再起動してください。
SGLang チュートリアル:
すべての NVFP4 モデルを SGLang。モデル名は目的のものに置き換えるのを忘れないでください。
Qwen3.6:
Gemma 4:
Gemma 4 およびその他
Gemma 4 の各バリアントには、現在 Unsloth Dynamic NVFP4 チェックポイントがあります。
Gemma-4 は、1x B200 で 128 同時実行時、BF16 と比べてスループットが最大 1.44倍向上すると示しています。Qwen3.5-122B-A10B は 1.38倍高速で、GLM-4.7-Flash は 1.27倍高速です。

Marlin vs Flashinfer vs cutlass vs cute-DSL
Marlin カーネルは W4A4 をうまくサポートしていないことも確認しました。これを有効にすると性能が 2.5倍低下します。したがって、CUTLASS、Flashinfer-TRTLLM、または Cute-DSL(vLLM で自動有効化)を使用してください!また、DGX Spark をお持ちの場合は、参照 Unsloth Dynamic NVFP4 次を使用する必要があります --moe-backend flashinfer_b12x さもないと、推論が 2.5倍遅くなります。
したがって、バックエンドは設定しないでください。vLLM が最適なものを自動選択します。
NVIDIA 27B
W4A16
marlin(自動)
115.6
2,403
unsloth 27B
W4A4
marlin
105.6
2,127
unsloth 27B
W4A4
cutlass
113.5
6,681
unsloth 27B
W4A4
flashinfer_trtllm
112.6
6,158
unsloth 27B
W4A4
cute-DSL(自動)
125.9
6,863
NVIDIA 35B-A3B
W4A4
marlin(自動)
240.8
8,721
unsloth 35B-A3B
W4A4
marlin
215.8
8,619
unsloth 35B-A3B
W4A4
cutlass
158.3
11,017
unsloth 35B-A3B
W4A4
cute-DSL(自動)
295.2
15,636
最終更新
役に立ちましたか?

