Transformers documentation

Déquantiser un modèle

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

and get access to the augmented documentation experience

to get started

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éthodeComment déquantifier
bitsandbytes, HIGGSAppel de dequantize() après le chargement.
compressed-tensors, FP8 à granularité fine, GGUF, Metal, MXFP4Passez 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