Transformers documentation

FP-Quant

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FP-Quant

FP-Quant adalah keluarga algoritma kuantisasi yang dirancang khusus untuk generasi Blackwell dari GPU Nvidia. Tujuannya adalah untuk memungkinkan kuantisasi pasca-pelatihan (post-training quantization/PTQ) dan pelatihan yang sadar kuantisasi (quantization-aware training/QAT) pada LLM secara efisien dalam MXFP4 dan NVFP4 data-types.

Integrasi ini menyertai naskah pra-cetak dari naskah pra-cetak Bridging the Gap Between Promise and Performance for Microscaling FP4 Quantization.

Saat ini, QAT hanya didukung dengan pseudoquantization=True. Model dapat dikuantisasi secara langsung dengan 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,
)

atau diproses sebelumnya dengan GPTQ untuk kualitas yang lebih baik (lihat FP Format Quantization Harness).

Anda dapat memilih antara MXFP4 dan NVFP4 dengan FPQuantConfig(forward_dtype="mxfp4"). NVFP4 memberikan kualitas yang lebih baik tetapi menggunakan sedikit lebih banyak memori.

GPU generasi Blackwell diperlukan untuk menjalankan kernel. Dukungan runtime untuk FP-Quant diimplementasikan melalui pustaka QuTLASS dan antarmuka PyTorch ringan fp_quant. Kami merekomendasikan menginstal yang pertama dari sumber dan yang kedua dengan pip install fp_quant.

Pengguna tanpa GPU generasi Blackwell dapat menggunakan metode ini dengan quantization_config=FPQuantConfig(pseudoquantization=True) tanpa perlu menginstal QuTLASS. Hal ini tidak akan memberikan peningkatan kecepatan, tetapi akan sepenuhnya mensimulasikan efek kuantisasi.

Temukan model yang sudah di-kuantisasi sebelumnya dengan FP-Quant di koleksi resmi ISTA-DASLab.

torch.compile

FP-Quant sepenuhnya kompatibel dengan 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)

Percepatan

FP-Quant saat ini memberikan hasil terbaik untuk pemrosesan dengan ukuran batch yang sangat besar.

Lihat README QuTLASS untuk percepatan.

Update on GitHub