양자화의 기초 개념부터 FP8의 부상, W8A8/W4A16 전략, GPTQ/AWQ/SmoothQuant 기법, KV 캐시 양자화까지 정확도와 성능의 트레이드오프를 분석합니다.
**양자화(Quantization)**는 모델의 가중치와 활성값(Activation)을 더 적은 비트로 표현하는 기법입니다. FP32(32비트)나 FP16(16비트)으로 저장된 파라미터를 INT8(8비트)이나 INT4(4비트)로 변환하면, 메모리 사용량과 연산량을 줄일 수 있습니다.
| 형식 | 비트 수 | FP16 대비 메모리 | 정확도 영향 |
|---|---|---|---|
| FP16 / BF16 | 16 | 1x (기준) | 없음 |
| FP8 (E4M3) | 8 | 0.5x | 거의 없음 |
| INT8 | 8 | 0.5x | 미미 ~ 약간 |
| INT4 | 4 | 0.25x | 약간 ~ 중간 |
| INT3 / INT2 | 3-2 | 0.19x ~ 0.125x | 상당 |
양자화를 깊이 이해하려면 수치 형식의 차이를 알아야 합니다.
부동소수점(Floating Point)은 부호 비트, 지수 비트(Exponent), 가수 비트(Mantissa)로 구성됩니다.
FP32: 1비트 부호 + 8비트 지수 + 23비트 가수 = 32비트
FP16: 1비트 부호 + 5비트 지수 + 10비트 가수 = 16비트
BF16: 1비트 부호 + 8비트 지수 + 7비트 가수 = 16비트
FP8 E4M3: 1비트 부호 + 4비트 지수 + 3비트 가수 = 8비트
FP8 E5M2: 1비트 부호 + 5비트 지수 + 2비트 가수 = 8비트**BF16(bfloat16)**은 FP32와 동일한 지수 범위(Dynamic Range)를 가져 학습에 유리하고, FP8 E4M3은 가수 비트가 3개로 정밀도는 낮지만 추론에 충분한 수준입니다.
INT8은 -128~127 범위의 정수, INT4는 -8~7 범위의 정수를 표현합니다. 부동소수점과 달리 스케일 팩터(Scale Factor)가 필요합니다.
FP8은 2024-2026년 프로덕션 LLM 추론에서 사실상의 표준 양자화 형식이 되었습니다. 그 이유를 분석합니다.
NVIDIA H100부터 FP8 텐서 코어가 탑재되어, FP8 행렬 곱셈이 하드웨어 수준에서 가속됩니다.
H100: FP8 텐서 코어, 80GB HBM3, FP8 약 1,979 TFLOPS
H200: FP8 텐서 코어, 141GB HBM3e, FP8 약 1,979 TFLOPS
B200: FP8 + FP4 텐서 코어, 192GB HBM3e, FP8 약 4,500 TFLOPSFP8 E4M3 형식은 대부분의 LLM에서 FP16 대비 정확도 손실이 1% 미만입니다. 별도의 캘리브레이션(Calibration) 데이터 없이도 적용 가능한 경우가 많아, **PTQ(Post-Training Quantization)**로 간편하게 전환할 수 있습니다.
| 지표 | FP16 대비 |
|---|---|
| 메모리 사용량 | 50% 절감 |
| 추론 처리량 | 1.6x 향상 |
| 정확도 손실 | 1% 미만 (대부분의 벤치마크) |
FP8이 "50% 절감 + 1.6x 처리량"을 달성하는 이유는 두 가지입니다. 첫째, 모델 가중치 크기가 절반이 되어 메모리 대역폭 병목이 완화됩니다. 둘째, FP8 텐서 코어가 FP16 대비 약 2배의 FLOPS를 제공합니다.
양자화 전략은 무엇을 양자화하느냐에 따라 크게 두 가지로 나뉩니다.
가중치만 INT4로 양자화하고, 활성값은 FP16으로 유지합니다. 연산 시 가중치를 FP16으로 복원(Dequantize)한 후 행렬 곱셈을 수행합니다.
가중치 (INT4) → 복원 (FP16) → 행렬 곱셈 (FP16) ← 활성값 (FP16)가중치와 활성값 모두를 8비트로 양자화합니다. INT8 또는 FP8 텐서 코어를 사용해 행렬 곱셈 자체를 8비트로 수행합니다.
가중치 (INT8/FP8) → 행렬 곱셈 (INT8/FP8) ← 활성값 (INT8/FP8)
↓
결과 (FP16으로 누적)2026년 현재 프로덕션 권장 전략은 FP8 W8A8입니다. H100/H200/B200에서 하드웨어 네이티브 지원을 받으며, 정확도 손실이 무시할 수준이고, 별도의 캘리브레이션 없이도 적용 가능합니다.
**GPTQ(Generative Pre-trained Transformer Quantization)**는 레이어별로 양자화 오차를 최소화하는 PTQ 기법입니다. 소량의 캘리브레이션 데이터(보통 128-256 샘플)를 사용해 양자화 파라미터를 결정합니다.
GPTQ는 특히 INT4 양자화에서 좋은 정확도를 보여주며, Hugging Face 생태계에서 널리 사용됩니다.
AWQ는 활성값의 분포를 관찰해, 중요한 가중치 채널을 식별하고 이를 보호하는 방식입니다. 모든 가중치를 동일하게 양자화하는 대신, 활성값에 큰 영향을 미치는 채널에 더 높은 정밀도를 배분합니다.
일반 양자화: 모든 가중치 채널 → 동일 비트 수
AWQ: 중요 채널 (1%) → 높은 정밀도 보호
나머지 채널 (99%) → 낮은 정밀도 양자화AWQ는 GPTQ 대비 더 적은 캘리브레이션 데이터로도 좋은 결과를 얻으며, 양자화 속도도 빠릅니다.
SmoothQuant는 활성값의 아웃라이어(Outlier) 문제를 해결하기 위한 기법입니다. 일부 활성값 채널이 매우 큰 값을 가지면, 이 채널의 양자화 오차가 크게 증가합니다.
SmoothQuant는 아웃라이어를 활성값에서 가중치로 "이동"시키는 수학적 변환을 적용합니다.
스무딩 팩터 s를 적용해 활성값의 범위를 줄이고, 그만큼 가중치의 범위를 늘립니다. 가중치는 정적이므로 사전에 처리할 수 있고, 결과적으로 활성값의 양자화가 쉬워집니다.
| 기법 | 양자화 대상 | 캘리브레이션 | 주요 장점 |
|---|---|---|---|
| GPTQ | 가중치 (INT4/INT3) | 필요 (128+ 샘플) | INT4에서 높은 정확도 |
| AWQ | 가중치 (INT4) | 필요 (적은 양) | 빠른 양자화, 적은 데이터 |
| SmoothQuant | 가중치 + 활성값 | 필요 | 아웃라이어 해결, W8A8 |
| FP8 PTQ | 가중치 + 활성값 | 불필요 (대부분) | 가장 간편, 하드웨어 가속 |
2장에서 KV 캐시의 메모리 부담을 분석했습니다. 모델 가중치뿐 아니라 KV 캐시도 양자화할 수 있습니다.
KV 캐시를 FP16 대신 FP8로 저장하면 캐시 메모리가 50% 줄어듭니다. 이는 동시 처리 가능한 요청 수를 직접적으로 2배 가까이 늘립니다.
vLLM은 --kv-cache-dtype fp8 옵션으로 FP8 KV 캐시를 지원합니다.
NVIDIA B200(Blackwell)은 NVFP4 형식의 KV 캐시를 하드웨어 수준에서 지원합니다. 4비트 KV 캐시는 FP16 대비 75%의 메모리 절감을 제공하며, 매우 긴 컨텍스트(128K+ 토큰)에서의 동시 처리 능력을 극적으로 향상시킵니다.
FP16 KV 캐시: 2.50 GB / 요청
FP8 KV 캐시: 1.25 GB / 요청 → 동시 요청 ~2배
FP4 KV 캐시: 0.625 GB / 요청 → 동시 요청 ~4배KV 캐시 양자화는 Attention 연산의 정확도에 직접 영향을 미칩니다. INT4 수준에서는 일부 태스크(특히 긴 컨텍스트에서의 정보 검색)에서 정확도 저하가 관찰될 수 있으므로, 타겟 워크로드에서의 평가가 필수입니다.
양자화를 프로덕션에 적용할 때 가장 중요한 것은 정확도-성능 트레이드오프를 정량적으로 평가하는 것입니다.
H100/H200/B200 사용? → FP8 W8A8 (기본 추천, 거의 무손실)
↓ 메모리 부족?
INT4 W4A16 (GPTQ/AWQ) → 정확도 평가 필수
↓ 정확도 허용 가능?
예 → 배포
아니오 → 더 큰 GPU 또는 모델 병렬화 (8장 참조)이 장에서는 양자화 추론의 원리와 실전 전략을 분석했습니다.
다음 장에서는 하나의 GPU에 담을 수 없는 대형 모델을 여러 GPU에 분산하는 모델 병렬화와 분산 추론을 다룹니다. 텐서 병렬화, 파이프라인 병렬화, Expert 병렬화의 원리와 적용 전략을 알아보겠습니다.
이 글이 도움이 되셨나요?
관련 주제 더 보기
텐서 병렬화, 파이프라인 병렬화, 시퀀스 병렬화, Expert 병렬화의 원리를 분석하고, 멀티 GPU 추론 전략과 클러스터 수준 최적화를 다룹니다.
시스템 프롬프트 캐싱, Prefix-aware 스케줄링, RadixAttention의 원리를 분석하고, 멀티턴 대화와 평가 워크플로우에서의 성능 개선을 다룹니다.
GPU 선택, 클라우드 vs 온프레미스, 배칭 전략이 비용과 지연시간에 미치는 영향을 분석하고, SLO 기반 최적화와 비용 모델링 방법을 다룹니다.