본문으로 건너뛰기
Kreath Archive
TechProjectsBooksAbout
TechProjectsBooksAbout

내비게이션

  • Tech
  • Projects
  • Books
  • About
  • Tags

카테고리

  • AI / ML
  • 웹 개발
  • 프로그래밍
  • 개발 도구

연결

  • GitHub
  • Email
  • RSS
© 2026 Kreath Archive. All rights reserved.Built with Next.js + MDX
홈TechProjectsBooksAbout
//
  1. 홈
  2. 테크
  3. 7장: 양자화 추론 — FP8, INT8, INT4
2026년 3월 28일·AI / ML·

7장: 양자화 추론 — FP8, INT8, INT4

양자화의 기초 개념부터 FP8의 부상, W8A8/W4A16 전략, GPTQ/AWQ/SmoothQuant 기법, KV 캐시 양자화까지 정확도와 성능의 트레이드오프를 분석합니다.

16분293자9개 섹션
llmaiperformancemlops
공유
llm-inference7 / 10
12345678910
이전6장: Prefix Caching과 프롬프트 최적화다음8장: 모델 병렬화와 분산 추론

이 장에서 배우는 것

  • 양자화의 기초: 정밀도와 수치 형식의 관계
  • FP8이 프로덕션 양자화의 표준이 된 이유
  • Weight-only 양자화(W4A16)와 Weight-Activation 양자화(W8A8)
  • GPTQ, AWQ, SmoothQuant 기법의 원리와 차이
  • KV 캐시 양자화와 NVFP4
  • 정확도-성능 트레이드오프의 실제

양자화란 무엇인가

**양자화(Quantization)**는 모델의 가중치와 활성값(Activation)을 더 적은 비트로 표현하는 기법입니다. FP32(32비트)나 FP16(16비트)으로 저장된 파라미터를 INT8(8비트)이나 INT4(4비트)로 변환하면, 메모리 사용량과 연산량을 줄일 수 있습니다.

메모리 절감=1−양자화 후 비트 수원본 비트 수\text{메모리 절감} = 1 - \frac{\text{양자화 후 비트 수}}{\text{원본 비트 수}}메모리 절감=1−원본 비트 수양자화 후 비트 수​
형식비트 수FP16 대비 메모리정확도 영향
FP16 / BF16161x (기준)없음
FP8 (E4M3)80.5x거의 없음
INT880.5x미미 ~ 약간
INT440.25x약간 ~ 중간
INT3 / INT23-20.19x ~ 0.125x상당

수치 형식의 이해

양자화를 깊이 이해하려면 수치 형식의 차이를 알아야 합니다.

부동소수점 형식

부동소수점(Floating Point)은 부호 비트, 지수 비트(Exponent), 가수 비트(Mantissa)로 구성됩니다.

부동소수점 형식 비교
text
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)가 필요합니다.

xquantized=round(xscale),xdequantized=xquantized×scalex_{quantized} = \text{round}\left(\frac{x}{\text{scale}}\right), \quad x_{dequantized} = x_{quantized} \times \text{scale}xquantized​=round(scalex​),xdequantized​=xquantized​×scale

FP8의 부상

FP8은 2024-2026년 프로덕션 LLM 추론에서 사실상의 표준 양자화 형식이 되었습니다. 그 이유를 분석합니다.

하드웨어 네이티브 지원

NVIDIA H100부터 FP8 텐서 코어가 탑재되어, FP8 행렬 곱셈이 하드웨어 수준에서 가속됩니다.

GPU별 FP8 지원
text
H100:  FP8 텐서 코어, 80GB HBM3,  FP8 약 1,979 TFLOPS
H200:  FP8 텐서 코어, 141GB HBM3e, FP8 약 1,979 TFLOPS
B200:  FP8 + FP4 텐서 코어, 192GB HBM3e, FP8 약 4,500 TFLOPS

거의 무손실 정확도

FP8 E4M3 형식은 대부분의 LLM에서 FP16 대비 정확도 손실이 1% 미만입니다. 별도의 캘리브레이션(Calibration) 데이터 없이도 적용 가능한 경우가 많아, **PTQ(Post-Training Quantization)**로 간편하게 전환할 수 있습니다.

성능 수치

지표FP16 대비
메모리 사용량50% 절감
추론 처리량1.6x 향상
정확도 손실1% 미만 (대부분의 벤치마크)
Info

FP8이 "50% 절감 + 1.6x 처리량"을 달성하는 이유는 두 가지입니다. 첫째, 모델 가중치 크기가 절반이 되어 메모리 대역폭 병목이 완화됩니다. 둘째, FP8 텐서 코어가 FP16 대비 약 2배의 FLOPS를 제공합니다.

Weight-only vs Weight-Activation 양자화

양자화 전략은 무엇을 양자화하느냐에 따라 크게 두 가지로 나뉩니다.

W4A16 (Weight 4-bit, Activation 16-bit)

가중치만 INT4로 양자화하고, 활성값은 FP16으로 유지합니다. 연산 시 가중치를 FP16으로 복원(Dequantize)한 후 행렬 곱셈을 수행합니다.

W4A16 연산 흐름
text
가중치 (INT4) → 복원 (FP16) → 행렬 곱셈 (FP16) ← 활성값 (FP16)
  • 장점: 모델 메모리를 75% 줄여 더 큰 모델을 GPU에 로드할 수 있습니다
  • 단점: 연산 자체는 FP16으로 수행되므로 연산 속도 향상은 제한적입니다
  • 적합한 경우: 메모리가 부족해 모델을 로드할 수 없을 때, Decode 단계의 메모리 바운드 완화

W8A8 (Weight 8-bit, Activation 8-bit)

가중치와 활성값 모두를 8비트로 양자화합니다. INT8 또는 FP8 텐서 코어를 사용해 행렬 곱셈 자체를 8비트로 수행합니다.

W8A8 연산 흐름
text
가중치 (INT8/FP8) → 행렬 곱셈 (INT8/FP8) ← 활성값 (INT8/FP8)
                         ↓
                    결과 (FP16으로 누적)
  • 장점: 메모리 50% 절감 + 연산 속도 향상 (텐서 코어 활용)
  • 단점: 활성값 양자화에 추가적인 캘리브레이션이 필요할 수 있습니다
  • 적합한 경우: H100 이상 GPU에서의 프로덕션 서빙
Tip

2026년 현재 프로덕션 권장 전략은 FP8 W8A8입니다. H100/H200/B200에서 하드웨어 네이티브 지원을 받으며, 정확도 손실이 무시할 수준이고, 별도의 캘리브레이션 없이도 적용 가능합니다.

주요 양자화 기법

GPTQ

**GPTQ(Generative Pre-trained Transformer Quantization)**는 레이어별로 양자화 오차를 최소화하는 PTQ 기법입니다. 소량의 캘리브레이션 데이터(보통 128-256 샘플)를 사용해 양자화 파라미터를 결정합니다.

GPTQ는 특히 INT4 양자화에서 좋은 정확도를 보여주며, Hugging Face 생태계에서 널리 사용됩니다.

AWQ (Activation-aware Weight Quantization)

AWQ는 활성값의 분포를 관찰해, 중요한 가중치 채널을 식별하고 이를 보호하는 방식입니다. 모든 가중치를 동일하게 양자화하는 대신, 활성값에 큰 영향을 미치는 채널에 더 높은 정밀도를 배분합니다.

AWQ의 핵심 아이디어
text
일반 양자화: 모든 가중치 채널 → 동일 비트 수
AWQ:        중요 채널 (1%) → 높은 정밀도 보호
            나머지 채널 (99%) → 낮은 정밀도 양자화

AWQ는 GPTQ 대비 더 적은 캘리브레이션 데이터로도 좋은 결과를 얻으며, 양자화 속도도 빠릅니다.

SmoothQuant

SmoothQuant는 활성값의 아웃라이어(Outlier) 문제를 해결하기 위한 기법입니다. 일부 활성값 채널이 매우 큰 값을 가지면, 이 채널의 양자화 오차가 크게 증가합니다.

SmoothQuant는 아웃라이어를 활성값에서 가중치로 "이동"시키는 수학적 변환을 적용합니다.

Y=(Xdiag(s)−1)⋅(diag(s)W)=X^W^Y = (X \text{diag}(s)^{-1}) \cdot (\text{diag}(s) W) = \hat{X} \hat{W}Y=(Xdiag(s)−1)⋅(diag(s)W)=X^W^

스무딩 팩터 s를 적용해 활성값의 범위를 줄이고, 그만큼 가중치의 범위를 늘립니다. 가중치는 정적이므로 사전에 처리할 수 있고, 결과적으로 활성값의 양자화가 쉬워집니다.

기법양자화 대상캘리브레이션주요 장점
GPTQ가중치 (INT4/INT3)필요 (128+ 샘플)INT4에서 높은 정확도
AWQ가중치 (INT4)필요 (적은 양)빠른 양자화, 적은 데이터
SmoothQuant가중치 + 활성값필요아웃라이어 해결, W8A8
FP8 PTQ가중치 + 활성값불필요 (대부분)가장 간편, 하드웨어 가속

KV 캐시 양자화

2장에서 KV 캐시의 메모리 부담을 분석했습니다. 모델 가중치뿐 아니라 KV 캐시도 양자화할 수 있습니다.

FP8 KV 캐시

KV 캐시를 FP16 대신 FP8로 저장하면 캐시 메모리가 50% 줄어듭니다. 이는 동시 처리 가능한 요청 수를 직접적으로 2배 가까이 늘립니다.

vLLM은 --kv-cache-dtype fp8 옵션으로 FP8 KV 캐시를 지원합니다.

NVFP4 KV 캐시

NVIDIA B200(Blackwell)은 NVFP4 형식의 KV 캐시를 하드웨어 수준에서 지원합니다. 4비트 KV 캐시는 FP16 대비 75%의 메모리 절감을 제공하며, 매우 긴 컨텍스트(128K+ 토큰)에서의 동시 처리 능력을 극적으로 향상시킵니다.

KV 캐시 양자화 효과 (Llama 2 70B GQA, 8K 컨텍스트)
text
FP16 KV 캐시: 2.50 GB / 요청
FP8 KV 캐시:  1.25 GB / 요청  → 동시 요청 ~2배
FP4 KV 캐시:  0.625 GB / 요청 → 동시 요청 ~4배
Warning

KV 캐시 양자화는 Attention 연산의 정확도에 직접 영향을 미칩니다. INT4 수준에서는 일부 태스크(특히 긴 컨텍스트에서의 정보 검색)에서 정확도 저하가 관찰될 수 있으므로, 타겟 워크로드에서의 평가가 필수입니다.

정확도-성능 트레이드오프의 실제

양자화를 프로덕션에 적용할 때 가장 중요한 것은 정확도-성능 트레이드오프를 정량적으로 평가하는 것입니다.

평가 전략

  1. 벤치마크 평가: MMLU, HumanEval, GSM8K 등 표준 벤치마크에서 양자화 전후의 점수를 비교합니다
  2. 도메인 특화 평가: 실제 서비스 워크로드의 대표 샘플로 A/B 테스트를 수행합니다
  3. 아웃라이어 분석: 양자화로 인해 특히 취약한 태스크 유형을 식별합니다

실용적 가이드라인

양자화 의사결정 트리
text
H100/H200/B200 사용? → FP8 W8A8 (기본 추천, 거의 무손실)
  ↓ 메모리 부족?
INT4 W4A16 (GPTQ/AWQ) → 정확도 평가 필수
  ↓ 정확도 허용 가능?
  예 → 배포
  아니오 → 더 큰 GPU 또는 모델 병렬화 (8장 참조)

정리

이 장에서는 양자화 추론의 원리와 실전 전략을 분석했습니다.

  • FP8은 프로덕션 추론에서의 표준 양자화 형식으로, 50% 메모리 절감과 1.6배 처리량을 거의 무손실로 달성합니다
  • W4A16은 메모리 절감에, W8A8은 메모리와 연산 동시 최적화에 적합합니다
  • GPTQ, AWQ, SmoothQuant는 각각 다른 시나리오에서 강점을 가지며, FP8 PTQ가 가장 간편합니다
  • KV 캐시 양자화는 동시 처리 요청 수를 직접적으로 늘리는 효과적인 방법입니다

다음 장에서는 하나의 GPU에 담을 수 없는 대형 모델을 여러 GPU에 분산하는 모델 병렬화와 분산 추론을 다룹니다. 텐서 병렬화, 파이프라인 병렬화, Expert 병렬화의 원리와 적용 전략을 알아보겠습니다.

이 글이 도움이 되셨나요?

관련 주제 더 보기

#llm#ai#performance#mlops

관련 글

AI / ML

8장: 모델 병렬화와 분산 추론

텐서 병렬화, 파이프라인 병렬화, 시퀀스 병렬화, Expert 병렬화의 원리를 분석하고, 멀티 GPU 추론 전략과 클러스터 수준 최적화를 다룹니다.

2026년 3월 30일·17분
AI / ML

6장: Prefix Caching과 프롬프트 최적화

시스템 프롬프트 캐싱, Prefix-aware 스케줄링, RadixAttention의 원리를 분석하고, 멀티턴 대화와 평가 워크플로우에서의 성능 개선을 다룹니다.

2026년 3월 26일·17분
AI / ML

9장: 비용 vs 지연시간 트레이드오프

GPU 선택, 클라우드 vs 온프레미스, 배칭 전략이 비용과 지연시간에 미치는 영향을 분석하고, SLO 기반 최적화와 비용 모델링 방법을 다룹니다.

2026년 4월 1일·16분
이전 글6장: Prefix Caching과 프롬프트 최적화
다음 글8장: 모델 병렬화와 분산 추론

댓글

목차

약 16분 남음
  • 이 장에서 배우는 것
  • 양자화란 무엇인가
  • 수치 형식의 이해
    • 부동소수점 형식
    • 정수 형식
  • FP8의 부상
    • 하드웨어 네이티브 지원
    • 거의 무손실 정확도
    • 성능 수치
  • Weight-only vs Weight-Activation 양자화
    • W4A16 (Weight 4-bit, Activation 16-bit)
    • W8A8 (Weight 8-bit, Activation 8-bit)
  • 주요 양자화 기법
    • GPTQ
    • AWQ (Activation-aware Weight Quantization)
    • SmoothQuant
  • KV 캐시 양자화
    • FP8 KV 캐시
    • NVFP4 KV 캐시
  • 정확도-성능 트레이드오프의 실제
    • 평가 전략
    • 실용적 가이드라인
  • 정리