# MXFP4

Observação: a quantização MXFP4 atualmente funciona apenas para o OpenAI GPT-OSS 120b e 20b.

MXFP4 é um formato de ponto flutuante de 4 bits que reduz drasticamente os requisitos de memória de modelos grandes. Modelos grandes (GPT-OSS-120B) podem caber em uma única GPU de 80GB, e modelos menores (GPT-OSS-20B) exigem apenas 16GB de memória. Ele usa escalonamento por blocos para preservar sua faixa e precisão, que normalmente se degradam em precisões mais baixas.

Para usar o MXPF4, verifique se o seu hardware atende aos seguintes requisitos.

- Instale o Accelerate, kernels e Triton ≥ 3.4. Instale o Triton ≥ 3.4 manualmente apenas se estiver usando PyTorch 2.7, pois ele já é suportado no PyTorch 2.8.
- Capacidade de computação da GPU NVIDIA ≥ 7.5, que inclui GPUs Tesla e mais recentes. Use [get_device_capability](https://docs.pytorch.org/docs/stable/generated/torch.cuda.get_device_capability.html) para verificar a capacidade de computação.

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

# (7, 5)
```

Verifique a configuração de quantização de um modelo, conforme mostrado abaixo, para ver se ele suporta MXFP4. Se `'quant_method': 'mxfp4'`, o modelo usa MXFP4 automaticamente.

```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'
# }
```

## Kernels MXFP4

O Transformers busca automaticamente os kernels Triton compatíveis com MXFP4 do repositório da comunidade quando você carrega um modelo que os requer. Os kernels são armazenados no seu cache local e utilizados durante a passagem direta (forward pass).

Os kernels MXFP4 são usados por padrão, quando disponíveis e suportados, e não exigem nenhuma alteração de código.

Você pode usar [hf cache scan](https://huggingface.co/docs/huggingface_hub/en/guides/manage-cache#scan-your-cache) para verificar se os kernels foram baixados.

```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
```

## Recursos

Saiba mais sobre a quantização MXFP4 e como o escalonamento por bloco funciona neste [post de blog](https://huggingface.co/blog/faster-transformers#mxfp4-quantization).

