Transformers documentation
MXFP4
MXFP4
Lưu ý: Lượng tử hóa MXFP4 hiện chỉ hoạt động với OpenAI GPT-OSS 120b và 20b.
MXFP4 là định dạng số thực 4-bit giúp giảm đáng kể yêu cầu bộ nhớ của các mô hình lớn. Các mô hình lớn (GPT-OSS-120B) có thể chạy trên một GPU 80GB duy nhất, trong khi các mô hình nhỏ hơn (GPT-OSS-20B) chỉ cần 16GB bộ nhớ. Định dạng này sử dụng tỷ lệ theo khối (blockwise scaling) để duy trì phạm vi và độ chính xác, vốn thường bị suy giảm ở các mức độ chính xác thấp hơn.
Để sử dụng MXPF4, hãy đảm bảo phần cứng của bạn đáp ứng các yêu cầu sau.
- Cài đặt Accelerate, kernels và Triton ≥ 3.4. Chỉ cần cài đặt thủ công Triton ≥ 3.4 nếu bạn đang sử dụng PyTorch 2.7 vì nó đã được hỗ trợ trong PyTorch 2.8.
- NVIDIA GPU Compute Capability ≥ 7.5, bao gồm các GPU Tesla và mới hơn. Sử dụng get_device_capability để kiểm tra Compute Capability.
from torch import cuda
cuda.get_device_capability()
# (7, 5)Kiểm tra cấu hình lượng tử hóa của mô hình như bên dưới để xem nó có hỗ trợ MXFP4 hay không. Nếu 'quant_method': 'mxfp4', thì mô hình sẽ tự động sử dụng 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 tự động tải các kernel Triton hỗ trợ MXFP4 từ kho lưu trữ cộng đồng khi bạn nạp một model cần chúng. Các kernel này được lưu trong bộ nhớ đệm cục bộ và được sử dụng trong quá trình truyền thẳng (forward pass).
Các kernel MXFP4 được sử dụng mặc định nếu khả dụng và được hỗ trợ, và không yêu cầu bất kỳ thay đổi mã nào.
Bạn có thể sử dụng hf cache scan để xác nhận các kernel đã được tải xuống.
hf cache scan
REPO ID REPO TYPE SIZE ON DISK -------------------------------- --------- ------------ kernels-community/triton_kernels model 536.2K openai/gpt-oss-20b model 13.8G
Tài nguyên
Tìm hiểu thêm về lượng tử hóa MXFP4 và cách thức hoạt động của việc mở rộng theo khối trong bài đăng trên blog này.
Update on GitHub