왜 경량화인가? 딥러닝 모델의 경량화가 필요한 이유

1. motivation

 

머신러닝과 딥러닝은 이제 거의 모든 분야에서 활용되고 있음

 

자율주행자동차, entertainment, healthcare, NLP, text, speech, image, audio 등등 다양한 application

 

여러가지 딥러닝 어플리케이션

 

 

2. on device AI

 

smartphone, smartwatch, IoT device 등에 자체적으로 머신러닝이나 딥러닝 어플리케이션이 올라가 inference를 수행함

 

이미 object detection, translation 등이 on device에서 수행가능한 딥러닝 어플리케이션들

 

그러나 올려야하는 어플리케이션이 power(battery) usage가 적어야하고

 

RAM memory usage가 적어야하고 storage가 적어야하고 computing power가 적어야하는 여러가지 한계점들이 있음

 

이런 한계점을 해소하는 방법들을 연구하는 것이 경량화의 목표

 

 

3. AI on cloud or server

 

서버나 클라우드에서 AI 어플리케이션을 구동하는 일반적인 방식

 

on device AI에 비해 배터리, 저장공간, 연산능력 등에 대한 제약은 줄어든다.

 

즉 서버나 클라우드에서는 on device에 비해 연산량이나 저장공간 등을 크게 신경쓰지 않아도 된다

 

그러나 latency나 throughput에 제약이 있다

 

latency는 한가지 요청에 대해 소요되는 시간

 

예를 들어 번역 한가지가 수행되는데 1분이 걸리면 latency가 길어서 사용자 입장에서는 불편함

 

throughput은 단위시간당 처리가능한 요청 수를 의미함

 

예를 들어 1000명이 사용하는 어플리케이션에서 감당할 수 있는 요청수가 1분에 100개이면 사용하기 불편할 것

 

같은 자원(hardware device, ==돈)으로 더 적은 latency와 더 큰 throughput를 얻을 수 있다면?

 

이것이 경량화의 일종이라는건가 애매하게 설명해가지고 ㅡㅡ

 

 

4. computation

 

AI의 발전에 따른 중요한 요소 중 하나는 모델의 computation

 

2012년을 기점으로 AI 모델을 학습하는데 필요한 computation이 3~4개월 주기로 두배씩 증가했다고함

 

시대에 따른 모델의 계산량 그래프

 

 

2012를 기점으로 계산량이 증가하는 속도가 심상치않다

 

연산량 측정 지표는 보통 FLOPs를 사용하지만 제대로 공개가 안되어 있으면 GPU times로 간접적으로 측정함

 

GPU times 계산시 GPU가 실제로는 100% utilization을 발휘하지 못해서 일부 조정하는데 openAI에서는 1/3로 조정한 적이 있다고는 함

 

 

5. 경량화는 결국….

 

모델 연구와는 별개로 개인적으로는 필수적으로 이용되어야하며 산업에 적용되기 위해서 반드시 거쳐야하는 과정

 

hardware 종류나 latency 제한, 요구되는 throughput나 원하는 성능들간 tradeoff를 고려하여 적절한 경량화를 수행

TAGS.

Comments