Transformers documentation

MXFP4

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

MXFP4

注: MXFP4量子化は、現在OpenAI GPT-OSS 120bおよび20bでのみ動作します。

MXFP4 は、大規模モデルのメモリ要件を大幅に削減する 4 ビット浮動小数点形式です。大規模モデル(GPT-OSS-120B)は単一の 80GB GPU に収まり、小規模モデル(GPT-OSS-20B)はわずか 16GB のメモリで動作します。ブロックワイズスケーリングを用いることで、通常、低い精度では低下しがちな範囲と精度を維持します。

MXPF4を使用するには、ハードウェアが以下の要件を満たしていることを確認してください。

  • Accelerate、kernels、およびTriton ≥ 3.4をインストールしてください。Triton ≥ 3.4を手動でインストールするのは、PyTorch 2.7を使用している場合のみです。PyTorch 2.8ではすでにサポートされているためです。
  • Tesla GPUおよびそれ以降のGPUを含む、NVIDIA GPU Compute Capability ≥ 7.5。Compute Capabilityを確認するには、get_device_capabilityを使用してください。
from torch import cuda
cuda.get_device_capability()

# (7, 5)

以下に示すように、モデルの量子化設定を確認し、MXFP4に対応しているかどうかを判断します。'quant_method': 'mxfp4' の場合、モデルは自動的に MXFP4 を使用します。

from transformers import GptOssConfig

model_id = "openai/gpt-oss-120b"
cfg = GptOssConfig.from_pretrained(model_id)
print(cfg.quantization_config)

# Example output:
# {
#   'modules_to_not_convert': [
#     'model.layers.*.self_attn',
#     'model.layers.*.mlp.router',
#     'model.embed_tokens',
#     'lm_head'
#   ],
#   'quant_method': 'mxfp4'
# }

MXFP4カーネル

Transformers は、それらのカーネルを必要とするモデルを読み込む際に、コミュニティリポジトリから MXFP4 対応の Triton カーネルを自動的に取得します。これらのカーネルはローカルキャッシュに保存され、フォワードパスで使用されます。

利用可能かつサポートされている場合、MXFP4カーネルがデフォルトで使用され、コードの変更は不要です。

hf cache scan を使用して、カーネルがダウンロードされていることを確認できます。

hf cache scan
REPO ID                          REPO TYPE SIZE ON DISK
-------------------------------- --------- ------------
kernels-community/triton_kernels model           536.2K
openai/gpt-oss-20b               model            13.8G

リソース

MXFP4量子化とブロックワイズスケーリングの仕組みについては、このブログ記事をご覧ください。

Update on GitHub