#개념

양자화(Quantization)는 신경망(Neural Network)의 가중치(Weight)와 활성값(activation)을 32비트 부동소수점(FP32)보다 적은 비트 수의 표현, 특히 8비트 정수(INT8)나 4비트 정수(INT4)로 변환하여 모델의 저장 공간과 메모리 사용량, 연산량을 줄이는 모델 압축 기법이다. 모델의 파라미터 수가 수십억에서 수천억 개에 이르는 대규모 언어 모델(Large Language Models, LLM) 시대에 양자화는 선택이 아닌 필수가 되었다. 예를 들어 700억 파라미터 모델은 FP16으로 약 140GB의 메모리가 필요하지만 INT4로 양자화하면 약 35GB로 줄어 단일 GPU에서 실행할 수 있게 된다.
양자화의 기본 원리는 실수 범위 $[\alpha, \beta]$를 정수 범위 $[-2^{b-1}, 2^{b-1}-1]$로 선형 사상하는 것이다. 스케일(scale) $s$와 영점(zero-point) $z$를 두고 실수 $x$를 정수 $q = \text{round}(x / s) + z$로 양자화하며, 역양자화(dequantization)는 $\hat{x} = s \cdot (q - z)$로 수행한다. 이때 $x$와 $\hat{x}$의 차이가 양자화 오차(Quantization Error)이며, 범위를 벗어나는 값은 클리핑(clipping)된다.
영점을 0으로 고정하여 범위를 원점 대칭으로 잡는 대칭 양자화(Symmetric Quantization)는 계산이 단순하여 가중치에 주로 쓰이고, 영점을 자유롭게 두어 분포가 한쪽으로 치우친 값(예: ReLU 출력)을 더 촘촘히 표현하는 비대칭 양자화(Asymmetric Quantization)는 활성값에 자주 사용된다. 또한 스케일을 텐서 전체에 하나만 두는 per-tensor 방식보다 출력 채널마다 따로 두는 per-channel 방식, 나아가 가중치를 32~128개 단위의 그룹으로 묶어 각각 스케일을 갖는 그룹 단위(group-wise) 방식이 채널 간 분포 차이를 흡수하여 정확도를 높이며, LLM의 저비트 양자화에서는 그룹 단위가 사실상 표준이다.
양자화를 적용하는 시점에 따라 두 가지 접근으로 나뉜다. 사후 학습 양자화(Post-Training Quantization, PTQ)는 이미 학습된 모델을 재학습 없이 양자화하는 방식으로, 적용이 빠르고 학습 데이터 전체가 필요 없다. PTQ는 다시 가중치만 미리 양자화하고 활성값은 추론 시 동적으로 범위를 계산하는 동적 양자화(dynamic quantization)와, 활성값의 범위까지 미리 정해 두는 정적 양자화(static quantization)로 나뉜다.
정적 양자화에서 활성값 범위를 정하는 과정이 캘리브레이션(Calibration)이다. 대표 샘플 수백 개를 모델에 통과시켜 각 층의 활성값 분포를 관찰한 뒤 최솟값·최댓값(min-max), 이동 평균, 백분위수(percentile), 또는 원래 분포와 양자화된 분포 사이의 KL 발산을 최소화하는 범위(entropy calibration), 평균 제곱 오차를 최소화하는 범위(MSE) 등을 선택하여 스케일과 영점을 결정한다. 극단적인 이상값(outlier) 하나가 범위를 넓혀 나머지 값의 해상도를 떨어뜨리는 문제가 있으므로 캘리브레이션 방법의 선택이 정확도에 큰 영향을 미친다.
반면 양자화 인식 학습(Quantization-Aware Training, QAT)은 학습 과정에서 순전파 시 가짜 양자화(fake quantization) 연산을 삽입하여 양자화 오차를 시뮬레이션하고, 반올림 연산의 기울기가 0이라는 문제를 직선 추정기(Straight-Through Estimator, STE)로 우회하여 역전파(Backpropagation)로 가중치를 갱신한다. 모델이 양자화 오차에 적응하도록 학습되므로 PTQ보다 정확도가 높고 INT4 이하의 공격적인 양자화에도 강건하지만, 학습 데이터와 추가 연산 비용이 필요하다.
Jacob 등(2018)은 정수 연산만으로 추론을 수행하는 양자화 체계와 QAT 절차를 제안하여 MobileNet을 모바일 CPU에서 효율적으로 실행할 수 있음을 보였고, 이 방식은 TensorFlow Lite와 PyTorch 양자화 API의 기반이 되었다.
LLM은 수십억 개의 파라미터를 가진 데다 QAT를 수행하기에는 재학습 비용이 막대하므로, 소량의 캘리브레이션 데이터만으로 정확도 손실을 최소화하는 가중치 전용(weight-only) PTQ 기법이 집중적으로 발전했다. 대표적인 기법은 다음과 같다.
LLM 양자화 기법
  • GPTQ(Frantar 등, 2022): 층별로 가중치를 한 열씩 양자화하면서 발생한 오차를 아직 양자화되지 않은 나머지 가중치에 보정하는 2차 정보(Hessian) 기반의 최적 뇌 양자화(Optimal Brain Quantization) 방식으로, 1750억 파라미터 모델을 GPU 몇 시간 만에 3~4비트로 양자화하면서도 정확도 저하를 거의 일으키지 않았다.
  • AWQ(Activation-aware Weight Quantization)(Lin 등, 2023): 모든 가중치가 똑같이 중요하지 않다는 관찰에서 출발하여, 활성값의 크기가 큰 채널에 대응하는 1% 안팎의 중요 가중치를 채널별 스케일링으로 보호함으로써 양자화 오차를 줄이며, 역전파나 재구성 과정 없이 빠르게 동작하고 다양한 도메인에 일반화된다.
  • SmoothQuant(Xiao 등, 2022): LLM의 활성값에 특정 채널에 집중된 큰 이상값이 존재하여 활성값 양자화가 어렵다는 점에 주목하고, 수학적으로 동등한 변환으로 양자화의 어려움을 활성값에서 가중치로 옮겨 가중치와 활성값을 모두 8비트로(W8A8) 양자화하여 실제 추론 속도 향상과 메모리 절감을 동시에 달성했다.
  • bitsandbytes: 이상값 채널만 FP16으로 분리하여 처리하는 LLM.int8()과, 정규분포를 따르는 가중치에 정보 이론적으로 최적인 4비트 자료형 NF4(NormalFloat 4-bit)를 제공하는 라이브러리다.
  • QLoRA(Dettmers 등, 2023): 사전 학습 모델을 NF4로 양자화하여 고정한 채 저랭크 어댑터(LoRA)만 학습하고, 양자화 상수 자체를 다시 양자화하는 이중 양자화(double quantization)와 페이지드 옵티마이저를 결합하여 650억 파라미터 모델을 48GB GPU 한 장에서 미세 조정(Fine-tuning)할 수 있게 했다.
긴 문맥을 처리하는 추론에서는 가중치보다 KV 캐시(Key-Value Cache)가 메모리를 더 많이 차지하므로, 어텐션의 키·값 캐시를 INT8이나 FP8, 심지어 2~4비트로 양자화하는 KV 캐시 양자화도 활발히 연구되며 vLLM, TensorRT-LLM, llama.cpp 등이 이를 지원한다.
정수 양자화와 별개로 저정밀 부동소수점 포맷도 널리 사용된다. 주요 포맷은 다음과 같다.
저정밀 부동소수점 포맷
  • FP16(반정밀도): 지수 5비트, 가수 10비트로 표현 범위가 좁아 학습 중 기울기 언더플로가 발생하기 쉽다.
  • BF16(bfloat16): Google이 제안한 포맷으로, FP32와 같은 지수 8비트를 유지하고 가수를 7비트로 줄여 범위는 넓고 정밀도는 낮으며 혼합 정밀도(mixed precision) 학습의 표준이 되었다.
  • FP8: NVIDIA Hopper 세대부터 하드웨어 지원이 시작되었으며, E4M3(지수 4, 가수 3)와 E5M2(지수 5, 가수 2) 두 변형이 있어 전자는 가중치와 활성값에, 후자는 넓은 범위가 필요한 기울기에 사용되고, 정수와 달리 값의 크기에 따라 해상도가 달라지는 비균일 특성 덕분에 캘리브레이션 부담이 작다.
최신 Blackwell 아키텍처는 마이크로 스케일링 블록 포맷인 MXFP4와 NVFP4 같은 4비트 부동소수점까지 지원한다. 양자화는 본질적으로 메모리·지연 시간·정확도의 절충이다. 비트 수를 줄이면 모델 크기와 메모리 대역폭 요구량이 비례하여 줄고, 메모리 대역폭에 묶인(memory-bound) LLM 디코딩 단계에서는 이것이 곧 지연 시간(Latency) 단축으로 이어지며, INT8 텐서 코어처럼 저정밀 연산을 가속하는 하드웨어에서는 처리량도 증가한다.
그러나 비트 수가 낮아질수록 양자화 오차가 커져 퍼플렉시티 상승과 하위 작업 정확도 저하가 나타나고, 특히 소형 모델이나 추론 능력이 중요한 작업에서 손실이 두드러진다. 가중치 전용 INT4 양자화는 메모리는 크게 줄이지만 연산 전에 역양자화가 필요하여 배치가 큰 연산 집약적(compute-bound) 상황에서는 오히려 느릴 수 있으며, W8A8처럼 활성값까지 양자화해야 정수 행렬 곱의 속도 이점을 온전히 누릴 수 있다. 따라서 실무에서는 퍼플렉시티뿐 아니라 실제 다운스트림 벤치마크로 모델 평가 지표(Model Evaluation Metrics)를 측정하고, 목표 하드웨어에서 지연 시간과 처리량을 직접 벤치마크하여 포맷을 선택한다.
양자화의 효과는 하드웨어와 런타임이 저정밀 연산을 실제로 가속할 때 실현되므로 배포 도구 생태계가 중요하다. 주요 배포 도구는 다음과 같다.
양자화 배포 도구
  • NVIDIA TensorRT와 TensorRT-LLM: INT8·FP8·INT4 커널과 캘리브레이션 도구를 제공하여 GPU에서 양자화 모델을 최적 실행한다.
  • ONNX Runtime: ONNX 그래프에 동적·정적 양자화를 적용하여 CPU와 다양한 가속기에서 실행한다.
  • PyTorch: Eager 모드와 FX 그래프 모드, 그리고 최신 torchao 라이브러리로 PTQ와 QAT 워크플로를 지원한다.
  • llama.cpp: C/C++로 구현된 LLM 추론 엔진으로, 양자화된 텐서와 메타데이터를 단일 파일에 담는 GGUF 포맷과 Q4_K_M, Q5_K_M, Q8_0 같은 다양한 비트 수·블록 구조의 양자화 변형을 정의하여 소비자용 CPU·GPU·Apple Silicon에서 대규모 모델을 실행하는 사실상의 표준이 되었다.
Hugging Face Transformers는 bitsandbytes, GPTQ, AWQ, GGUF 등 여러 백엔드를 통합 인터페이스로 제공하고, 모바일·엣지 환경에서는 TensorFlow Lite(LiteRT)와 ExecuTorch, Qualcomm·Apple의 NPU 런타임이 INT8 모델을 실행한다.
양자화는 다른 모델 압축 기법과 상호 보완적이다. 지식 증류(Knowledge Distillation)는 큰 교사 모델의 출력을 모방하도록 작은 학생 모델을 학습하여 파라미터 수 자체를 줄이는 방법이고, 가지치기(Pruning)는 중요도가 낮은 가중치나 뉴런, 어텐션 헤드를 제거하여 희소성을 만드는 방법이며, 양자화는 남은 파라미터 각각의 표현 비트를 줄인다. 세 기법은 서로 다른 축에서 모델을 압축하므로 함께 적용할 수 있고, 증류로 양자화 오차를 회복하거나 가지치기 후 양자화하는 조합이 실무에서 흔히 쓰인다.
결론적으로 양자화는 모델의 성능을 최대한 보존하면서 메모리와 비용, 지연 시간을 줄여 대규모 모델을 실제 서비스와 엣지 기기에 배포 가능하게 만드는 모델 서빙(Model Serving)과 MLOps의 핵심 최적화 기법이다.

#관련 용어

사후 학습 양자화(PTQ)
학습이 끝난 모델을 재학습 없이 소량의 캘리브레이션 데이터만으로 저정밀 표현으로 변환하는 방식
양자화 인식 학습(QAT)
학습 중 가짜 양자화 연산으로 양자화 오차를 시뮬레이션하여 모델이 저정밀 표현에 적응하도록 하는 방식
캘리브레이션
대표 샘플을 모델에 통과시켜 활성값 분포를 관찰하고 양자화 범위(스케일과 영점)를 결정하는 과정
가중치
신경망에서 입력의 중요도를 나타내는 학습 가능한 매개변수로 양자화의 주된 대상
대규모 언어 모델
수십억 개 이상의 파라미터를 가진 언어 모델로 메모리 절감을 위해 양자화가 필수적으로 적용되는 대상
모델 서빙
학습된 모델을 실제 추론 요청에 노출하는 단계로 양자화를 통해 지연 시간과 비용을 줄이는 영역

#직무 연관도

DA
Data Analyst
희박
양자화된 모델의 비용·속도·정확도 절충을 이해하면 모델 도입 의사결정과 비용 분석에 참고할 수 있다
DS
Data Scientist
높음
모델 압축 기법을 선택하고 양자화에 따른 정확도 손실을 평가하며, QLoRA 등 양자화 기반 미세 조정으로 제한된 자원에서 대규모 모델을 학습하는 데 필요하다
DE
Data Engineer
밀접
TensorRT, ONNX Runtime, llama.cpp 등으로 양자화 모델을 서빙하고 GPU 메모리와 지연 시간, 처리량을 최적화하는 추론 인프라의 핵심 기술

#사용 사례

인터넷 서비스전자상거래자율주행통신제조의료
개요
양자화는 LLM 챗봇과 검색·추천 모델의 서빙 비용 절감, 스마트폰·IoT 기기의 온디바이스 AI, 자율주행과 로봇의 실시간 인식 모델, 제한된 GPU 자원에서의 대규모 모델 미세 조정 등 메모리와 지연 시간, 전력 제약이 있는 거의 모든 딥러닝 배포 환경에 활용된다.
사례
전자상거래 기업이 상품 문의 응대용 챗봇에 700억 파라미터 LLM을 도입할 때, FP16 원본은 80GB GPU 두 장이 필요하지만 AWQ로 INT4 양자화하면 한 장에서 실행되어 서빙 비용이 절반 이하로 줄고, 메모리 대역폭 부담이 감소하여 토큰 생성 지연 시간도 단축된다. 배포 전 자체 평가 데이터셋으로 답변 정확도가 원본 대비 1% 이내로 유지되는지 확인하고, 자율주행 차량의 객체 탐지 모델은 QAT를 거친 INT8로 변환하여 차량 내 NPU에서 실시간으로 실행한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.