241227 TIL #574 AI Tech #107 19주차 주간학습정리 / Quantization

김춘복·2024년 12월 27일
0

TIL : Today I Learned

목록 보기
576/604

Today I Learned

오늘 배운 내용은 경량화의 한 방법인 Quantization!


주간학습정리

학습 정리로 월~금 동안 매일
복습, 과제, 피어세션, 회고 정리했고 아래 링크 달았습니다.


팀 회고


Quantization

딥러닝 모델의 연산 비용과 메모리 사용량을 줄이기 위해 가중치와 활성화 값의 정밀도를 낮추는 기법

ex) 32비트 부동소수점(FP32)을 8비트 정수(INT8)와 같은 낮은 정밀도로 변환해 메모리 사용량을 줄임 (32비트->8비트로 1/4)

  • 정밀도(precision)
    의도한 숫자를 얼마나 정확하게 표현할 수 있는지

  • 정밀도가 낮으면 오차는 발생할 수 있지만 연산 속도가 빨라지고 메모리 사용량이 감소한다.

  • 일반적으로 Quantization을 통해 저장하고, 이를 복원하는 Dequantization을 거친 후 연산한다.

Model Quantization

  • Quantization Mapping
    높은 정밀도의 데이터를 낮은 정밀도로 대응시키는 계산 식

  • absmax Quantization : 0을 기준으로 변환 후 값의 범위가 좌우대칭이 되게 변환
    Tanh를 쓸 때 사용, 극단값에 예민

  • zero-point Quantization : 0을 고려하지 않고 전체 범위를 균일하게 변환
    ReLU를 쓸 때 사용, 기준점이 비정상이면 성능 저하

  • 양자화 후 값(XquantX_{quant}), 양자화에 쓰이는 기울기(scale factor, S)와 zeropoint(0의 양자화후 위치, z)를 저장해야 한다.

Xquant=round(X/S+z)Xdequant=s×(Xquantz)X_{quant} = round(X/S + z) \\ X_{dequant} = s \times (X_{quant} - z)
  • Clipping
    극단적인 값의 영향을 줄이기 위한 기법.
    일정 범주를 넘어가면 clipping해서 같은 값으로 치환한다.
    범주를 찾는 과정을 calibration이라고 한다.
profile
Backend Dev / Data Engineer

0개의 댓글