?강원대학교?/?김화종 교수


 

서론


최근 인공지능(AI) 기술이 여러 분야에서 널리 활용되면서 빅데이터와 이를 제공하는 클라우드의 선택이 중요시 되고 있다. 인공지능의 성능은 머신러닝 모델 학습에 사용되는 빅데이터의 규모와 품질에 크게 좌우되기 때문이다. 특히 이미지 인식, 음성 인식, 자연처 처리 분야에서 널리 사용되는 신경망 기반의 딥러닝 모델은 양질의 학습 데이터를 얼마나 많이 확보하고 이들을 어떻게 분석하는 지에 따라 성능이 크게 달라진다.

클라우드를 활용하는 가장 중요한 목적은 데이터 저장, 컴퓨팅 자원 사용, 분석 소프트웨어 활용을 편리하게 수행하기 위해서이며, 머신러닝 분야는 이 세가지를 동시에 필요로 한다. 특히 여러 소스로부터 생산되는 데이터를 신속하고 안전하게 저장하고 융합하는 클라우드 환경 조성이 점차 중요해지고 있다.

인공지능을 기반으로 하는 4차 산업혁명시대에 앞서 나가기 위해서 각 기업과 기관은 효과적인 클라우드의 활용 전략이 필요하다. 특히 딥러닝 등 머신러닝을 수행하기에 적합한 클라우드를 어떻게 구축할지에 대한 대책이 필요하다.

일본의 한 농장에서 수행한 수확한 오이의 품질을 딥러닝 기법으로 자동 분류한 예는 널리 알려진 인공지능 이용 사례이다. 이러한 작업을 위해서 농부가 데이터 사이언스를 깊게 공부하거나 하드웨어를 구매하지 않아도 되었다. 구글이 제공하는 머신러닝 클라우드를 이용한 것이다[1]. 자신의 데이터를 직접 관리하고 소프트웨어를 직접 구현하는 일이 점차 줄어들 것이며 특히 복잡한 환경을 갖추어야 하는 머신러닝 크라우드(Machine learning as a service: MLaaS)에서는 기 구축된 클라우드 서비스를 효과적으로 이용하는 전략이 필요하다. 본 고에서는 대표적인 머신러닝 클라우드 서비스?동향을 알아보겠다.

 




 

Ⅰ. 머신러닝 클라우드 특징


1. 머신러닝 프로세스


머신러닝 크라우드 서비스(MLaaS)란 인공지능, 머신러닝, 또는 데이터 분석에 필요한 데이터 수집, 데이터 전처리, 모델 학습, 성능 평가 그리고 실제 문제 적용 등을 총체적으로 지원하는 클라우드를 말한다.

아래 그림에 머신러닝 프로세스를 나타냈는데 먼저 원시 데이터를 전처리(preprocessing)하여 분석에 적합한 데이터를 얻는 과정이 필요하다. 이를 데이터 정제(cleaning)라고도 한다. 모든 데이터를 분석에 사용하는 것이 아니라 주요 특성(feature)만 사용하게 되며 적절한 특성을 선택하기 위해서 특성 공학(feature engineering)을 수행하게 된다. 머신러닝에서는 적절한 모델을 선택하고 이를 데이터로 학습(training)시켜야 하며 이를 위해서 모델 구조와 파라미터를 설정하는 작업이 필요하다. 최종적으로 모델의 성능을 평가하고 이를 실제 서비스에 적용한다.

 

[그림 1] 머신러닝 전체 프로세스


cloud_181122_image_1
위에서 설명한 머신러닝 프로세스를 클라우드에서 수행함으로써를 얻을 수 있는 장점은 다음과 같다.

 

1) 장점


- 데이터를 로드한 후 데이터 분석 파이프라인을 한 곳에서 수행함으로써 데이터의 이동을 최소화 할 수 있다.
-?머신러닝은 일시적으로 다수의 GPU를 사용해야할 경우가 많으므로 하드웨어 구축 비용을 절감할 수 있다.
- 여러 사람이 협업하여 분석하는 경우 데이터의 사본을 만들 필요가 없다
- 여러 소스로부터 발생되는 데이터를 융합하는 경우 데이터 관리가 편리하다.

 

2) 단점


그러나 머신러닝 클라우드는 다음과 같은 문제를 해결해야 한다.

- 클라우드에 축적되는 데이터 양이 방대하게 늘어나면 이를 관리하는 거버넌스 문제가 점차 복잡해진다.
- 새로운 버전의 유사 데이터 추가, 기존 데이터 삭제시 데이터 버전 관리 정책이 점차 복잡해진다.
- 데이터가 융합되면 새로운 개인정보 추정이 가능해지므로 한 곳에 데이터가 모이게 되면 데이터 보안 문제가 새롭게 대두된다.

 




 

Ⅱ. 머신러닝 클라우드 비교


머신러닝 클라우드를 선택하는데 있어 가장 중요한 요소는 비용과 편리성이다. 대표적인 머신러닝 클라우드인 아마존 머신러닝 서비스, 마이크로소프트 Azure, 구글 Cloud AI, 페이퍼스페이스, IBM Watson?등의 특징을 살펴보겠다[2].

 

1. 아마존 EC2


아마존 EC2는 가장 유명한 머신러닝 클라우드 서비스이다. Amazon ML(Machine learning)은 데이터 전처리와, 분류와 회귀 예측 분석 기능을 제공한다. 아마존 ML은 모든 프로세스를 자동화하였는데, 데이터 타입을 보고 자동으로 최적의 지도 학습을 수행한다. 이러한 기능은 편리하다는 장점이 있지만 동시에 사용자가 개입할 수 없다는 단점이 될 수 있다.

 

2. 아마존 SageMaker


아마존은 전문적인 데이터 과학자를 위해 SageMaker를 제공하는데 이는 쥬피터 노트북 인터페이스를 제공하여 사용자가 바로 코딩을 작성할 수 있게 한다. 선형분류와 회귀 분석, 그리고 XGBoost와 같은 앙상블 알고리즘을 구축할 수 있고 Resnet을 이용한 전이학습으로 이미지 분류도 지원한다. 이외에도 seq2seq, K-Means, 주성분 분석(PCA), LDA, 주제분석 등의 모델을 지원한다. 사용자는 텐서플로우, 케라스, 카페2, 토치, MXNet 등을 사용할 수 있다. SageMaker는 EC2보다 이용료가 비싸다. K80 GPU를 사용하려면 시간당 $1.25를 지불해야 한다.

 

3. 마이크로소프트 Azure


마이크로소프트의 Azure는 ML Studio와 Bot Service로 나누어진다. ML Studio는 그래픽한 그래그앤 드롭으로 데이터 탐색, 전처리, 알고리즘 선택, 모델 검증 등을 수행할 수 있다. Azure는 100여 가지의 다양한 머신러닝 모델을 제공한다. 또한 Azure AI Gallery에서는 이미 구축된 다양한 솔류션을 공유한다. 더 전문적인 데이터 분석가와 팀 단위 프로젝트의 분석과정 전체를 지원하는 프레임워크로 ML Service를 추가로 제공하고 있다.

 

4. 구글 colab


구글 colab은 무료로 편리하게 사용할 수는 클라우드 서비스이다. 쥬피터 노트북 인터페이스를 제공하며 자신의 구글 드라이브와 연동되어 프로그램이나 파일을 관리할 수 있다. 텐서플로우와 케라스 패키지를 바로 이용할 수 있는 환경을 제공하며 GPU도 무료로 사용할 수 있다 (시간 제한은 있음).

 

5. 구글 클라우드


무료인 구글 colab이 반응속도와 환경구성에서 제한을 받는 것에 비해 유료 서비스인 구글 클라우드는 더 많은 기능을 제공한다. 메모리, CPU 코어수, GPU수 등을 간편하게 설정할 수 있다. 구글 클라우드 AutoML은 데이터 사이언스 경험이 많지 않은 사용자도 바로 모델을 만들고 사용할 수 있다. 기본적인 이미지 분류와 언어 번역 모델을 제공한다. 아마존의 SageMaker와 유사한 기능으로 구글은 ML Engine을 제공하는데 XGBoost, 파이선의 sklearn, Keras 등을 지원한다. 프로그램 개발 단계에서는 선점형(preemptive) 인스턴스 옵션을 선택하면 비용을 크게 줄일 수 있다. 사용비용은 월 730시간 기준으로 146달러정도이다. 단 프로그램 실행중에 인터럽트될 수 있다.

 

6. IBM


IBM의 왓슨 머신러닝 Studio는 초보자를 위한 자동화 서비스로 데이터 처리와 분석과정을 지원하며 또한 전문가를 위해서 수동형 서비스를 제공한다. 자동화 서비스는 분류와 회귀 기능을 제공한다. 이를 위해서 로지스틱 회귀, 결정트리, 랜덤포레스트, 나이브 베이즈, 그라디언트 부스트 등 대표적인 머신러닝 알고리즘 10여 가지를 제공한다. 또한 신경망 모델을 구현하기 위한 flow editor interface를 제공한다. 쥬피터 노트북 인터페이스를 통해서 텐서플로우, 케라스, 파이토치 라이브러리를 제공한다.

 

7. paperspace


페이퍼스페이스에서는 쥬피터 노트북을 바로 편리하게 구동할 수 있다. 환경설정이 매우 편리하다는 특징이 있다. 페이퍼스페이스에서는 구글의 TPU(Tensorflow Processing Unit)을 선택하여 사용할 수 있는데 사용 비용이 구글에서 직접 사용하는 것보다는 비싸다.

 

8. vast.ai


사용하지 않고 있는 GPU를 공유하게 해주는 서비스이다. 가장 저렴한 방법으로 GPU를 사용할 수 있는 방법이다. 그러나 데이터가 임의의 제 3자에게 공개될 수 있으므로 민감한 데이터 분석에는 사용하기 어렵다. 현재 시간당 6 센트 정도로 GPU를 사용할 수 있다.

 




 

Ⅲ. 머신러닝 APIs


구글, 아마존, IBM, 마이크로소프트 등에서는 머신러닝을 직접 구동하는 API를 제공하고 있다. 사용자가 머신러닝에 대한 지식이 많지 않아도 클라우드가 제공하는 상위 레벨의 API를 사용하여 이미지 인식, 음성 인식, 텍스트 분석, 번역 등을 수행할 수 있다. 아래는 텍스트 처리와 관련된 API들을 비교하였다 [2].

[그림 2] 음성과 텍스트 처리를 위한 머신러닝 API 비교 [2]


cloud_181122_image_2


 

아마존의 Rex API는 딥러닝 기반의 챗봇 기능을 제공한다. 마이크로소프트는 Cognitive Services를 제공하며, 구글 클라우드의 Dialogflow는 자연어처리 기능으로서 화자의 의도를 파악하는 기능을 제공한다. IBM의 Tone Analyzer는 텍스트 문서에 대해서 감성 분석을 수행한다.

아래는 이미지처리와 관련된 API들을 비교한 것이다.

 

[그림 3] 이미지 분석 머신러닝 API 비교 [2]


cloud_181122_image_3

 




 

Ⅳ. 머신러닝 클라우드 선택


1. 성능비교


아마존(AWS, EC2), 구글(GCP, colab), paperspace, vast.ai 클라우드를 사용하여 고양이-강아지 이미지를 구분하는 문제를 실행하는데 소요되는 시간과 비용을 그래프로 비교하였다 [3]. 그래프를 보면 GCP V100, VP100이 가격대비 성능이 가장 좋은 것으로 나타났다.

 

[그림 4] 고양이-강아지 이미지 분류 문제 수행시간과 비용 비교


cloud_181122_image_4

 

2. 머신러닝 클라우드 선택


분석할 데이터가 민감하다면 공용(public) 클라우드 사용은 어려우므로 사설 클라우드를 사용하거니 직접 서버를 구축해야 한다. 그러나 머신러닝 프로세스에 필요한 서버 환경 설정과 GPU, 메모리, 외부 접근 권한 설정 등이 복잡하므로 이를 내부 인력으로 감당하기 어려워진다. 민감한 데이터는 보안 기능을 보장하는 클라우드를 선택해야 한다.

머신러닝을 처음 테스트하는 경우에는 무료로 사용할 수 있는 아마존 colab을 사용할 수 있지만 속도가 느리고 동작이 불안정하다. 저렴하게 사용할 수 있는 GPU가 필요하다면vast.ai을 사용할 수 있으나 데이터 보안은 보장되지 않는다.

향후 머신러닝 클라우드에 대한 수요는 개인이나 중소기업에서도 크게 늘어날 것이며 이러한 수요에 맞게 서비스가 확대될 것이다.

 




 

결론


본 고에서는 인공지능 시대에 수요가 크게 늘어날 것으로 예상되는 머신러닝 클라우드에 대해서 알아보았다. 대표적인 기업 솔류션으로 아마존, 구글, 마이크로소프트, 페이퍼스페이스, vast.ai의 특징을 비교하였다. 향후 데이터 수집과, 분석, 활용의 편리성을 위해서 머신러닝 클라우드 이용이 늘어나지만 외국의 솔류션에 대응하는 국내 솔류션의 개발이 필요하고, 아직 개인이나 중소기업에게는 부담이 큰 사용 비용에 대한 대안이 필요할 것이다. 이들의 장단점으로 고려하여 향후에는 기업 맞춤형 머신러닝 클라우드 서비스가 다양하게 소개될 것으로 예상된다.

 




 

참고


[1] Google Cloud Blog, How a Japanese cucumber farmer is using deep learning and TensorFlow, https://goo.gl/T1evuv, 2016. 8
[2] AltexSoft, Comparing Machine Learning as a Service: Amazon, Microsoft Azure, Google Cloud AI, IBM Watson, https://goo.gl/ZiRj75, 2018. 7.
[3] Jeff Hale, Best Deals in Deep Learning Cloud Providers, https://goo.gl/CW2rXt, 2018. 10