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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FP-Quant

FP-Quant — это семейство алгоритмов квантования, адаптированных для поколения GPU Nvidia Blackwell. Цель — обеспечить эффективное постобучающее квантование (PTQ) и обучение с учётом квантования (QAT) LLM в форматах MXFP4 и NVFP4.

This integration accompanies the pre-print of the Bridging the Gap Between Promise and Performance for Microscaling FP4 Quantization pre-print.

В настоящее время QAT поддерживается только при pseudoquantization=True. Модели можно квантовать на лету с помощью 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,
)

или предварительно обработанных с помощью GPTQ для более высокого качества (см. FP Format Quantization Harness).

Вы можете выбрать между MXFP4 и NVFP4 с помощью FPQuantConfig(forward_dtype="mxfp4"). NVFP4 обеспечивает лучшее качество, но потребляет немного больше памяти.

Для запуска ядер требуется GPU поколения Blackwell. Поддержка FP-Quant во время выполнения реализована через библиотеку QuTLASS и легковесный интерфейс PyTorch fp_quant. Мы рекомендуем установить первую из исходного кода, а вторую — с помощью pip install fp_quant.

Пользователи без GPU поколения Blackwell могут использовать метод с quantization_config=FPQuantConfig(pseudoquantization=True) без установки QuTLASS. Это не даст ускорения, но полностью эмулирует эффект квантования.

Найдите модели, предварительно квантованные с помощью FP-Quant, в официальной коллекции ISTA-DASLab.

torch.compile

FP-Quant полностью совместим с 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)

Ускорения

FP-Quant в настоящее время показывает наилучшие результаты при обработке очень больших размеров батча.

См. README QuTLASS для информации об ускорении.

Update on GitHub