Transformers documentation

モデルのデクアンタイズ

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

モデルのデクアンタイズ

Dequantizingは、量子化された重みをbf16などの高精度なdtypeに戻す処理です。モデルを完全にファインチューニングする場合、その手法のカーネルがサポートしないハードウェアで実行する場合、または別の形式に変換する場合に、モデルをDequantizeします。結果として得られるモデルは、量子化されていないモデルと同じだけのメモリを消費し、丸めによって失われた精度は回復されません。

Transformersは、手法に応じて2つの方法でデクアンタイズを行います。

メソッドデクォアンタイズの方法
bitsandbytes、HIGGS読み込み後にdequantize()を呼び出します。
compressed-tensors、細粒度FP8、GGUF、Metal、MXFP4読み込み時に、メソッドのconfigにdequantize=Trueを渡します。

その他のメソッドは、dequantize()からNotImplementedErrorをスローします。

読み込み後にデクアンタイズ

読み込んだモデルに対してdequantize()を呼び出します。デフォルトでは、モデルが読み込まれたときのdtypeが使用されます。別のdtypeを指定するには、dtypeを渡します。

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() は quantization_config も削除するため、save_pretrained() は通常のフルプレシジョンのチェックポイントを保存します。

読み込み時にデクアンタイズ

サポートしているメソッドの config に dequantize=True を渡します。重みの読み込み時にデクアンタイズされるため、クアンタイズされたカーネルは使用されません。以下の例では、gpt-oss の MXFP4 重みを bf16 で読み込んでいます。

from transformers import AutoModelForCausalLM, Mxfp4Config

model = AutoModelForCausalLM.from_pretrained(
    "openai/gpt-oss-20b",
    quantization_config=Mxfp4Config(dequantize=True),
    device_map="auto",
)

一部のメソッドは、カーネルが実行できない場合に自動的にデクォアンタイズを行います。例えば、GGUFは、ファイルのクォアンタイズ型をサポートするカーネルが存在しない場合に、デクォアンタイズにフォールバックします。

Update on GitHub