Transformers documentation

NVFP4

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

and get access to the augmented documentation experience

to get started

NVFP4

NVFP4量子化は、モデルの読み込み時に、フルプレシションの線形重みをNVIDIAの4ビット浮動小数点形式にパックします。NVFP4Configは、バイアスを持たず、かつin_featuresとout_featuresの両方が16で割り切れるtorch.nn.Linearモジュールを、NVFP4 HubカーネルのNVFP4線形実装に置き換えます。モデルのattentionおよびMLPのインターフェースは置き換えられません。

NVFP4には、compute capability 10.0以降のBlackwell GPU、互換性のあるCUDA対応のPyTorchビルド、およびkernelsパッケージが必要です。

Accelerate と互換性のあるバージョンの kernels をインストールします。

pip install --upgrade accelerate kernels

単一の CUDA デバイスで from_pretrained() に NVFP4Config を渡します。重みは読み込み時に量子化されるため、ソースのチェックポイントには浮動小数点の重みが含まれている必要があります。

import torch

from transformers import AutoModelForCausalLM, AutoTokenizer, NVFP4Config


model_id = "meta-llama/Llama-3.2-1B"
quantization_config = NVFP4Config()
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="cuda",
    quantization_config=quantization_config,
)

tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer("NVFP4 is", return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(output[0], skip_special_tokens=True))

modules_to_not_convert を使用して、選択したモジュールを元の精度のままに保ちます。

quantization_config = NVFP4Config(modules_to_not_convert=["vision", "lm_head"])

NVFP4 linear モジュールは torch.compile をサポートしています。最初のコンパイル済み呼び出しにはグラフのコンパイル時間が含まれるため、生成スループットを測定する前にモデルをウォームアップしてください。

現在の制限事項

  • CUDA デバイスは 1 つのみサポートされています。NVFP4 スケールメタデータのシャーディング動作が定義されるまで、テンソル並列およびマルチデバイスの device_map 設定は拒否されます。
  • CPUおよびディスクへのオフロードはサポートされていません。
  • 事前量子化済みのNVFP4チェックポイントはサポートされていません。
  • NVFP4モデルは、現在save_pretrained()によるシリアライズや学習に対応していません。
Update on GitHub