본문 바로가기

AI learning Platform

딥러닝의 양자화 Quantization 구현하기 - Quantum Computing 과의 차이를 확인하며

 

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로 가속 가능

 

적용 방법 예시:

  1. Weights Quantization
    • dense 레이어의 가중치를 로드할 때 float32 → int8 변환
    • matmul CUDA 커널에서 INT8 곱셈 + scale factor 적용
  2. Activation Quantization
    • activation_forward 직전에 float → int 변환, 연산 후 복원
    • scale factor는 layer별로 사전 계산
  3. QAT 통합
    • 학습 시 forward에서 quantize/dequantize 연산 포함
    • backward 시 scale factor의 gradient는 계산 안 함(고정)

 

 

'AI learning Platform' 카테고리의 다른 글

양자화 식  (1) 2025.08.14
ai framework 와 ai learning platform 의 통합  (0) 2025.06.24