Transformers documentation
Déquantiser un modèle
Déquantiser un modèle
La déquantisation convertit les poids quantifiés vers un type de données de plus haute précision, tel que bf16. Déquantisez un modèle pour l’affiner entièrement, pour l’exécuter sur du matériel non pris en charge par les noyaux de la méthode, ou pour le convertir dans un autre format. Le résultat utilise autant de mémoire qu’un modèle non quantisé et ne restaure pas la précision perdue lors de l’arrondi.
Transformers effectue la déquantisation de deux manières, selon la méthode utilisée.
| Méthode | Comment déquantifier |
|---|---|
| bitsandbytes, HIGGS | Appel de dequantize() après le chargement. |
| compressed-tensors, FP8 à granularité fine, GGUF, Metal, MXFP4 | Passez dequantize=True dans la configuration de la méthode lors du chargement. |
Les autres méthodes lèvent une NotImplementedError depuis dequantize().
Désquantifier après le chargement
Appelez dequantize() sur un modèle chargé. Par défaut, il utilise le dtype dans lequel le modèle a été chargé. Passez dtype pour en choisir un autre.
import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B",
quantization_config=BitsAndBytesConfig(load_in_4bit=True),
device_map="auto",
)
model = model.dequantize(dtype=torch.bfloat16)dequantize() supprime également quantization_config, de sorte que save_pretrained() enregistre un point de contrôle de pleine précision standard.
Déquantiser lors du chargement
Passez dequantize=True dans la configuration d'une méthode qui le prend en charge. Les poids sont déquantifiés au moment du chargement, de sorte que les noyaux quantifiés ne sont jamais utilisés. L'exemple ci-dessous charge les poids MXFP4 de gpt-oss en bf16.
from transformers import AutoModelForCausalLM, Mxfp4Config
model = AutoModelForCausalLM.from_pretrained(
"openai/gpt-oss-20b",
quantization_config=Mxfp4Config(dequantize=True),
device_map="auto",
)Certaines méthodes déquantisent automatiquement lorsque leurs noyaux ne peuvent pas s’exécuter. GGUF, par exemple, bascule sur la déquantisation lorsqu’aucun noyau ne prend en charge les types de quantification du fichier.
Update on GitHub