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) 양자화
- 양자화 간격이 일정-> 하드웨어 친화적
비균일 양자화
- 양자화 간격이 일정하지 않고 데이터의 분포도를 보고 양자화 간격을 할당-> 하드웨어 비친화적
혼잡 정밀도 양자화
- 양자화된 모델에서 다양한 정밀도를 사용하는 법
- 모델의 특성을 고려해 적합한 정밀도 제공
'AI System Semiconductor' 카테고리의 다른 글
6.4. AI 하드웨어 설계 기법 (0) | 2025.01.08 |
---|---|
6.3. AI 모델 경량화 : Knowledge Distillation, Tensor Decomposition 등 (0) | 2025.01.08 |
6.1. AI 모델 경량화: 프루닝(Pruning, 가지치기) (0) | 2025.01.08 |
5.4. 반도체 패키징 공정 기술 (1) | 2025.01.07 |
5.3. 반도체 식각(Etching) 공정 기술 (0) | 2025.01.07 |