FP8量子化(8-bit浮動小数点推論)(エフピーエイト リョウシカ)
NVIDIA H100/H200・AMD MI300X等の最新GPU内蔵のFP8(E4M3/E5M2)演算ユニットを活用したLLM推論・訓練高速化技術。INT8推論より精度が高く、FP16より2倍高速な行列乗算が可能。vLLMおよびTensorRT-LLMが2024年にFP8を本格サポートした。
FP8量子化とは
FP8(8-bit Floating Point)は2022年にNVIDIAがHopper(H100)GPU向けに導入した8ビット浮動小数点データ型です。従来のINT8量子化(整数)と異なり、浮動小数点の指数部・仮数部を持つため、LLMの重みや活性化値の広い値域・正規分布をより正確に表現できます。
2024年、vLLM(v0.4.0)・TensorRT-LLM(v0.9.0)・SGLang(v0.2.0)がFP8をネイティブサポートし、商用LLMサービングにおけるINT8の後継規格として普及が加速しました。
FP8の2つのフォーマット
| フォーマット | 指数ビット | 仮数ビット | 最大値 | 用途 |
|---|---|---|---|---|
| E4M3 | 4bit | 3bit | 448 | 重み・活性化値(精度優先) |
| E5M2 | 5bit | 2bit | 57344 | 勾配(値域優先) |
LLM推論ではE4M3を主に使用。FP8 E4M3はFP16と比較して:
- 演算速度: H100 FP8 Tensor Core = 3958 TFLOPS(FP16の2倍)
- 値域: ±448(FP16の±65504より狭いが実用上問題なし)
H100 GPU性能仕様(FP8推論)
| GPU | FP16 TFLOPS | FP8 TFLOPS | 比率 | メモリ帯域 |
|---|---|---|---|---|
| H100 SXM5 | 1979 | 3958 | 2× | 3.35 TB/s |
| H100 PCIe | 1513 | 3026 | 2× | 2.0 TB/s |
| H200 SXM | 1979 | 3958 | 2× | 4.8 TB/s |
| RTX 4090 | 82.6 | 165.2 | 2× | 1.0 TB/s |
LLM推論速度比較(H100 SXM5, Llama-3.1-70B)
| 量子化 | バッチサイズ1 | バッチサイズ32 | VRAM使用量 |
|---|---|---|---|
| BF16 | 55 tok/s | 810 tok/s | 140GB(2枚必要) |
| INT8 | 72 tok/s | 1,120 tok/s | 72GB(1枚可) |
| FP8 | 85 tok/s | 1,490 tok/s | 72GB(1枚可) |
| GPTQ-Int4 | 68 tok/s | 920 tok/s | 38GB |
| AWQ-Int4 | 78 tok/s | 1,050 tok/s | 37GB |
主要フレームワークのFP8サポート状況
| フレームワーク | FP8対応バージョン | 特徴 |
|---|---|---|
| vLLM | v0.4.0(2024.04) | FP8 KVキャッシュ量子化も対応 |
| TensorRT-LLM | v0.9.0(2024.03) | NVIDIA公式。FP8 Smooth Quant実装 |
| SGLang | v0.2.0(2024.06) | RadixAttentionとFP8の組合せ |
| Hugging Face TGI | v2.1.0(2024.07) | MARLIN FP8 kernelを採用 |
RTX 4090でのFP8活用
RTX 4090(Ada Lovelace)もFP8 Tensor Coreを搭載しており、vLLMでFP8量子化を有効化すると:
- Llama-3.1-8B FP8: FP16比 +65% スループット向上
- Mistral-7B-v0.3 FP8: FP16比 +60%
- Qwen2.5-14B FP8: FP16比 +45%
from vllm import LLM
llm = LLM(
model="meta-llama/Llama-3.1-70B-Instruct",
quantization="fp8",
dtype="bfloat16",
max_model_len=32768,
)
FP8訓練(事前学習・ファインチューニング)
NVIDIA Transformer Engine(TE)はH100のFP8 Tensor Coreを使った訓練を2022年に実装。GPT-3規模のモデル事前学習をFP8で行いBF16比1.5〜2倍の訓練速度を達成。2024年時点では主要LLMベンダー(Meta、Mistral AI、Cohere等)がH100クラスタでFP8訓練を本番採用しています。
よくある質問(FAQ)
Q1: FP8はINT8量子化と何が違う? A: INT8は整数(-128〜127)、FP8は浮動小数点(指数+仮数)。FP8はLLMの重みの非均一分布をより精確に表現でき、INT8より量子化誤差が小さい。H100では両方の専用Tensor Coreを搭載するが、2024年時点でFP8が標準になりつつある。
Q2: H100がなければFP8は使えない? A: RTX 4090(Ada Lovelace)もFP8 Tensor Coreを搭載しており、vLLM 0.4.0以降で利用可能。ただし性能向上率はH100より低い場合がある。A100はFP8非対応。
Q3: FP8量子化モデルはHugging Faceからダウンロードできる? A: 2024〜2025年にかけてFP8量子化済みモデルの配布が増加。neuralmagic・nm-testing等のユーザーがvLLM向けFP8モデルを多数公開している。
まとめ
- FP8はH100/RTX 4090のFP8 Tensor Coreを活用したINT8後継の量子化手法
- E4M3(重み/活性化用)とE5M2(勾配用)の2フォーマット。推論はE4M3主体
- H100でFP16比2倍のTFLOPS、vLLMで1.4〜1.7倍スループット向上
- vLLM・TensorRT-LLM・SGLangが2024年に本格対応し商用サービングの主流へ