test

gantt
    title Quantization Timeline
    dateFormat YYYY-MM-DD
    tickInterval 12month
    axisFormat %Y

    section OCP / NVIDIA
        FP16        : 2012-01-01, 2026-05-24
        BF16        : 2018-08-01, 2026-05-24
        FP8         : 2022-09-01, 2026-05-24
        FP8_scaled  : 2022-09-01, 2026-05-24
        MXFP8       : 2023-10-01, 2026-05-24
        NVFP4       : 2025-06-24, 2026-05-24

    section llama.cpp
        GGML        : 2023-03-01, 2026-05-24
        GGML (K_quants) : 2023-06-06, 2026-05-24
        GGUF        : 2023-08-21, 2026-05-24

  • FP16(半精度):FP32(単精度)の半分の容量で高速、それなりの精度
  • BF16:FP16 より仮数部が少ない代わりに指数部が広く、ダイナミックレンジが大きいため学習が安定
  • FP8:FP16 の半分の容量でさらに高速化、精度が低下
  • FP8_scaled:テンソル毎に絶対最大値でスケーリングすることで精度の低下を抑える
  • MXFP8:テンソルを32個のデータずつのブロックに分けてスケーリング、FP8_scaled より精度が良い
  • NVFP4:FP8 の半分の容量、高速だが精度はさらに低下。16要素ブロック×FP8スケール+FP32グローバルスケールの2段階スケーリングで精度低下を抑える
  • GGML(Q8_0):テンソルを32要素ずつのブロックに分け、ブロックごとに FP32 スケール値を保持して int8 に量子化
  • GGML(k_quants):256要素のスーパーブロックを32要素のサブブロック8個に分割。Q4_K 等の type-1 は min+scale の非対称量子化、特に低ビット(Q4_K_M・Q5_K_M)での精度が向上
  • GGUF:GGML を改良した後継フォーマット
符号 指数部 仮数部 有効桁数 精度
FP32 1bit 8bit 23bit 6~7桁
FP16 1bit 5bit 10bit 3~4桁
BF16 1bit 8bit 7bit 3桁
FP8(e4m3) 1bit 4bit 3bit 1~2桁
FP8(e5m2) 1bit 5bit 2bit 1~2桁
FP4 1bit 2bit 1bit 1桁未満 ×
FP32 FP16 BF16 FP8 MXFP8 FP4
NVIDIA RTX5000シリーズ(2025~)
NVIDIA RTX4000シリーズ(2022~) × ×
NVIDIA RTX3000シリーズ(2020~) × × ×
NVIDIA RTX2000シリーズ(2018~) × × × ×
NVIDIA GTX1000シリーズ(2016~) × × × ×
AMD Radeon △〜〇 ×〜〇 × × ×
Intel Arc × × ×