AI System Semiconductor

6.2. AI 모델 경량화 : 양자화(Quatization)

-운- 2025. 1. 8. 15:10

Neural network에서 Floating point 32-bit 데이터를 하드웨어 친화적인 데이터 포맷과 함께 적은 bit로 바꿔주는 경량화 방법

 

  • Floating point는 소수점을 유동적으로 이동할 수 있기 때문에 표현할 수 있는 수의 범위가 굉장히 넓다.
  • Floating point는 Fixed point보다 표현할 수 있는 범위가 넓음

양자화/역양자화 과정

양자화 과정

  • 양자화를 위한 스케일 팩터 계산
  • 8-bit 양자화: 스케일팩터 S = 2^(b-1)/max  (b는 bit수)
  • 양자화 간격을 설정
  • 데이터를 양자화시키기 위해 반올림(올림,내림) 연산 수행-> Q = R(w*S)  (w는 데이터)
  • 최종 양자화된 데이터 선택

 

역양자화 과정

  • 양자화로 변환된 데이터를 행렬연산 이후 원래의 데이터로 복원하기 위한 과정
  • DQ = Q/S

 

양자화 종류

사후 훈련 양자화(Post-Training Quantization)

  • 사전 학습 모델을 모델 추론 과정에서 양자화하는 방법
  • 추가 학습(fine-tuning)를 하지 않으므로 양자화로 인한 시간 비용이 적음

 

양자화 인식 훈련(Quantization Aware Training)

  • 학습되는 동안 양자화를 미리 시뮬레이션(fake-simulation)하여 양자화로 인한 성능 저하를 예측하고 모델의 가중치를 업데이트하는 방법

 

 

 

대칭 양자화

  • Real zero를 0으로 양자화
  • 부동소수점 0값이 0으로 매핑되는것

비대칭 양자화

  • zero-point가 0이 아닌 양자화 방법
  • 양자화 식: Q = R(w*S-z) (z는 zero-point를 의미하며 0값이 양자화 이후 -23으로 변환)

 

 

균일(Uniform) 양자화

  • 양자화 간격이 일정-> 하드웨어 친화적

비균일 양자화

  • 양자화 간격이 일정하지 않고 데이터의 분포도를 보고 양자화 간격을 할당-> 하드웨어 비친화적

혼잡 정밀도 양자화

  • 양자화된 모델에서 다양한 정밀도를 사용하는 법
  • 모델의 특성을 고려해 적합한 정밀도 제공