본문 바로가기

AI & Big Data/AI 경량화

[AI 경량화] AI 경량화, 혹은 AI Optimization이란 무엇인가?

반응형

서  론

출처: 구글 이미지

학계가 매년 수도 없이 많은 AI 논문을 출판한다.

그리고 대부분의 석박들은 더 높은 정확도와, 더 낮은 손실도, 더 복잡한 AI 학습 알고리즘을 연구하는 데에 몰입하고 있다.

 

그러다보니, 현업에서는 더 정확도 높은 이미지 분류, 음성인식 모델을 얻게 되었지만,

동시에 모델 사이즈가 너무 커지고 임베디드 기기에는 도저히 온보딩할 수 없는 지경에 이르렀다.

 

참고로, 모델 사이즈와 정확도가 모두 만족된다는 최신 SOTA(state-of-the-art) 모델인 EfficientNet의 경우도,

(심지어 가장 모델 사이즈가 작은 b0 모델의 경우조차)

라즈베리파이의 칩셋인 ARM Cortex-A53에 온보딩할 경우 Inference Time Period가 0.10 [Hz] 정도밖에 나오지 않는다.

 

10초에 한 번 추론한다니……

도저히 활용할 수가 없는 것이다.

 

그렇기에 현업에서는 클라우드를 활용하거나,

AI 경량화에 대한 니즈가 커지고 있는 실정이다.

 

일례로 수학 풀어주는 앱, 콴다를 개발한 매스프레소는 AI 경량화를 통한 모바일 온보딩 AI로 스마트폰의 자원을 활용하여 5초 이내로 문제의 답을 도출해낸다.


AI 경량화란 무엇인가?

기본적으로 AI 경량화는 너무 당연하지만, AI를 축소시키고 가볍게 만드는 기법이다.

모델 사이즈를 줄이거나, 혹은 가볍게 만들어서 추론 시간(Latency)를 줄이는 데에 특화되어 있다.

 

극단적으로는, 100MB가 넘는 모델 사이즈를 10MB 가량으로 줄이거나,

0.10[Hz]의 레이턴시를 가지던 EfficientNet을 1.2[Hz]로 12배의 속도 상승을 내게 할 수도 있다.

 

물론 장점만 있는 것은 아니다.

모델의 사이즈를 경량화 시키고, 레이턴시를 줄여 더 빠른 추론 성능을 내게 하는 반면,

그에 따른 정확도의 희생은 물론 있다.

 

그렇기에, 손실되는 정확도에 비해 속도가 저조하게 오르거나,

아무리 빨라져도 사용자들이 의구심을 갖게 만드는 정확도까지 손실이 일어날 경우 경량화가 어려운 경우가 된다.

 

또한, 경량화는 항상 똑같은 폭으로 레이턴시가 줄어들거나, 정확도 손실이 같은 폭으로 일어나는 것이 아니라,

모델마다, 데이터셋마다, Representative Dataset마다 그 상승과 하락이 모두 다른 양상을 띈다.

 

그리고 경량화 기법은 아주 다양하며,

지금도 몇몇 석박들에 의해 새로운 경량화 기법이 연구되고 있다.

 

그렇기에 모델에 따라 적절하게 경량화 기법들을 적용시켜 본인의 모델에 맞는 경량화를 사용하는 것이 중요하다.


AI 경량화를 하는 방법

 

Tensorflow Lite
Tensorflow Model Optimization

AI 경량화를 하는 방법에는 여러 가지가 있겠으나,

툴은 한정적이다.

 

기본적으로 학습 후 양자화(Quantization)를 지원하는 Tensorflow Lite와,

Pruning, 학습 전 양자화를 지원하는 tfmot 패키지가 있다.

Tensorflow Lite는 Tensorflow 2.0.0 버전에서 처음으로 소개되었고,

tfmot 패키지는 아직도 0.3.0 버전밖에 되지 않았다.

 

이외에도 최근 CVPR에서 소개된 BiDet 양자화 기법이나,

(CVPR, 9 Mar 2020, "BIDet: An Efficient Binarized Object Detector", Ziwei Wang 외 4인 저)

Knowledge Distillation, Low-Rank Approximation, Low-Rank Regularization 등은 툴 없이 직접 알고리즘을 구현해야한다.

 

이러한 경량화 기법들은 모델 하나당 한 가지 경량화 기법만 적용할 수 있는 것이 아니라,

여러 경량화 기법들을 복합적으로 적용할 수도 있다.

물론 그에 따른 정확도 손실은 점점 더 커질 것이다.

 

뿐만 아니라, 이미 학습된 모델 말고도 학습을 하면서 중간 중간 지속적으로 경량화를 해가며 모델링을 마칠 수도 있고,

이 방법은 더 제약 조건이 많으나 더 큰 폭의 경량화를 지원한다.

 

AI 경량화가 무엇인가에 대해서는 이쯤 알아보고,

이후의 포스팅에서는 이러한 툴과 패키지를 활용해서 이미 학습이 끝난 모델과 학습을 시키려는 모델의 경량화 방법을 알아보도록 하자.


 

반응형