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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

NVFP4

Квантование NVFP4 упаковывает веса линейных слоёв с полной точностью в 4-битный формат с плавающей запятой NVIDIA при загрузке модели. NVFP4Config заменяет подходящие модули torch.nn.Linear без смещения, у которых in_features и out_features делятся на 16, на реализацию линейного слоя NVFP4 из NVFP4 Hub kernel. Интерфейсы внимания и MLP модели не заменяются.

NVFP4 требует GPU Blackwell с вычислительной способностью 10.0 или выше, совместимую сборку PyTorch с поддержкой CUDA, а также пакет kernels.

Установите Accelerate и совместимую версию kernels.

pip install --upgrade accelerate kernels

Передайте NVFP4Config в from_pretrained() с одним устройством CUDA. Веса квантуются по мере загрузки, поэтому исходная контрольная точка должна содержать веса с плавающей точкой.

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 поддерживают torch.compile. Первое скомпилированное вызывание включает время компиляции графа, поэтому прогрейте модель перед измерением пропускной способности генерации.

Текущие ограничения

  • Поддерживается только одно CUDA-устройство. Конфигурации с тензорным параллелизмом и многоустройственной device_map отклоняются, пока не будет определено поведение шардирования метаданных масштаба NVFP4.
  • Оффлоад на CPU и диск не поддерживается.
  • Чекпоинты NVFP4 с предварительным квантованием не поддерживаются.
  • Модели NVFP4 в настоящее время не поддерживают сериализацию с помощью save_pretrained() и обучение.
Update on GitHub