⚡ AI Optimization

양자화 최적화

개요

양자화(Quantization)는 신경망의 가중치와 활성값을 고정밀도 부동소수점(FP32/FP16) 대신 저비트 정수(INT8, INT4, INT2)로 표현하여 모델 크기를 줄이고 추론 속도를 향상시키는 모델 압축 기법이다. 딥러닝 모델의 파라미터 수가 수십억에서 수백억 개로 증가하면서, 메모리 대역폭과 저장 공간의 병목이 추론 성능의 핵심 제약 요소가 되었다.

양자화는 크게 학습 시 양자화(Quantization-Aware Training, QAT)와 학습 후 양자화(Post-Training Quantization, PTQ)로 분류된다. PTQ는 별도의 재학습 없이 기존 학습된 모델의 가중치를 직접 양자화하므로, 오버헤드가 적어 대규모 언어 모델(LLM) 추론에 널리 사용된다. 최근 연구에서는 4비트 양자화만으로도 모델 성능을 크게 저하시키지 않으면서 메모리 사용량을 75%까지 줄이는 데 성공하고 있다.

핵심 개념

양자화 기본 원리

양자화 함수

연속적인 부동소수점 값을 이산적인 정수 값으로 매핑하는 과정으로, 두 단계로 구성된다:

  1. 순방향 양자화 (Forward Quantization): 입력 값을 정수 인덱스로 변환
    k = floor(x / Δ + 0.5) // Δ: 양자화 스텝 크기

  2. 역방향 복원 (Inverse Quantization): 정수 인덱스를 복원값으로 변환
    y_k = k × Δ

양자화 유형

유형 설명 적용 대상 장점
균일 양자화 (Uniform) 동일한 간격으로 양자화 범용 구현 단순, 하드웨어 친화적
비균일 양자화 (Non-uniform) 데이터 분포에 따라 간격 조정 특수 용도 높은 정확도
스칼라 양자화 각 가중치를 개별적으로 양자화 기본 적용 단순성
벡터 양자화 가중치 그룹을 벡터로 묶어 양자화 고급 적용 더 높은 압축률

PTQ vs QAT 비교

항목 PTQ (Post-Training) QAT (Quantization-Aware)
학습 필요 불필요 필요 (fine-tuning)
구현 복잡도 낮음 높음
정확도 중간~높음 가장 높음
오버헤드 최소 학습 비용 발생
적합 용도 빠른 배포 최고 정확도 필요 시

비교/분석

주요 양자화 기법 비교

양자화 기법 비교
기법 비트 수 의존성 칼리브레이션 성능 범용성
Round-to-Nearest (RTN) W4/W3/W2 없음 불필요 낮음 높음
GPTQ W4/W3/W2 이차 정보 필요 (소량) 높음 중간
AWQ W4/W3 활성 분포 필요 (소량) 가장 높음 높음
ZeroQuant W8/W4 없음 불필요 중간 높음
QLoRA W4 학습 필요 (full) 높음 중간

비트별 정확도-메모리 트레이드오프

비트 수 메모리 절감 FP16 대비 정확도 추론 가속 적합 시나리오
FP16 기준 100% 기준 학습, 최고 정확도
INT8 50% 99~100% 1.5~2x 일반 추론
INT4 75% 97~99% 2~4x 엣지 배포, 대형 모델
INT3 81% 90~97% 3~5x 메모리 극한 제약
INT2 87% 80~90% 4~6x 연구용, 특수 용도

동작 원리

GPTQ (Gradient-based Post-Training Quantization)

GPTQ는 옵저버 블록(Optimal Brain Quantization)의 이차 정보를 활용한 PTQ 기법이다:

핵심 원리:
1. 가중치 행렬을 순서대로 양자화
2. 각 가중치 양자화 시 발생하는 오차를 이차 정보(Hessian)로 추정
3. 남은 미양자화 가중치에 보정값(Compensation)을 적용하여 오차 최소화

수학적 배경:

min ||WX - W_qX||²
subject to: W_q는 양자화된 가중치

장점:
- 빠른 양자화 속도 (175B 모델 ~4 GPU 시간)
- 3~4비트에서도 높은 정확도 유지
- 메모리 효율적 (칼리브레이션 데이터 소량 필요)

AWQ (Activation-aware Weight Quantization)

AWQ는 활성값(Activation) 분포를 기반으로 중요 가중치를 보호하는 기법이다:

핵심 발견:
- 모든 가중치가 동등하게 중요하지 않음
- ~1%의 중요 가중치 채널만 보호해도 양자화 오차를 크게 줄일 수 있음
- 중요 채널 식별은 가중치 분포가 아닌 활성값 분포를 참고해야 함

동작 과정:
1. 칼리브레이션 데이터로 활성값 통계 수집
2. 활성값 크기가 큰 채널( salient channels) 식별
3. 중요 채널의 가중치를 스케일링하여 보호
4. 하드웨어 효율적인 균일 양자화 적용

수학적 표현:

s* = argmin ||Q(w × s) × x/s - w × x||
where s는 채널별 스케일 팩터

양자화 파이프라인

양자화 파이프라인
1. 모델 준비
   └── FP16/FP32 가중치 로드

2. 칼리브레이션 데이터 수집
   └── 소량의 대표 데이터셋 (100~1000 샘플)

3. 활성값 통계 분석
   └── 채널별 최대값, 분포 수집

4. 양자화 적용
   └── 가중치: W_q = round(W × s) / s
   └── 활성값: X_q = round(X × s_x) / s_x

5. 정확도 검증
   └── 벤치마크 데이터로 성능 확인

6. 모델 저장
   └── 양자화된 가중치 + 메타데이터

장단점

장점

  1. 메모리 절감: INT4 양자화 시 모델 크기 75% 감소
  2. 추론 가속: 저비트 연산은 더 빠르고 전력 효율적
  3. 배포 용이성: 소형 모델은 엣지 디바이스에서 실행 가능
  4. 비용 절감: GPU 메모리 요구량 감소로 인프라 비용 절감
  5. 생태계 호환성: 주요 프레임워크(PyTorch, TensorRT, GGUF)에서 널리 지원

단점

  1. 정확도 손실: 저비트 양자화 시 성능 저하 발생
  2. 카테고리 특이성: 모델 구조/데이터에 따라 최적 설정이 달라짐
  3. 재학습 불가피: 최고 정확도를 위해 QAT 추가 학습 필요
  4. 하드웨어 의존성: 일부 하드웨어에서만 저비트 연산 가속 지원
  5. 구현 복잡도: 최적 양자화를 위한 튜닝 필요

관련 기술

주요 프레임워크 및 도구

도구 유형 특징 지원 비트
PyTorch Quantization QAT/PTQ 널리 사용, 통합 지원 W8/A8
TensorRT PTQ NVIDIA 최적화, 런타임 가속 W8/W4
GGUF (llama.cpp) PTQ CPU 추론 특화 W4/W3/W2
bitsandbytes PTQ 최소 설정, Hugging Face 통합 W8/W4
AutoGPTQ PTQ GPTQ 구현체, 커뮤니티 활발 W4/W3/W2
AutoAWQ PTQ AWQ 구현체, 높은 호환성 W4/W3

하드웨어 지원 현황

하드웨어 INT8 INT4 INT2 비고
NVIDIA A100/H100 O O X Tensor Core 지원
NVIDIA RTX 40xx O O X Ada Lovelace
Apple M-series O O X Neural Engine
Qualcomm NPU O O O 엣지 특화
Google TPU v5 O X X BF16 중심

핵심 정리

  1. 양자화는 모델 압축의 핵심 기법: FP16 대비 75% 메모리 절감 가능
  2. PTQ가 대세: GPTQ, AWQ 등 학습 없이 빠른 양자화 기법이 실용화
  3. AWQ의 활성값 인식: 중요 가중치 보호를 통한 최적 정확도-메모리 트레이드오프 달성
  4. 4비트 양자화 실용화: 대부분의 LLM에서 4비트 양자화로 충분한 성능 유지
  5. 하드웨어-소프트웨어 공진화: Tensor Core, NPU 등 저비트 연산 지원 하드웨어 발전

참고 문헌

  1. Frantar, E., et al. (2022). GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers. ICLR 2023.
  2. Lin, J., et al. (2023). AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration. MLSys 2024 Best Paper.
  3. NVIDIA. (2023). TensorRT Quantization Guide.
  4. Dettmers, T., et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. NeurIPS 2023.
  5. Yao, Z., et al. (2022). ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers. NeurIPS 2022.