# 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](https://docs.pytorch.org/docs/stable/generated/torch.cuda.get_device_capability.html), чтобы проверить Compute Capability.

```python
from torch import cuda
cuda.get_device_capability()

# (7, 5)
```

Проверьте конфигурацию квантования модели, как показано ниже, чтобы убедиться, что она поддерживает MXFP4. Если `'quant_method': 'mxfp4'`, модель автоматически использует MXFP4.

```py
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](https://huggingface.co/docs/huggingface_hub/en/guides/manage-cache#scan-your-cache), чтобы убедиться, что ядра загружены.

```shell
hf cache scan
```

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

## Ресурсы

Подробнее о квантовании MXFP4 и о том, как работает блочное масштабирование, читайте в этой [статье](https://huggingface.co/blog/faster-transformers#mxfp4-quantization).

