HQQ — 캘리브레이션 없는 즉시 양자화와 고속 추론
HQQ
HQQ(Half-Quadratic Quantization)는 캘리브레이션 데이터 없이 즉시(on-the-fly) 모델을 8·4·3·2·1비트로 양자화할 수 있는 기법이에요. 어떤 모달리티(LLM뿐 아니라 비전 등)와도 호환되고, PEFT 파인튜닝과 torch.compile도 지원해 학습·추론 양쪽에서 유용해요.
설치와 기본 사용
pip install hqq
양자화는 HqqConfig를 만들어 nbits와 group_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")
언제 유용한가
캘리브레이션 데이터를 준비하기 어려운 경우, 여러 모델을 빠르게 시험해 보고 싶을 때, 그리고 메모리가 넉넉하지 않은 환경에서 특히 유용해요.