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).
モデルのデクアンタイズ
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