Quantization — 모델 경량화의 핵심

advanced5 min read
선행 개념

Summary

Quantization(양자화)은 모델의 가중치와 활성화 값을 더 낮은 정밀도(예: FP32 → INT8, INT4)로 변환하여 모델 크기를 줄이고 추론 속도를 높이는 기법이다.

Why It Matters

GPT-3 175B 모델은 FP16으로 약 350GB의 메모리가 필요하다. 이를 INT4로 양자화하면 약 87GB로 줄어든다. Quantization은 대형 모델을 실용적인 하드웨어에서 실행 가능하게 만드는 핵심 기술이다.

Core Diagram

원본 모델 (FP16)          양자화된 모델 (INT4)
┌─────────────┐          ┌─────────────┐
│ 가중치: 16bit│    →     │ 가중치: 4bit │
│ 350GB       │          │ 87GB        │
│ 느린 추론   │          │ 빠른 추론   │
└─────────────┘          └─────────────┘
     정확도: 100%              정확도: ~97%

Concept Explanation

수치 표현 정밀도

타입비트 수범위용도
FP3232bit±3.4×10³⁸학습 (원본)
FP1616bit±65,504학습/추론
BF1616bit±3.4×10³⁸학습 (넓은 범위)
INT88bit-128~127추론 최적화
INT44bit-8~7경량 추론

양자화 방식

PTQ (Post-Training Quantization)

  • 학습 완료된 모델에 적용
  • 추가 학습 불필요
  • 구현이 간단하지만 품질 저하 가능
  • 대표: GPTQ, AWQ, GGUF

QAT (Quantization-Aware Training)

  • 학습 과정에서 양자화를 시뮬레이션
  • 더 높은 품질 유지
  • 추가 학습 비용 발생
  • 대표: LLM-QAT, BitNet

대표적인 양자화 기법

기법설명장점
GPTQGPU 최적화 PTQ빠른 GPU 추론
AWQ활성화 인식 양자화높은 품질 유지
GGUFCPU 최적화 포맷llama.cpp 호환
SqueezeLLM비균일 양자화극한 압축

품질 vs 크기 트레이드오프

FP16 (100%) ────── INT8 (99%) ────── INT4 (95~97%) ────── INT2 (80~90%)
   350GB              175GB             87GB                43GB

System Perspective

프로덕션 LLM 추론 파이프라인에서 Quantization의 위치:

  1. 모델 준비: 원본 모델 → 양자화 변환 (GPTQ/AWQ/GGUF)
  2. 서빙: 양자화된 모델을 vLLM, TGI, llama.cpp 등으로 로드
  3. 추론: 낮은 정밀도로 행렬 연산 수행 (GPU INT8/INT4 커널)
  4. 출력: 결과를 FP32로 복원하여 토큰 생성

KV Cache도 양자화 가능하다 — KV Cache Quantization으로 메모리를 추가 절약할 수 있다.

Practical Insight

  • INT8 양자화는 거의 품질 손실 없이 2x 압축과 속도 향상을 얻을 수 있다
  • INT4는 품질 저하가 있지만, 대부분의 일반 대화/요약 작업에는 충분하다
  • 수학/코딩 등 정밀도가 중요한 작업에서는 양자화 손실이 크게 체감된다
  • GGUF 포맷은 CPU 추론에 최적화되어 있어, GPU 없는 환경에서 유용하다
  • 양자화 후에는 반드시 벤치마크로 품질을 검증해야 한다

Common Misunderstandings

  • 양자화가 모델을 "학습"시키는 것이 아니다 — 기존 가중치의 표현 방식만 변경한다
  • INT4가 항상 INT8보다 빠른 것은 아니다 — 하드웨어 지원에 따라 다르다
  • 양자화된 모델을 다시 파인튜닝하면 품질이 회복되는 것은 아니다 — QLoRA는 별도 기법이다
  • 모든 레이어를 동일한 비트로 양자화할 필요는 없다 — 혼합 정밀도(Mixed Precision)가 가능하다

Connected Topics

  • 이전: Transformer, KV Cache
  • 다음: Batching
  • 관련: Inference 최적화 전반

다음 학습 주제