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 ve hatta 1 bit için hızlı, anlık (on-the-fly) kuantizasyonu destekler. Kalibrasyon verisi gerektirmez ve herhangi bir model modalitesiyle (LLM'ler, görü vb.) uyumludur.

HQQ, PEFT ile ince ayarı daha fazla destekler ve daha hızlı çıkarım ve eğitim için torch.compile ile tam uyumludur.

En güncel sürümü almak ve bir cuda cihazı kullanıyorsanız ilgili CUDA çekirdeklerini derlemek için HQQ'yi aşağıdaki komutla yükleyin. Ayrıca saf pytorch uygulamasıyla Intel XPU'yu da destekler.

pip install hqq

Modeldeki tüm doğrusal katmanları aynı kuantizasyon yapılandırmasıyla değiştirmeyi veya belirli doğrusal katmanlar için belirli bir kuantizasyon yapılandırması atamayı seçebilirsiniz.

tüm katmanları değiştir
yalnızca belirli katmanlar

Bir HqqConfig oluşturarak ve modelin tüm doğrusal katmanları (torch.nn.Linear) için nbits ile group_size değerlerini belirleyerek modeli kuantize edin.

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
)

Arka Uçlar

HQQ, saf PyTorch ve özel dequantization CUDA çekirdekleri dahil olmak üzere çeşitli backend'leri destekler. Bu backend'ler, eski GPU'lar ve PEFT/QLoRA eğitimi için uygundur.

from hqq.core.quantize import *

HQQLinear.set_backend(HQQBackend.PYTORCH)

Daha hızlı çıkarım için HQQ, bir modelin kuantize edilmesinin ardından 4-bit füzyonlu çekirdekleri (torchao ve Marlin) destekler. Bunlar, tek bir 4090 üzerinde saniyede 200 token'a kadar hızlara ulaşabilir. Aşağıdaki örnek, torchao_int4 arka ucunun etkinleştirilmesini göstermektedir.

from hqq.utils.patching import prepare_for_inference

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

Daha fazla ayrıntı için Backend kılavuzuna başvurun.

Kaynaklar

HQQ hakkında daha fazla ayrıntı için Half-Quadratic Quantization of Large Machine Learning Models blog yazısını okuyun.

Update on GitHub