MXFP4/MXFP8量子化 — ローカルLLM実行の新常識
MXFP4/MXFP8はLLM向け新4ビット量子化標準。120Bパラメータモデルが1枚の80GB GPUで動作、llama.cpp/vLLMが対応。
2025-2026年、数値フォーマットの革命がローカルLLM推論を変えた。MXFP4(Microscaling FP4)— OCP標準化の4ビット浮動小数点フォーマット — により、120Bパラメータのモデルが1枚の80GB GPUに収まり、FP16に近い品質を実現する。
MXFP4とは#
MXFP4はブロック浮動小数点4ビットフォーマットで、OCP(v1.0、2023年9月)により標準化。Microsoft、AMD、Arm、Intel、Meta、NVIDIA、Qualcommが支援。
構造: 32要素のブロックが1つの8ビット指数スケール(E8M0)を共有。各要素はE2M1(符号1、指数2、仮数1)。値の範囲[-6, 6]。コスト:4.25ビット/要素(32×4 + 8ビット / 32)。
ファミリー:MXFP8(E5M2/E4M3)、MXFP6(E3M2/E2M3)、MXFP4(E2M1)、MXINT8。
NVFP4(NVIDIA、2025年6月):ブロックサイズ16(標準は32)、スケールにFP8 E4M3(E8M0ではなく)、加えてテンソル単位のFP32スケール。4.5ビット/要素で高精度。Blackwell FP4テンソルコア向けに設計。
HiF4(2026年):別の4ビットBFP変種。LLaMA、Qwen、Mistral、DeepSeek-V3.1でNVFP4より高精度と主張。
MXFP4/NVFP4を使用するモデル#
| モデル | フォーマット | 詳細 |
|---|---|---|
| DeepSeek-V4(1.6T MoE) | NVFP4 QAT | エキスパート重み+スパースアテンションインデクサーをFP4で |
| GPT-OSS 120B/20B | MXFP4 QAT | MoEエキスパート(>90%パラメータ)をMXFP4で学習。120Bが1×80GB GPUに搭載 |
| Llama 4 Scout/Maverick | NVFP4 | NVIDIAチェックポイント公開 |
| Qwen 3, 3.6 | NVFP4 | nvidia-modelopt経由で量子化 |
| DeepSeek-R1 | NVFP4/MXFP4 | NVIDIA: NVFP4、AMD: MXFP4-ASQ |
2026年4月時点で、OpenAI、Anthropic、Google、そしてほとんどのオープンソースas-a-serviceプロバイダーがMXFP4をデフォルト推論フォーマットとして使用。
llama.cppとFP4#
llama.cppは2026年初頭からFP4をサポート:
- NVFP4(メインライン):Type ID
GGML_TYPE_NVFP4 = 40。CUDA dp4aカーネル、汎用MMQカーネル、SYCL、Vulkan — すべてマージ済み。Blackwellネイティブディスパッチはビルドb8967(2026年4月)。 - MXFP4(ik_llama.cpp — Iwan Kawrakowのフォーク):2025年11月からサポート、fused-MoE最適化を含むGPT-OSS対応。
ハードウェアの現実:
| GPU | NVFP4パフォーマンス |
|---|---|
| Blackwell(RTX 5090、B200、GB200) | フルテンソルコアアクセラレーション |
| Ada Lovelace(RTX 4090) | メモリ節約、小さな高速化 |
| Ampere(RTX 3090、A100) | メモリ節約のみ、計算性能向上なし |
| AMD MI300X | ROCm経由でMXFP4対応 |
vLLMとFP4#
vLLMはBlackwell GPU上でMXFP4 W4A4とNVFP4 ModelOptフォーマットの両方をサポート:
- MXFP4 W4A4: 重みとアクティベーションの両方が
float4_e2m1fn_x2。シングルスケール(オンライン、ベースライン)とデュアルスケール(チェックポイント準備が必要)の2方式。 - NVFP4: HFから事前量子化モデルを
--quantization modeloptでロード。DenseとMoEの両方に対応。 - KVキャッシュFP8:
--kv-cache-dtype fp8— 実行時にKVキャッシュを量子化。
ベンチマーク(Spheron、2026年4月)— Llama 3.3 70B:
| GPU | 精度 | Tok/s | VRAM(重み) | コスト/100万トークン |
|---|---|---|---|---|
| B200 SXM6 | NVFP4 | ~12,841 | ~35 GB | ~$0.161 |
| B200 SXM6 | FP8 | ~6,972 | ~70 GB | ~$0.296 |
| H100 SXM | FP8 | ~3,066 | ~70 GB | ~$0.263 |
| A100 80G | AWQ INT4 | ~1,800 | ~35 GB | ~$0.253 |
量子化オプション#
llama.cpp(静的、オフライン)#
llama-quantizeはオフラインで量子化を適用。オプション:
- K-quants: Q2_K → Q6_K、S/M/_Lでテンソルごとの混合制御
- I-quants: IQ1_S → IQ4_NL、IQ4_XS — 非線形、キャリブレーションが必要
- NVFP4/MXFP4: 最新の静的フォーマット
- KVキャッシュ実行時:
--cache-type-k q4_0 --cache-type-v q4_0
vLLM(動的)#
- FP8オンライン動的:
--quantization fp8。アクティベーションはテンソルごとに動的スケール。キャリブレーション不要。 - FP8静的+動的アクティベーション: 重みは静的、アクティベーションは動的。
- FP8 KVキャッシュ動的:
--kv-cache-dtype fp8。ヘッドごとのスケール対応。 - NVFP4: 静的重み(ModelOpt経由)。アクティベーションは静的または動的。
品質とビット幅#
- MXFP4ベースラインはMMLU-Proで最大10%低下(DeepSeek-R1、FP16比)。
- NVFP4はこの差を大部分埋める。
- 新技術(OAS、MBS、ICML 2026)により、MXFP4は6.2%のGEMMオーバーヘッドでNVFP4の1%以内に。
- AMD評価(2025年10月):MXFP4の精度はモデルサイズに比例。DeepSeek-R1-0528はMXFP4で96%+を維持。小規模モデル(70B)は劣化が大きく、MXFP6や混合MXFP4-MXFP6で大幅改善。
結論#
MXFP4とNVFP4が状況を一変させた:120Bパラメータのモデルが1枚の1M+のクラスタは不要に。llama.cppとvLLMのサポートも成熟し、強力なLLMのセルフホスティングはもはや手の届かないものではない。