1. 양자화(Quantization)
- 의미: 실수(float) 값을 더 적은 비트 수로 표현하는 과정
→ 연속적인 값 범위를 유한한 개수의 이산 값으로 "단위화" - 예시:
- 0.123456 → (INT8 스케일링 후) 31
- 32비트 → 8비트로 압축
- 목적: 모델 경량화, 속도 향상, 메모리 절약
- 분야: 신호처리, 통신, 컴퓨터 비전, 딥러닝 최적화
2. 양자역학의 큐비트(Qubit)
- 의미: 0과 1 상태를 동시에 가질 수 있는 양자 중첩 상태의 정보 단위
- 정보 처리 방식이 고전 비트와 근본적으로 다름
- "한 가지 정보를 알면 다른 정보는 불확정"이라는 건 불확정성 원리(Heisenberg Uncertainty Principle) 쪽 개념이고, 큐비트의 중첩/얽힘과도 관련이 있지만,
딥러닝의 양자화와는 별개의 세계
Quantization 알고리즘은 모델의 파라미터 연산에서 사용하는 값들의 표현 정밀도를 줄여서 연산 효율과 메모리 사용을 최적화 하는 방법
보통 float32 의 사용으로 값을 저장하지만, 이를 int 8, 4, binary 로 변환 가능한 수준으로 표현
1. 양자화 알고리즘의 기본 개념
- 목적
- 모델 크기 축소 (메모리 절약)
- 연산 속도 향상 (특히 CPU, 임베디드, GPU의 Tensor Core에서)
- 전력 소모 감소
- 원리
- 연속적인 실수 범위 → 유한한 이산 값 집합으로 매핑
- 예) 32비트 float 값들을 256개의 정수 값(0~255)에 대응시키고, scale factor를 사용해 다시 실수 범위로 복원 가능


2. 대표적인 양자화 기법
(1) Post-Training Quantization (PTQ)
- 학습 완료 후 가중치와 활성화를 정수로 변환
- 구현 간단, 학습 재진행 불필요
- 단점: 성능 저하 가능성 (특히 작은 네트워크)
(2) Quantization-Aware Training (QAT)
- 학습 중에 양자화를 시뮬레이션
- 양자화 오차를 학습 과정에 반영해 정확도 손실 최소화
- PTQ보다 정확도 유지가 잘됨
(3) Dynamic Quantization
- 가중치는 고정된 정수로 저장, 활성화 값은 연산 시에만 양자화
- 주로 CPU inference에 사용
(4) Mixed Precision / Low-bit Quantization
- 일부 레이어는 FP16, 일부는 INT8, 일부는 FP32로 유지
- NVIDIA GPU에서 Tensor Core로 가속 가능
적용 방법 예시:
- Weights Quantization
- dense 레이어의 가중치를 로드할 때 float32 → int8 변환
- matmul CUDA 커널에서 INT8 곱셈 + scale factor 적용
- Activation Quantization
- activation_forward 직전에 float → int 변환, 연산 후 복원
- scale factor는 layer별로 사전 계산
- QAT 통합
- 학습 시 forward에서 quantize/dequantize 연산 포함
- backward 시 scale factor의 gradient는 계산 안 함(고정)
'AI learning Platform' 카테고리의 다른 글
| 양자화 식 (1) | 2025.08.14 |
|---|---|
| ai framework 와 ai learning platform 의 통합 (0) | 2025.06.24 |