AQLM
AQLM
Additive Quantization of Language Models (AQLM)은 여러 가중치를 함께 양자화하면서 가중치 사이의 상호 의존성을 활용합니다. AQLM은 8~16개의 가중치 그룹을 여러 개의 벡터 코드 합으로 표현해요.
출처: 문서
본문
AQLM은 PEFT 라이브러리로 LoRA 미세 조정(fine-tuning)도 지원하고, 더 빠른 추론·훈련을 위해 torch.compile과도 완전히 호환됩니다.
GPU·CPU 추론과 훈련 모두에서 커널을 지원하도록 AQLM 라이브러리를 아래 명령으로 설치합니다. AQLM은 Python 3.10+에서만 동작해요.
pip install aqlm[gpu,cpu]
AQLM으로 양자화된 모델은 from_pretrained()로 불러옵니다.
from transformers import AutoTokenizer, AutoModelForCausalLM
quantized_model = AutoModelForCausalLM.from_pretrained(
"ISTA-DASLab/Mixtral-8x7b-AQLM-2Bit-1x16-hf",
dtype="auto",
device_map="auto"
)
구성 (Configurations)
AQLM 양자화 설정은 사용하는 코드북(codebook)의 개수와 코드북 크기(비트 단위)에 따라 크게 달라져요. 가장 널리 쓰이는 설정과 지원되는 추론 커널은 아래와 같습니다.
| 커널 | 코드북 개수 | 코드북 크기(비트) | 표기 | 정확도 | 속도 향상 | 빠른 GPU 추론 | 빠른 CPU 추론 |
|---|---|---|---|---|---|---|---|
| Triton | K | N | KxN | - | 최대 ~0.7배 | ✅ | ❌ |
| CUDA | 1 | 16 | 1x16 | 최고 | 최대 ~1.3배 | ✅ | ❌ |
| CUDA | 2 | 8 | 2x8 | 보통 | 최대 ~3.0배 | ✅ | ❌ |
| Numba | K | 8 | Kx8 | 좋음 | 최대 ~4.0배 | ❌ | ✅ |
더 알아보기 (Learn more)
모델을 양자화하고, 양자화된 모델을 Hub에 올리고, 그 밖의 예시를 더 보려면 AQLM 데모 노트북을 실행해 보세요.
더 많은 예시 데모 노트북은 AQLM 저장소에서 확인할 수 있어요.
- AQLM 논문: Additive Quantization 기법의 원리