Transformers documentation

FP-Quant

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FP-Quant

FP-Quant là một nhóm các thuật toán lượng tử hóa được thiết kế riêng cho thế hệ GPU Blackwell của Nvidia. Mục tiêu là cho phép lượng tử hóa sau huấn luyện (PTQ) và huấn luyện nhận thức lượng tử hóa (QAT) hiệu quả cho các LLM với kiểu dữ liệu MXFP4 và NVFP4.

Tích hợp này đi kèm với bản pre-print của Bridging the Gap Between Promise and Performance for Microscaling FP4 Quantization.

Hiện tại, chỉ có QAT được hỗ trợ với pseudoquantization=True. Mô hình có thể được lượng tử hóa trực tiếp với quantization_config=FPQuantConfig():

from transformers import AutoModelForCausalLM, AutoTokenizer, FPQuantConfig
import torch

model = AutoModelForCausalLM.from_pretrained(
    "qwen/Qwen3-8B",
    quantization_config=FPQuantConfig(),
    device_map="auto",
    dtype=torch.bfloat16,
)

hoặc đã được tiền xử lý bằng GPTQ để đạt chất lượng tốt hơn (xem FP Format Quantization Harness).

Bạn có thể chọn giữa MXFP4 và NVFP4 bằng FPQuantConfig(forward_dtype="mxfp4"). NVFP4 cung cấp chất lượng tốt hơn nhưng sử dụng nhiều bộ nhớ hơn một chút.

Một GPU thế hệ Blackwell là bắt buộc để chạy các kernel. Hỗ trợ runtime cho FP-Quant được triển khai thông qua thư viện QuTLASS và một thư viện giao diện PyTorch nhẹ fp_quant. Chúng tôi khuyến nghị cài đặt cái trước từ mã nguồn và cái sau bằng pip install fp_quant.

Người dùng không có GPU thế hệ Blackwell có thể sử dụng phương pháp với quantization_config=FPQuantConfig(pseudoquantization=True) mà không cần cài đặt QuTLASS. Cách này sẽ không mang lại tốc độ nhanh hơn nhưng sẽ mô phỏng hoàn toàn hiệu ứng của lượng tử hóa.

Tìm các model đã được lượng tử hóa trước bằng FP-Quant trong bộ sưu tập chính thức của ISTA-DASLab.

torch.compile

FP-Quant tương thích hoàn toàn với torch.compile.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, FPQuantConfig

model = AutoModelForCausalLM.from_pretrained(
    "qwen/Qwen3-8B",
    quantization_config=FPQuantConfig(),
    device_map="auto",
    dtype=torch.bfloat16,
)

model.forward = torch.compile(model.forward, mode="max-autotune", fullgraph=True)

Tăng tốc

FP-Quant hiện đạt hiệu suất tốt nhất khi xử lý với kích thước lô (batch size) rất lớn.

Xem README của QuTLASS để biết về các cải thiện tốc độ.

Update on GitHub