E8M0
E8M0は、8bitすべてを指数に使うスケール専用の浮動小数点形式です。符号なし・仮数なし——表せるのは2の冪乗(2⁻¹²⁷〜2¹²⁷)だけ(1コードはNaN予約)。単独で数を持つためではなく、MXFP4などのブロック共有スケールのために存在します。
仮数ゼロという割り切り
普通の浮動小数点は「仮数 × 2^指数」で値を作りますが、E8M0は仮数を持たないため倍率は必ず2の冪乗になります。2.5倍や3倍は表せず、2倍か4倍のどちらかに丸めるしかありません。引き換えに得るのは実装の軽さです。2の冪乗の掛け算は指数の足し算(ビットシフト相当)で済み、8bit指数のレンジはFP32と同じ広さをカバーするので、どんなに桁が暴れるテンソルでもスケールが飽和しません。
MXFP4の「+0.25bit」の正体
MXFP4は重み32個ごとにE8M0のスケールを1個添えます。1重みに均すと 8 ÷ 32 = 0.25bit。E2M1の4bitと合わせて実効4.25bit——MXFP4のページに出てくる「+0.25bit」は、この8bitスケールの割り勘です。
精度の弱点と、それを埋めた後継
ブロックに本当に必要な倍率が2の冪乗からずれていると、そのずれはブロック内の32個全部の丸め誤差として現れます。NVFP4がスケールをE4M3(仮数あり)に替え、ブロックも16個に縮めたのは、まさにここを埋めるためです。スケールの表現力という一見地味な違いが、同じ「4bit量子化」の品質差になって現れます。
関連用語
- MXFP4 — 32個ごとに共有スケールを持つ4bit形式。実効4.25bitでQ4_K_Mより軽い
- E2M1(FP4) — 4bitで表せる値はたった16通り。MXFP4/NVFP4の重み1個の中身
- NVFP4 — NVIDIA版のFP4。ブロック16・E4M3スケールで精度を取り、実効4.5bit
参考資料(出典)
▶ あなたのPCで動くモデルを自動判定する(スペック送信なし・ブラウザ内完結)
上記はアフィリエイトリンクです。経由して課金された場合、当サイトに紹介料が入ります。