MXFP4
MXFP4
MXFP4는 큰 모델의 메모리 요구량을 크게 줄이는 4비트 부동소수점 포맷입니다. 블록별 스케일링을 사용해 낮은 정밀도에서 일반적으로 저하되는 범위와 정확도를 유지합니다.
출처: 문서
본문
참고: 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.8에서 이미 지원되므로 PyTorch 2.7을 사용하는 경우에만 수동으로 설치하세요.
- NVIDIA GPU Compute Capability ≥ 7.5(Tesla GPU 이상 포함). 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 kernels
Transformers는 MXFP4를 필요로 하는 모델을 로드할 때 커뮤니티 저장소에서 MXFP4 지원 Triton 커널을 자동으로 가져옵니다. 커널은 로컬 캐시에 저장되며 forward 패스 중에 사용됩니다.
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
Resources
MXFP4 양자화와 블록별 스케일링의 동작 방식에 대해 더 알아보려면 이 블로그 게시물을 참고하세요.