크크루쿠쿠

[모델 최적화] 1. 최적화 소개 및 강의 개요 본문

DeepLearning/부스트캠프 AI Tech

[모델 최적화] 1. 최적화 소개 및 강의 개요

JH_KIM 2021. 11. 25. 09:42

Introduction(경량화)

 

1) On device AI

- 파워에 대한 제약이 있다.

 

2) AI on cloud

-  latency와 throughput의 제약이 존재한다. -> 사용량이 돈과 직결되기 때문에

 

3) Computation as a key component of AI progress

날이 갈수록 필요한 성능이 exponential 하게 증가함

 

경량화 분야 소개

 

경량화,최적화의 종류

- 네트워크 구조 관점

1. Efficient Architecture Design ( AutoML; NAS)

매년 나오는 블록 모듈들이 특성이 전부 다름

NAS -> 모델을 찾는 네트워크

-> 사람의 직관을 상회하는 모델을 찾을 수 있음.

2. Network Pruning

중요도가 낮은 파라미터를 제거하는 것.

중요도를 정의하는것이 주요 연구 토픽.

Structure pruning -> 덩어리 자체로 프루닝하는것. ex)convolution 단위

Unstructured pruning -> parameter 각각을 독립적으로 pruning 하는 방법

3. Knowledge Distillation

이미 학습된 큰 네트워크를 작은 네트워크의 학습 보조로 사용하는 방법

soft target 에서는 ground truth 보다 더 많은 정보를 담고있기 때문에 유익하다.

-> ground truth와 student network와의 cross-entropy, teacher network와 student network 와의 KLD loss

4. Matric/Tensor Decomposition

하나의 Tensor를 작은 Tensor들의 operation들의 조합으로 표현하는 것

- 하드웨어 관점

5. Network Quantization 

일반적인 fp32 타입을 더 작은 크기의 데이터타입으로 변환하여 연산을 수행

Quantization Error 가 있음에도 어느정도 잘 작동 하더라.

사이즈: 감소, 성능: 약간 하락, 속도: Hardware 지원 여부 및 사용 라이브러리에 따라 다름(향상 추세)

int8 quantization example

6. Network Compiling

- 학습이 완료된 Network를 deploy하려는 target hardware에서 inference가 가능하도록 compile 하는 것

- 속도에 가장 큰 영향을 미침.

- TensorRT(NVIDIA), Tfilter(Tensorflow), TVM(apache)

성능 비교

layer fusion 같은 기술로 최적화가 수행됨

문제점은 Layer fusion의 조합에 따라 성능차이가 발생한다.

 

이 부분 또한 AutoML로 좋은 fusion을 찾아낼 수 있다 ex)AutoTVM

Comments