Model Quantization

From HPCWIKI
Jump to navigation Jump to search

Model Quantization

Template:Status

Template:TOC

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

Template:KeyConcepts

---

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

---

Related Pages