Transformers documentation

モデルのデクアンタイズ

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