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-bit까지의 빠른 온더플라이(on-the-fly) 양자화를 지원합니다. 교정 데이터가 필요하지 않으며, 모든 모델 모달리티(LLM, 비전 등)와 호환됩니다.

HQQ는 PEFT를 통한 fine-tuning을 추가로 지원하며, torch.compile과 완전히 호환되어 더 빠른 추론과 학습을 제공합니다.

cuda 디바이스를 사용하는 경우, 최신 버전을 설치하고 해당 CUDA 커널을 빌드하려면 다음 명령으로 HQQ를 설치하세요. 순수 PyTorch 구현으로 Intel XPU도 지원합니다.

pip install hqq

모델의 모든 linear layer를 동일한 quantization config로 교체하거나, 특정 linear layer에 전용 quantization config를 할당하는 방식을 선택할 수 있습니다.

모든 레이어를 교체
특정 레이어만

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와 커스텀 dequantization CUDA 커널을 포함한 다양한 backends를 지원합니다. 이러한 backends는 구형 GPU 및 PEFT/QLoRA 학습에 적합합니다.

from hqq.core.quantize import *

HQQLinear.set_backend(HQQBackend.PYTORCH)

torchao와 Marlin의 4-bit fused kernel을 지원하여, 모델 양자화 후 추론 속도를 높일 수 있습니다. 단일 4090에서 최대 200 tokens/sec까지 도달할 수 있습니다. 아래 예제는 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