Model Quantization
Jump to navigation
Jump to search
Model Quantization
Overview
Model Quantization은 모델 가중치를 낮은 정밀도(FP16/INT8/INT4)로 변환하여 메모리와 연산 속도를 향상시키는 기술. LLM 배포의 핵심 최적화 기술.
Summary
- * 무엇인가? 모델 가중치 낮은 정밀도로 변환. FP16->INT8->INT4
- * 왜 필요한가? 메모리 4-8배 절약. 추론 속도 2-4배 향상
- * 언제 사용하는가? LLM 배포, 엣지 디바이스, 리소스 제약 환경
---
Purpose
이 문서가 존재하는 이유
- Goal: Model Quantization의 개념, 사용법, 설정 가이드 제공
- Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
- Non-goals: 고급 커스터마이징, 내부 소스 코드 분석
---
Key Concepts
---
Architecture
양자화는 훈련 후 양자화(Post-Training Quantization, PTQ)와 양자화 인식 훈련(QAT)으로 구분. PTQ는 훈련 완료 후 모델 변환. QAT은 훈련 중 양자화 시뮬레이션. GGUF 포맷은 llama.cpp에서 사용하는 양자화 표준.
---
Workflow
1. 1. 원본 모델 준비 (FP16/FP32)
2. 2. 캘리브레이션 데이터 수집 (100-1000 샘플)
3. 3. 양자화 도구로 변환 (llama.cpp, TensorRT, AWQ)
4. 4. 정확도 검증 (원본 vs 양자화 모델)
5. 5. 성능 벤치마킹 (속도, 메모리, 정확도)
6. 6. 프로덕션 배포
---
Configuration
{config_code}---
Best Practices
- FP16으로 시작, 정확도 문제 시 INT8, 그다음 INT4
- 캘리브레이션 데이터는 실제 사용 패턴과 유사하게
- AWQ/GPTQ으로 INT4 양자화 시 정확도 영향 최소화
- 양자화 후 정확도 검증 필수 (perplexity, benchmark)
- llama.cpp GGUF로 양자화 시 q4_0/q5_0 권장
---
Limitations
- 정밀도 ↓ -> 정확도 ↓ (특히 INT4 이하)
- 양자화 도구 호환성 제한
- 일부 연산은 양자화 지원 안 됨
---
References
---