핵심 인사이트 (3줄 요약)
- 본질: 양자화 (Quantization)는 인공지능 (Artificial Intelligence, AI) 모델의 연속값을 더 적은 비트의 이산값으로 바꾸어, 메모리 이동량과 연산 회로 복잡도를 동시에 줄이는 표현 변환 기술이다.
- 가치: 양자화의 진짜 효과는 계산 자체보다 데이터 이동 절감에 있다. 같은 메모리 버스와 같은 칩 면적에서도 더 많은 가중치와 활성값을 실어 나를 수 있어 추론 지연시간, 전력, 비용이 함께 내려간다.
- 판단 포인트: 무조건 비트를 낮출수록 좋은 것이 아니라, 모델 민감도·하드웨어 지원 형식·정확도 손실 허용 범위를 함께 봐서 FP16 (16-bit Floating Point), INT8 (8-bit Integer), INT4 (4-bit Integer) 중 타협점을 정해야 한다.
Ⅰ. 개요 및 필요성
양자화는 부동소수점 표현을 더 짧은 정수 표현으로 바꾸어 모델을 작고 빠르게 만드는 최적화 기법이다. 딥러닝 추론에서 병목은 종종 곱셈기 자체보다 가중치를 메모리에서 계속 읽어 오는 비용에 있다. 특히 거대 언어 모델 (Large Language Model, LLM)이나 모바일 비전 모델은 동일한 파라미터를 반복적으로 불러오므로, 비트 수를 줄이는 순간 대역폭 요구량이 바로 감소한다.
왜 필요한가를 컴퓨터구조 관점에서 보면 답이 단순하다. 32비트 부동소수점 (Floating Point 32, FP32) 가중치 1억 개는 약 400MB가 필요하지만, 같은 개수를 INT8로 바꾸면 약 100MB, INT4로 바꾸면 약 50MB 수준까지 내려간다. 데이터가 4분의 1, 8분의 1로 줄면 캐시 적중 가능성이 올라가고, 메모리 월 (Memory Wall) 때문에 놀고 있던 가속기 연산기가 더 자주 일을 하게 된다.
아래 그림은 양자화가 단순 압축이 아니라, "같은 버스 폭과 같은 메모리로 몇 개의 값을 운반할 수 있는가"를 바꾸는 구조적 선택임을 보여준다.
┌──────────────────────────────────────────────────────────────┐
│ 같은 32-bit 버스라도 표현 방식에 따라 운반량이 달라짐 │
├───────────────┬──────────────────────┬───────────────────────┤
│ 표현 형식 │ 32-bit 버스 1회 전송 │ 상대 저장 크기 │
├───────────────┼──────────────────────┼───────────────────────┤
│ FP32 │ 1개 값 │ 1x │
│ FP16 │ 2개 값 │ 1/2x │
│ INT8 │ 4개 값 │ 1/4x │
│ INT4 │ 8개 값 │ 1/8x │
└───────────────┴──────────────────────┴───────────────────────┘
즉 양자화는 "숫자를 대충 만든다"는 의미보다 "같은 하드웨어가 한 번에 처리할 수 있는 정보량을 늘린다"는 의미로 이해해야 한다. 정확도 손실은 부작용이지만, 메모리와 전력 절감은 구조적으로 확정되는 이득이다.
- 📢 섹션 요약 비유: 양자화는 이삿짐을 큰 상자에 하나씩 싣던 방식을 작은 상자 여러 개로 바꾸는 일과 같다. 내용이 약간 단순해져도, 같은 트럭으로 더 많은 짐을 옮길 수 있으면 전체 이사는 훨씬 빨라진다.
Ⅱ. 아키텍처 및 핵심 원리
양자화의 핵심은 연속적인 실수 범위를 유한한 정수 구간에 대응시키는 것이다. 가장 널리 쓰는 선형 양자화는 실수값 ≈ scale × (정수값 - zero-point) 형태로 표현한다. 여기서 스케일 (Scale)은 실수 범위와 정수 범위의 비율이고, 제로포인트 (Zero-point)는 0 근처를 어느 정수에 대응시킬지 정하는 기준점이다.
1) 기본 데이터 경로
하드웨어 입장에서는 입력과 가중치를 정수로 바꾼 뒤, 정수 곱셈-누산만 빠르게 수행하고 마지막에 필요할 때만 다시 실수 영역으로 복원하는 흐름이 중요하다.
┌────────────┐ quantize ┌────────────┐ INT MAC ┌────────────┐
│ FP32 입력 │ ───────────▶ │ INT8 입력 │ ───────────▶ │ │
├────────────┤ ├────────────┤ │ INT32 누산 │
│ FP32 가중치 │ ───────────▶ │ INT8 가중치 │ ───────────▶ │ │
└────────────┘ └────────────┘ └─────┬──────┘
│
▼
┌────────────┐
│ dequantize │
│ FP16/FP32 │
└────────────┘
이 그림에서 중요한 지점은 두 가지다. 첫째, 곱셈은 가벼운 정수 회로에서 처리되므로 텐서 코어 (Tensor Core), 신경망 처리 장치 (Neural Processing Unit, NPU), 텐서 처리 장치 (Tensor Processing Unit, TPU) 같은 가속기가 높은 병렬도를 확보하기 쉽다. 둘째, 누산은 보통 더 넓은 INT32 (32-bit Integer)나 FP16/FP32로 받아 오차가 누적되어 폭발하는 것을 막는다.
2) 주요 양자화 축
| 축 | 선택지 | 의미 | 하드웨어 영향 |
|---|---|---|---|
| 시점 | PTQ (Post-Training Quantization) | 학습 후 변환 | 도입 쉽지만 정확도 손실 가능 |
| 시점 | QAT (Quantization-Aware Training) | 학습 중 양자화 오차 반영 | 정확도 방어에 유리, 비용 큼 |
| 범위 | Per-Tensor | 텐서 하나에 스케일 1개 | 구현 단순, 정밀도 불리 |
| 범위 | Per-Channel | 채널별 스케일 분리 | 정확도 유리, 메타데이터 증가 |
| 기준점 | Symmetric | 대칭 정수 범위 사용 | 정수 연산 단순 |
| 기준점 | Asymmetric | zero-point 사용 | 범위 활용도 높음 |
PTQ는 이미 학습된 모델을 빠르게 INT8로 바꿔 보는 데 적합하다. 반면 QAT는 학습 단계에서 양자화 오차를 미리 주입해 모델이 계단형 값에 적응하게 하므로, 엣지 배포나 고정밀 서비스에 더 안정적이다. 또한 채널별로 분포가 크게 다른 합성곱이나 주의집중 (Attention) 계층에서는 Per-Channel이 정확도 손실을 줄이는 데 유리하다.
3) 왜 INT8은 쉽고 INT4는 어려운가
INT8은 256개의 표현 구간을 가지므로 많은 모델에서 정확도 손실이 비교적 작다. 하지만 INT4는 16개 구간뿐이라 이상치 (Outlier) 하나가 전체 범위를 잡아먹기 쉽다. 그래서 INT4는 보통 가중치 전용 양자화, 그룹 단위 스케일, 일부 민감 계층 제외, 보정용 재정렬 같은 보완책을 함께 쓴다.
정리하면 양자화의 원리는 단순한 반올림이지만, 실무에서는 스케일을 어디에 둘지, 누산 폭을 얼마로 잡을지, 어떤 계층을 예외 처리할지가 성패를 좌우한다. 이 때문에 양자화는 소프트웨어 압축 기법이면서 동시에 데이터패스 설계 문제다.
- 📢 섹션 요약 비유: 양자화는 지도 축척을 줄이는 일과 같다. 도시 전체를 빨리 보려면 지도를 단순화해야 하지만, 너무 거칠게 줄이면 골목길이 사라진다. 그래서 큰 길만 볼지, 골목까지 남길지 축척을 목적에 맞게 정해야 한다.
Ⅲ. 비교 및 연결
양자화를 이해하려면 "낮은 비트 = 항상 우수"라는 오해부터 버려야 한다. 실제 비교 축은 정밀도, 지원 하드웨어, 적용 위치, 정확도 민감도다.
| 항목 | FP16 / BF16 (Brain Floating Point 16) | INT8 | INT4 |
|---|---|---|---|
| 주 용도 | 학습, 범용 추론 | 표준 추론 | 초경량 추론, 대형 LLM 압축 |
| 표현 범위 | 넓음 | 중간 | 매우 좁음 |
| 정확도 손실 | 작음 | 대체로 관리 가능 | 모델별 편차 큼 |
| 하드웨어 성숙도 | 매우 높음 | 매우 높음 | 지원 편차 큼 |
| 메모리 절감 | 1/2 | 1/4 | 1/8 |
FP16 또는 BF16은 학습과 추론 모두에 널리 쓰이며, 동적 범위가 넓어 안정적이다. INT8은 하드웨어와 프레임워크 지원이 가장 균형 잡힌 구간으로, 서버 추론과 온디바이스 배포의 기본 선택지가 되었다. INT4는 메모리 절감 폭이 더 크지만, 모델 구조와 보정 전략에 따라 성능 편차가 커서 "무조건 적용"보다는 "충분히 검증된 모델에 선택 적용"이 맞다.
연결 개념도 중요하다. 가지치기 (Pruning)는 파라미터 개수를 줄이는 기술이고, 양자화는 각 파라미터의 비트 폭을 줄이는 기술이다. 둘은 경쟁 관계가 아니라 병행 가능한 축이다. 또한 메모리 월, 텐서 코어, 처리-메모리 근접 구조 (Processing-Near-Memory, PNM)와 연결해 보면, 양자화는 결국 데이터 이동 비용을 줄여 가속기 구조를 더 효율적으로 쓰게 만드는 전처리 계층이다.
특히 AI 하드웨어 관점에서는 소프트웨어가 INT8/INT4 표현을 안정적으로 제공해야 가속기가 비로소 높은 TOPS (Tera Operations Per Second)를 실효 성능으로 바꾼다. 즉 하드웨어의 정수 연산기 숫자가 많아도, 모델이 FP32로만 남아 있으면 대역폭과 변환 비용 때문에 설계 이점이 반감된다.
- 📢 섹션 요약 비유: FP16, INT8, INT4는 사진 해상도를 고르는 것과 같다. 대형 인화가 목적이면 고해상도가 필요하지만, 휴대폰 미리보기라면 조금 줄여도 충분하다. 중요한 것은 "가장 선명한 파일"이 아니라 "용도에 맞는 파일"을 고르는 일이다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서는 먼저 병목이 연산인지 메모리인지부터 구분해야 한다. 대형 모델 추론은 대체로 메모리 바운드 (Memory Bound)이므로, 양자화의 효과가 즉시 체감된다. 반대로 작은 모델이나 전처리 비중이 큰 파이프라인은 비트를 줄여도 전체 지연시간 개선이 제한적일 수 있다.
적용 판단 체크리스트
- 하드웨어 지원 확인: 대상 GPU (Graphics Processing Unit), NPU, CPU (Central Processing Unit)가 INT8 또는 INT4 커널을 실제로 가속하는가?
- 양자화 대상 분리: 가중치만 줄일지, 활성값까지 함께 줄일지 구분했는가?
- 정확도 기준 설정: Top-1 정확도, perplexity, BLEU (Bilingual Evaluation Understudy), 응답 안전성 등 서비스 핵심 지표를 미리 정했는가?
- 예외 계층 관리: 임베딩, 출력 헤드, 이상치가 큰 계층을 저비트에서 제외할 필요가 있는가?
- 배포 경로 검증: 모델 변환 후 실제 런타임이 정수 커널을 타는지 프로파일링했는가?
대표적인 의사결정 패턴
- 모바일 / 엣지 추론: 배터리와 메모리가 제한적이므로 INT8이 가장 실용적이다. 전체 INT8 경로가 확보되면 CPU (Central Processing Unit) 폴백을 줄여 발열과 지연시간을 동시에 잡을 수 있다.
- 클라우드 LLM 서빙: GPU 메모리 수용량과 토큰 처리량이 핵심이므로 INT4 가중치 양자화를 적극 검토한다. 다만 품질 하락이 응답 신뢰도에 직접 영향을 주는 서비스라면 일부 계층은 FP16으로 남기는 혼합 정밀도 (Mixed Precision)가 안전하다.
- 고위험 도메인: 의료, 금융 심사, 안전 제어처럼 작은 오차도 부담이 큰 경우에는 INT8 도입 전 검증 비용이 급격히 커진다. 이때는 BF16 또는 FP16을 유지하고, 양자화는 보조 후보로 두는 편이 합리적이다.
안티패턴
- 모델 파일 크기만 줄었는지 보고 성공으로 판단하는 것
- 정수 커널 미지원 하드웨어에서 무리하게 INT4 모델을 배포하는 것
- 계층별 민감도 분석 없이 전 층을 동일 비트로 자르는 것
기술사 답안에서는 "양자화는 정확도 희생의 기술"이라고만 쓰면 부족하다. 더 정확한 표현은 "정확도 일부를 대가로 메모리 이동과 연산 회로를 함께 줄여, 시스템 전체 효율을 높이는 구조적 최적화"다. 즉 성능, 비용, 전력, 품질을 함께 본 설계 판단이어야 한다.
- 📢 섹션 요약 비유: 양자화 적용은 여행 가방을 싸는 일과 같다. 짧은 출장이라면 짐을 압축해 작은 캐리어로 가는 게 유리하지만, 중요한 장비가 많은 출장이라면 무조건 작은 가방만 고집하면 오히려 사고가 난다.
Ⅴ. 기대효과 및 결론
양자화의 가장 큰 효과는 모델을 더 싸고 넓게 배포할 수 있게 만든다는 점이다. 같은 서버 예산으로 더 많은 동시 요청을 처리할 수 있고, 같은 모바일 메모리 안에 더 큰 모델을 올릴 수 있으며, 같은 전력으로 더 긴 추론 시간을 확보할 수 있다. 이 때문에 양자화는 AI 서비스의 대중화를 떠받치는 핵심 하드웨어 친화 기법이 되었다.
다만 한계도 분명하다. 비트 폭을 줄일수록 표현 가능한 값의 밀도가 낮아져 미세한 정보가 사라진다. 분포가 넓은 계층, 이상치가 큰 모델, 멀티모달 출력처럼 정밀도가 중요한 작업은 낮은 비트에서 품질 저하가 쉽게 나타난다. 따라서 양자화는 "정확도를 버리는 기술"이 아니라 "어디까지 줄여도 되는지를 계층별로 찾는 기술"로 기억해야 한다.
앞으로의 흐름은 세 가지로 요약된다. 첫째, INT8 중심의 보편화. 둘째, INT4와 FP8 (8-bit Floating Point) 같은 초저비트/저정밀 표현의 확산. 셋째, 양자화 친화형 모델 구조와 하드웨어/소프트웨어 공동 설계다. 결국 양자화는 압축 기법을 넘어, AI 하드웨어 시대의 기본 인터페이스가 되어 가고 있다.
- 📢 섹션 요약 비유: 좋은 양자화는 짐을 버리는 것이 아니라, 꼭 필요한 것만 남기고 포장을 바꾸는 기술이다. 여행 목적을 잊지 않고 짐을 줄일 때 비로소 가볍고 빠른 이동이 가능해진다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 메모리 월 (Memory Wall) | 양자화가 가장 직접적으로 완화하는 병목으로, 데이터 이동량 감소 효과가 핵심이다. |
| 텐서 코어 (Tensor Core) | INT8, FP16, FP8 같은 저정밀 연산을 대량 병렬 처리해 양자화 이득을 실효 성능으로 바꾼다. |
| 혼합 정밀도 (Mixed Precision) | 일부 계층은 고정밀, 일부는 저정밀로 남겨 정확도와 효율을 절충한다. |
| PTQ / QAT | 양자화를 언제, 어떤 방식으로 모델에 반영할지 결정하는 대표 전략이다. |
| 가지치기 (Pruning) | 비트 수를 줄이는 양자화와 달리 파라미터 수를 줄이며, 함께 적용하면 압축 효과가 커진다. |
📈 관련 키워드 및 발전 흐름도
FP32 중심 추론
│
▼
FP16 · BF16 저정밀 연산 확산
│
▼
INT8 양자화 + 정수 가속기 표준화
│
▼
INT4 가중치 양자화 · LLM 경량화
│
▼
FP8 · 양자화 친화형 모델 · 하드웨어/소프트웨어 공동 설계
이 흐름은 "정밀도 절감 → 데이터 이동 절감 → 가속기 최적화 → 모델 구조 공동 설계"로 진화하는 방향을 보여준다.
👶 어린이를 위한 3줄 비유 설명
- 양자화는 두꺼운 색연필 32개짜리 대신, 필요한 색만 뽑은 작은 색연필 세트를 들고 가는 것과 같아요.
- 색이 조금 덜 많아도 그림이 비슷하게 보이면, 가방은 훨씬 가벼워지고 꺼내 쓰는 속도도 빨라져요.
- 그래서 컴퓨터는 "정말 꼭 필요한 색이 몇 개인지"를 골라서 더 빠르고 덜 뜨겁게 그림을 그리게 된답니다.