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) помещаются на одном GPU с 80 ГБ памяти, а для небольших моделей (GPT-OSS-20B) достаточно всего 16 ГБ. Формат использует блочное масштабирование, чтобы сохранить диапазон значений и точность, которые обычно ухудшаются при снижении точности.

Чтобы использовать MXPF4, убедитесь, что ваше оборудование соответствует следующим требованиям.

  • Установите Accelerate, kernels и Triton ≥ 3.4. Устанавливайте Triton ≥ 3.4 вручную только в том случае, если вы используете PyTorch 2.7, так как в PyTorch 2.8 он уже поддерживается.
  • NVIDIA GPU с вычислительной способностью (Compute Capability) ≥ 7.5, включая Tesla и более новые. Используйте get_device_capability, чтобы проверить Compute 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 автоматически загружает ядра Triton с поддержкой MXFP4 из репозитория сообщества при загрузке модели, которая в них нуждается. Ядра сохраняются в локальном кэше и используются во время прямого прохода.

Ядра 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