양자화 가이드 (QLoRA·4-bit 학습)
양자화 가이드 (QLoRA·4-bit 학습)
PEFT를 쓰면 이미 양자화된 모델 위에도 파인튜닝을 할 수 있어요. 양자화 후 모델은 보통 추가 학습이 불안정한데, PEFT는 추가 학습 가능 파라미터만 얹기 때문에 4-bit 모델에도 어댑터를 달 수 있죠.
대표 사례가 QLoRA예요 — 모델을 4-bit로 양자화하고 그 위에 LoRA를 학습해, 48GB GPU 한 장으로 65B 모델을 파인튜닝하는 게 가능해졌어요.
출처: https://huggingface.co/docs/peft/main/en/developer_guides/quantization
양자화 방식 개요
- AWQ — 양자화할 가중치를 최적화.
- GPTQ — 가중치 행렬의 각 행을 독립 양자화.
- bitsandbytes — 8-bit·4-bit 정밀도 양자화.
- AQLM — 최저 2-bit 정밀도.
4-bit 모델 양자화 예시 (BitsAndBytesConfig)
import torch
from transformers import BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(
load_in_4bit=True, # 4-bit 로드
bnb_4bit_quant_type="nf4", # 정규분포 기반 4-bit 자료형
bnb_4bit_use_double_quant=True, # 중첩 양자화 (2차 절감)
bnb_4bit_compute_dtype=torch.bfloat16, # 고속 연산용 bfloat16
)
이 설정으로 모델을 로드한 뒤 PEFT 어댑터(LoRA)를 붙이면 QLoRA 스타일 학습이 가능해요.