연속적이거나 고정밀도의 데이터를 더 적은 수의 이산적인 값으로 변환하여 데이터 크기를 줄이고 처리 속도를 향상시키는 기술
양자화가 필요한 이유:
로컬 GPU에서 대형 모델 사용 가능
추론 비용 절감 (클라우드 배포 시)
응답 속도 향상 (실시간 서비스)
트레이드오프:
메모리/속도 상승 vs 정확도 하락
특히 환경 변화(노이즈, 오타 등)에서 품질 저하가 더 심함
주요 양자화 방식:
방식
특징
장점
단점
적합 환경
bitsandbytes (INT4)
런타임 양자화, HuggingFace 연동
간편한 적용, 추가 변환 불필요
품질 저하 가능
빠른 실험, 프로토타이핑
GPTQ
사전 양자화 (INT4), 가중치 보정
높은 압축률, 빠른 추론
양자화 시간 소요
배포 최적화
AWQ
활성화 기반 양자화, 중요 가중치 보존
품질 유지 우수, INT4에서도 고품질
특정 모델만 지원
고품질 필요 서비스
GGUF
llama.cpp 형식, CPU/GPU 유연
로컬 추론 최적화, 경량
HuggingFace 직접 미지원
로컬 추론, 엣지 배포
학습 vs 추론 양자화
구분
학습 시 양자화 (QLoRA)
추론 시 양자화 (PTQ)
시점
Fine-tuning 중
Fine-tuning 완료 후
목적
학습 가능하게 하기
모델 전체 (INT4)
양자화 대상
Base model만 (4-bit NF4)
추론 빠르게 하기
학습 가능 여부
LoRA adapter만 학습 (FP16)
학습 불가 (추론 전용)
정밀도
NF4 (4-bit, 가중치 분포 최적화)
INT4 (4-bit, 정수 양자화)
라이브러리
Unsloth + bitsandbytes
bitsandbytes (load_in_4bit)
메모리 절감
학습 가능하게 (8배 절감)
추론 시 75% 절감
전체 파이프라인에서의 위치
┌──────────────────────────────────────────────────────────────────┐
│ LLM 활용 전체 파이프라인 │
└──────────────────────────────────────────────────────────────────┘
1. [사전학습]
대규모 텍스트로 학습 → FP32/BF16 (높은 정밀도)
2. [파인튜닝]
도메인 데이터로 적응 → QLoRA (4-bit base + FP16 adapter)
→ 제한된 GPU로 학습 가능
3. [추론 최적화]
실제 서비스 배포 → INT4 양자화 (PTQ)
→ 메모리 75% 절감 + 속도 향상
4. [추론 품질 개선]
환경 변화 대응 → TTP (Test-time Prompting)
→ 재학습 없이 품질 보정
QLoRA의 “Q”와 PTQ의 차이점
QLoRA의 Q : Quantized LoRA -> 학습 중 base model 양자화
PTQ의 Q : Post-Traning Quantization -> 학습 후 모델 양자화
항목
QLoRA
PTQ
Q의 의미
Quantized
Post-Training
사용 시기
Fine-tuning 중
Fine-tuning 완료 후
목적
학습
추론 속도
gradient 계산
LoRA adapter만 계산
x
비트 정밀도 전체 맵
정밀도
비트 수
용도
메모리 (1B 모델)
학습 가능 여부
FP32
32-bit
사전학습, Optimizer
4GB
O
FP16/BF16
16-bit
Mixed Precision 학습
2GB
O
INT4/NF4
4-bit
학습 베이스 + 추론 최적화
0.5GB
X
INT4 : 4-bit 정수 양자화
NF4 : 정규분포를 가정한 4-bit 양자화 (LLM 가중치 분포에 최적화)
QLoRA 파인튜닝
┌─────────────────────┐
│ Base Model (고정) │ → NF4 (4-bit) Frozen
└─────────────────────┘
+
┌─────────────────────┐
│ LoRA Adapter (학습) │ → FP16 (16-bit) Trainable
└─────────────────────┘
결과: 메모리 8배 절감 + 학습 가능
PTQ 추론 최적화
┌─────────────────────┐
│ 모델 전체 (고정) │ → NF4 (4-bit) Inference Only
└─────────────────────┘
결과: 메모리 75% 절감 + 추론 속도 향상