Transformers documentation

HQQ

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

HQQ

Half-Quadratic Quantization (HQQ) поддерживает быструю квантизацию «на лету» для 8, 4, 3, 2 и даже 1 бита. Для неё не требуются данные калибровки, и она совместима с моделями любого типа (LLM, vision и т. д.).

HQQ также поддерживает дообучение с PEFT и полностью совместим с torch.compile для ещё более быстрого вывода и обучения.

Установите HQQ следующей командой, чтобы получить последнюю версию и собрать соответствующие CUDA-ядра, если вы используете устройство cuda. Также поддерживается Intel XPU с чистой реализацией на PyTorch.

pip install hqq

Вы можете либо заменить все линейные слои в модели на один и тот же конфигурационный файл квантования, либо назначить конкретный конфигурационный файл квантования для конкретных линейных слоев.

заменить все слои
только определенные слои

Квантуйте модель, создав HqqConfig и указав nbits и group_size для замены всех линейных слоёв (torch.nn.Linear) модели.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, HqqConfig

quant_config = HqqConfig(nbits=8, group_size=64)
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B", 
    dtype=torch.float16, 
    device_map="auto", 
    quantization_config=quant_config
)

Бэкенды

HQQ поддерживает различные бэкенды, включая чистый PyTorch и собственные CUDA-ядра для деквантования. Эти бэкенды подходят для старых GPU и обучения PEFT/QLoRA.

from hqq.core.quantize import *

HQQLinear.set_backend(HQQBackend.PYTORCH)

Для более быстрого вывода HQQ поддерживает 4-битные объединённые ядра (torchao и Marlin) после квантования модели. Они позволяют достигать до 200 токенов/сек на одном 4090. Пример ниже демонстрирует, как включить бэкенд torchao_int4.

from hqq.utils.patching import prepare_for_inference

prepare_for_inference("model", backend="torchao_int4")

См. руководство Backend для получения подробной информации.

Ресурсы

Подробнее о HQQ читайте в блоге Half-Quadratic Quantization of Large Machine Learning Models.

Update on GitHub