HQQ — 캘리브레이션 없는 즉시 양자화와 고속 추론

HQQ

HQQ(Half-Quadratic Quantization)는 캘리브레이션 데이터 없이 즉시(on-the-fly) 모델을 8·4·3·2·1비트로 양자화할 수 있는 기법이에요. 어떤 모달리티(LLM뿐 아니라 비전 등)와도 호환되고, PEFT 파인튜닝과 torch.compile도 지원해 학습·추론 양쪽에서 유용해요.

설치와 기본 사용

pip install hqq

양자화는 HqqConfig를 만들어 nbitsgroup_size를 정한 뒤 from_pretrained에 넘기면 돼요.

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 커널을 지원해요. PEFT/QLoRA 학습에는 PyTorch 백엔드가, 추론에는 퓨즈드 커널이 유리해요.

from hqq.core.quantize import *
HQQLinear.set_backend(HQQBackend.PYTORCH)

4비트 퓨즈드 커널(torchao/Marlin)을 쓰면 단일 4090에서 초당 200토큰까지 나올 수 있어요.

from hqq.utils.patching import prepare_for_inference
prepare_for_inference("model", backend="torchao_int4")

언제 유용한가

캘리브레이션 데이터를 준비하기 어려운 경우, 여러 모델을 빠르게 시험해 보고 싶을 때, 그리고 메모리가 넉넉하지 않은 환경에서 특히 유용해요.

더 알아보기