E4M3(FP8)
E4M3は、8bit浮動小数点(FP8)の代表格です。指数4bit・仮数3bit・符号1bitで、表せる最大値は±448。FP16の半分のサイズで「推論にぎりぎり足りる細かさ」を狙った配分で、重み・活性値・KVキャッシュ・NVFP4のスケールと、現行世代のあちこちに顔を出します。
FP8は2種類ある — E4M3とE5M2
| 形式 | 配分 | 最大値 | 主な使いどころ |
|---|---|---|---|
| E4M3 | 指数4+仮数3 | ±448 | 重み・活性値・KVキャッシュ(精度寄り) |
| E5M2 | 指数5+仮数2 | ±57,344 | 学習時の勾配(レンジ寄り) |
同じ8bitでも、指数を1bit増やすと表せる範囲は128倍広がり、その分だけ細かさが半分になります。推論の文脈で目にするFP8はほぼE4M3で、E5M2は勾配のような桁の暴れる値のための形式です(NVIDIA・Arm・Intelの共同提案として標準化されました)。
KVキャッシュを半分にする
当サイトのKVキャッシュ計算はFP16(1要素2バイト)を前提にした保守側の値です。例えばLlama 3.3 70Bの8Kトークン時のKVキャッシュは約2.7GBですが、これをE4M3で持てば単純計算で半分の約1.34GBになります。対応ランタイムにはKVキャッシュを8bitで保持するオプションがあり、長いコンテキストでVRAMが苦しいときの現実的な逃げ道です。当サイトの判定はFP16前提の保守側なので、8bit KVキャッシュを使う場合は目安より余裕が出る方向に働きます。
4bitの世界ではスケールとして働く
NVFP4は、E2M1の重み16個ごとの共有スケールにE4M3を使います。E8M0と違って2の冪乗の間の倍率も表せることが、MXFP4に対する精度面の強みの核心です。また、E4M3/E5M2の要素にE8M0のブロックスケールを添えたMX版がMXFP8で、Kimi K3は活性値にこれを採用しています(量子化を織り込んだ学習=QAT)。
ハードウェア対応は世代依存
FP8のネイティブ演算はTensor Coreの世代に依存し、対応世代ではFP16の倍の演算スループットが理論上見込めます。ただしローカル実行では、フォーマットにハードウェアが対応していることと、手元のランタイム・配布ファイルがその形式を使えることは別の話です——この注意はNVFP4の項で述べたものと同じです。
関連用語
- NVFP4 — NVIDIA版のFP4。ブロック16・E4M3スケールで精度を取り、実効4.5bit
- KVキャッシュ — 会話の文脈を保持する作業メモリ。GQA・MLA・ハイブリッドアテンションでサイズが数十倍変わる
- Tensor Core — 行列積専用の演算ユニット。ただし1人ぶんの生成速度は帯域で決まる
参考資料(出典)
▶ あなたのPCで動くモデルを自動判定する(スペック送信なし・ブラウザ内完結)
上記はアフィリエイトリンクです。経由して課金された場合、当サイトに紹介料が入ります。