본문 바로가기
AI | 딥러닝/Concept

[AI/딥러닝] On-device AI를 위해 하드웨어 컴퓨팅이 가야할 길

by 고뭉나무 2021. 8. 14.

 

2021년 세상에서 이미지 인식과 분류, 자율 주행, 딥페이크, 채팅 봇 등 여러 분야에서 AI 딥러닝 기술이 쓰이고 지속적으로 개발되고 있습니다. 하지만 대부분 수백대의 CPU와 GPU가 장착되어 있는 서버를 통해 이루어지죠. 

2016년 알파고 vs 이세돌 구단, 각각의 투입된 자원 비교

 

그래서 획득한 데이터를 서버로 전송하여 딥러닝 추론을 거쳐 다시 동작하는 기기로 전달 됩니다. 그리고 그 전달 받은 결과를 보여주는 것이죠. 그렇기에 사용자의 모든 데이터는 서버로 전송되며 개인의 정보보호는 이루어지고 있지 않습니다. 또한 서버의 증량으로 탄소 배출량도 나날이 늘어가고 있죠. 

이러한 문제를 해결하며 좀 더 트랜디한 기술을 제시하기 위해 엔비디아, 삼성전자 등 많은 기업들이 투자하는 곳이 있습니다.

바로 'On-device AI' 이죠. 말그대로 Device 안에 AI 기술을 동작시키는 것 입니다. 여기서 Device라 하면 스마트폰, 차량, 가전제품 등이 될 수 있습니다.

지금은 서버에서 AI 처리가 이루어지지만 이를 더 Compact한 환경에서 돌아갈 수 있도록 연구를 하고 있습니다.

 

머신 러닝의 핵심 요소

  • 데이터
  • (딥)러닝 모델
  • 요인 추출

데이터는 러닝 모델에 대입할 '예시들의 집합'을 말하며, (딥)러닝 모델은 답(레이블)을 찾아가는 함수, 요인 추출은 '입력 변수'를 말합니다.

 

특히 이미지 처리는 수백만개의 pixel에 R,G,B 라는 세가지 항목까지 더해져 100 x 100 사이즈의 이미지만 갖고도 30,000개 (100x100x3)의 요인이 나옵니다. 이를 모두 입력 변수로 갖는 다면 학습 시간도 늘어나고 컴퓨팅에 과부하도 우려됩니다.

 

그렇기에 레이블을 높은 확률로 맞출 수 있는 최소 개수의 요인을 추출하는 것이 딥러닝의 핵심이다.

 

 

효과적인 딥러닝 수행 법

우선 데이터를 면밀히 조사하고
데이터의 특징을 파악한 뒤

이에 가장 적합한 (딥)러닝 모델을 잘 골라야 하며,

원 데이터를 그대로 사용하는 것보다는 효과적인 요인을 새로 정의하여,

이를 추출한 뒤 (딥)러닝 모델에 입력해주는 것이 좋다.

 

 

 

On-device AI를 위해 하드웨어 컴퓨팅이 가야할 길

On-device AI

 

딥러닝 모델은 가히 데이터를 먹는 괴물(?)입니다. 딥러닝 모델의 성능이 ‘인간의 수준’에 도달하려면, 대단히 많은 양의 데이터를 필요로 합니다. 이미지넷의 이미지 인식 대회인 ILSVRC에서 2015년도에 나온 ResNet이라는 심층 신경망의 분류 오류율이 인간의 오류율인 5.1%보다 낮은 3.57%의 결과를 얻었습니다. 그런데 사실은 그 부분만을 볼 것이 아니라, ‘ILSVRC에서 무려 1,431,167장의 이미지로 구성된 데이터셋을 제공하였다’는 부분에 특히 더 주목해야 합니다. 이 수백 만장의 이미지를 N개의 요인으로 M개의 Layer로 연산을 수행해야 합니다. (이러니 CPU 1000개 이상, GPU 200개 이상을 사용하기도 하는 것이죠..)

 

이런 딥러닝 기술을 IT 업계에서는 서버가 아닌 On-device로 가져오려 하고 있습니다. 

On-device AI란 딥러닝 추론 분야를 서버를 통하는 것이 아닌 휴대용 기기 안에서 이루어지도록 하는 하드웨어 컴퓨팅을 말합니다. 스마트폰에는 이미 NPU라는 이름으로 들어가 있으며, 자율 주행 차량에도 이를 도입하려고 하고 있습니다.

 

 

On-device AI 에서 딥러닝 경량화는 필수 이다.

 

 

 

딥러닝 경량화 

작고 적은 개수의 하드웨어 컴퓨팅(일명 On-device 컴퓨팅)으로 딥러닝을 구현하기 위해서는 '딥러닝 경량화'를 해야 합니다.

최대한 간소화하면서 딥러닝 효율은 나오 게 해야 하는데... 그럼 어떻게 선택과 집중을 해야 할까요?

 

대략적인 그림은 위에서 언급 했던 내용을 통해 힌트를 얻을 수 있습니다.

최소 개수의 요인을 추출하는 것.

이를 위해서는 우선 데이터를 면밀히 조사하고 데이터의 특징을 파악한 뒤 이에 가장 적합한 (딥)러닝 모델을 잘 골라야 하며, 원 데이터를 그대로 사용하는 것보다는 효과적인 요인을 새로 정의하여, 이를 추출한 뒤 (딥)러닝 모델에 입력해주는 것입니다.

 

이 일련의 과정에서 무엇 하나라도 경량화를 할 수 있다면 On-device AI에 한걸음 다가가는 것일 것입니다. 그럼 하나씩 살펴보도록 합시다.

 

 

경량 딥러닝 기술

경량 딥러닝 기술이란, 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하는 것입니다.
크게 2가지 파트로 나눌 수 있습니다. '경량 알고리즘 기술'과 '알고리즘 경량화 기술' 입니다. (그게 그 말 아닌가..) 싶지만

확연한 차이점이 있습니다.

 

'경량 알고리즘 기술' 은 기존 모델 대비 효율을 극대화하는 것입니다. 딥러닝의 구조적 한계를 개선하고자 하여 딥러닝 알고리즘 구조를 아예 수정합니다.

'알고리즘 경량화 기술' 은 만들어진 모델의 파라미터들을 줄이는 모델 압축(Model Compression) 등의 기법이 적용되는 것입니다. 즉, "기존 딥러닝 모델을 효율적인 사용하고자 함"입니다. 딥러닝 알고리즘 구조를 수정하지는 않지만 알고리즘의 불필요한 파라미터 제거, 파라미터의 공통된 값을 가지고 공유(재사용), 파라미터의 표현력을 잃지 않으면서 기존 모델의 크기를 줄입니다. 모델이 표현하는 다양한 파라미터의 크기를 줄이는 데 주목적입니다. 파라미터가 가지는 표현력을 가능한 한 유지하면서 불필요한 가중치를 최대한 없애기 위한 방법들이 존재합니다.

 

그리고 이 2가지 파트 안에도 위의 목표를 이루기 위한 세부 기술이 있습니다.

경량 딥러닝 연구 동향

 

먼저 '경량 알고리즘 기술'  부터 살펴보면,

 
  1) 모델 구조 변경
   Layer 수는 늘려서 더 깊은 네트워크를 만들면서 연산량은 축소시키는 딥러닝 모델 구조를 모색.

   기술 흐름은 잔여 블록 -> 병목 구조 -> 밀집 블록 순으로 이루어지고 있다.

  2) 합성곱 필터 수정 (@CNN 모델)
   학습 시 가장 큰 연산량을 요구하는 합성곱 연산을 줄이기 위한 효율적인 합성곱 필터 기술이 일반화.

  3) 적합한 딥러닝 모델 자동 탐색 

   구현하고자 하는 기기 혹은 기능에 맞게 자동적으로 딥러닝 모델을 탐색해주는 것.

 


그 다음 '알고리즘 경량화 기술' 을 살펴보면,

 1) 모델 압축 기술(알고리즘의 불필요한 파라미터 제거) 

    여기엔 방법이 3가지나 있습니다. 


    1-1) Pruning
     일반적인 딥러닝 모델은 과파라미터(Over-parameterization)화 되어 있기 때문에 모델이 가지는 가중치의 실제값이 아주 작을 경우, 모델의 정확도에 큰 영향을 미치지 못하므로(이를 모델이 작은 가중치에 대한 내성을 가진다고 표현함), 이 값을 모두 0으로 설정하여 마치 가지치기(Pruning)를 수행하는 것과 같은 효과를 내는 가중치 가지치기(Weight Pruning)가 대표적.

    1-2) Quantization
     일반적인 모델의 가중치는 부동 소수점값을 가지지만, 이를 특정 비트 수로 줄이는 양자화(Quantization)를 통해 기존 딥러닝의 표현력을 유지하면서 실제 모델의 저장 크기는 줄이는 방법.

    1-3) Binarization
     0과 1로 표현하여 표현력을 많이 줄이지만, 정확도의 손실은 어느 정도 유지하면서 모델 저장 크기를 확연히 줄이는 이진화(Binarization) 기법.
   

2) 지식 증류 

  딥러닝의 큰 모델(Teacher Network)로부터 증류한 지식을 작은 모델(Student Network)로 transfer하는 일련의 과정.

   

 

3) 하드웨어 가속화

    범용적인 GPU를 사용하는 것이 아닌 해당 기술에만 최적화하여 딱 필요한 요소만 넣은 하드웨어 컴퓨팅을 따로 구현하는 것. 

    모바일 기기를 중심으로 뉴럴 프로세싱 유닛(NPU)을 통해 추론 속도를 향상시킴.

 

 

4) 모델 압축 자동 탐색

   이 또한 위에서 적합한 딥러닝 모델을 자동 탐색 해주듯이 모델 압축 기법도 자동 탐색해주는 기술

 

경량 딥러닝 기술 동향, ETRI.pdf
1.73MB

 

 

오늘은 On-device AI 기술을 위한 경량 딥러닝 기술에 대해 대략적으로 알아보았습니다.

다음 포스팅에서는 각각 구체적인 기술에 대해 알아보도록 하겠습니다 :)

 

 

위 글이 도움이 되셨나면, 아래 하트를 눌러주세요↓

감사합니다 \( ˆoˆ )/​

 

반응형

댓글