FP8とは
FP8とは、数値を8ビット(8桁の0と1)で表す、AI向けの省メモリな数値形式です。AIの計算では、数値をどれだけ細かく表すか(精度)をあえて粗くすると、メモリの消費や計算量が減って処理が速くなります。FP8は、よく使われる32ビットや16ビットの数値形式より桁数を絞り、同じGPUでより大きなモデルを、より速く、より安く動かすための工夫の一つです。
FP8の仕組みと2つの形
数値を粗くすると言っても、やみくもに削るわけではありません。FP8には性格の違う2つの形があります。一方は表せる数の「範囲の広さ」を優先した形、もう一方は同じ8桁でも「細かさ」を優先した形です。AIの学習では、扱う数値の性質に応じてこの2つを使い分けます。たとえば極端に大小の差が出やすい場面では範囲の広い形を、こまかな値を保ちたい場面では細かさ優先の形を選ぶ、といった具合です。すべての計算をFP8にするのではなく、精度が要るところは16ビットなどに残す点もポイントになります。
量子化やINT8との違い
数値を粗くして軽くする発想は量子化とも重なりますが、FP8はその中で使われる具体的な数値の形だと整理できます。よく比較されるのが、同じ8ビットでも整数で表すINT8です。FP8は浮動小数点なので、一つひとつの数値が自分用の「桁(スケール)」を持てるのが強みになります。整数のINT8は桁が固定のため、極端に大きい値と小さい値が混じると表しきれません。この柔軟さが、AIの学習や推論でFP8が好まれる理由の一つでしょう。
経営から見たFP8の意味
FP8の効果は、ずばりAIの運用コストに効いてきます。数値が軽くなるぶん、データがメモリと計算回路の間を速く動き、同じGPUでこなせる仕事量が増えます。NVIDIAは2022年に登場したH100というGPUでFP8を本格的に取り入れ、精度を保ったまま処理を大きく速められると説明しました。「精度を少し粗くする代わりに、電気代やGPU代を下げる」という、AI導入の費用対効果を左右するレバーだと捉えると分かりやすいでしょう。
Topic「E4M3」「E5M2」という名前は設計図そのもの
FP8の2つの形には、E4M3・E5M2という暗号のような名前が付いています。じつはこれ、中身の設計図をそのまま書いたものです。Eは指数(数の桁の幅)、Mは仮数(細かさ)を指し、E4M3は「指数4ビット+仮数3ビット」、E5M2は「指数5ビット+仮数2ビット」を意味します。同じ8ビットでも、桁の配分を変えることで「広い範囲を取るか、細かさを取るか」を選んでいるわけです。名前を読めるだけで、その形が何を得意とするかが分かる、よくできた命名といえます。
FP8に関するよくある質問
- FP8とINT8(整数8ビット)は何が違いますか?
- どちらも8ビットですが、FP8は浮動小数点なので一つひとつの数値が自分用の桁(スケール)を持てます。整数のINT8は桁が固定で、極端に大きい値と小さい値が混じる場面に弱いという違いがあります。
- 精度を粗くするとAIが急に賢くなくなりませんか?
- すべての計算をFP8にするわけではなく、精度が要る部分は16ビットなどに残して使い分けます。そのため、処理を速くしつつ精度をほぼ保てるよう設計されています。
- FP8はいつから使われていますか?
- NVIDIAが2022年に登場させたH100というGPUで本格的に取り入れ、広まりました。2024年以降はさらに低精度のFP4へと進む流れも出ています。