페이지

2020년 8월 21일 금요일

확산되는 클라우드 환경과 AI 개발 플랫폼의 부상

 http://itbiznews.com/news/newsview.php?ncode=1065573055544649

아래 내용은 필자가 ITBIZ 뉴스에 2020년 8월20일 개재된 내용을 옮긴 것임.

확산되는 클라우드 환경과 AI 개발 플랫폼의 부상

 

쉽지 않은 AI 개발 환경 설정


AI 프로그램을 처음 시작할 때 매뉴얼을 따라 설치했는데도 실패해서 처음부터 다시 설치해 본 경험들이 있을 것이다.
게다가 학습이나 연구에서 github 이라는 오픈소스 저장소에 있는 프로그램을 내려 받아 테스트하려고 할 때에도 이러한 운영체제 환경과 라이브러리 간에 버전을 맞추고 환경을 완성하는데 또 같은 시행착오를 반복하게 된다. 굳이 AI 부분이 아니더라도 오픈소스의 여러 프로그램들을 사용하는 현실에서는 이러한 정합성의 문제가 언제나 대두된다.
 학습 데이터가 커지고 프로그램의 복잡도가 증가하면 이제는 컴퓨터에게 요청한 작업이 왜 이렇게 하염없이 돌고 끝날 생각을 안하는지 궁금해진다.


AI 개발 전체 업무 흐름 중에 모델 개발이 차지하는 비중이 전체의 5%에 불과하다는 점을 감안하면, 개발자가 핵심 업무에 집중하고 나머지의 도전적 작업으로부터 자유로워질 필요가 있다.


확산되는 클라우드 환경과 신속하고 용이한 AI 모델 제공


AI 특성상 대용량의 데이터에 복잡한 연산 처리를 요구하는 경우 서버를 가상화 하여 복수의 GPU (그래픽 연산 프로세서)로 구성하여 사용한다. 30명 정원의 학생들이 AI 수업의 실습을 하는 경우에 어느 한 사용자가 GPU를 독점적으로 점유하면 수업에 지장이 생긴다.


그동안 기존 환경을 애플리케이션을 수정없이 클라우드 서비스 인프라로 이전하는데 유용했던 VMware 같은 가상 머신(VM)은 그림 1에서 보는 바와 같이, 기존 서버의 OS 위에 응용프로그램 별로 GuestOS 를 올리는 구조로, 오른쪽에 있는 Docker 라는 구조에 비해 자원 효율화에서 뒤진다. Google 이 클라우드상의 신규서비스를 대규모로 확장하기 위해 개발한 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼이 도커(Docker)다.  


컨테이너라 하면 배에 싫는 네모난 화물 수송용 박스를 생각할 수 있는데, 말 그대로 내가 원하는 프로그램과 실행 환경의 묶음을 컨테이너라는 추상화된 박스 안에 함께 담아서 사용할 수 있게 제공하는 오픈소스 플랫폼이다. 이 컨테이너를 실행시킴으로써 내가 개발하는 AI 모델 개발을 기존 환경에 구애 받지 않고 독립적으로 실행 할 수 있다.



그림 1. VM Docker

 

예를 들어 Ubuntu 리눅스 환경에 Tansorflow 와 Keras 를 사용해 작성된 프로그램을 도커에 담으면, 이 도커는 이제 조립PC, AWS, Azure, Google cloud등 어디에서든 실행할 수 있다. 즉 한 곳에서 개발하고 여러 클라우드 환경에서 실행하는 멀티 클라우드 환경에서 운영되는 것이다. 


인공지능을 활용하여 산업별 영향을 미치는 모델을 만드는 일들이 앞으로 마주하게 될 도전 중에 하나는, AI 모델을 빠르고 용이하게 제공하는 것이며 실험 단계에서 프로덕션 단계로 나아갈 때 직면하는 문제다. 프로덕션에서 서비스 제공 시, 환경이 재현가능하고 격리를 강제 적용하며 안전을 보장하는 이러한 컨테이너 기반이 산업계 표준으로 정착되고있다.


최근의 어플리케이션 개발 환경은 첫째, 구조를 한가지 서비스에 특화된 단위로 개발(마이크로 서비스)하고, 둘째, (컨테이너)와 같은 경량화 된 가상화 환경에서 구동하는 단위로 구성하며, 셋째, 이러한 다수의 마이크로서비스와 통신하는 컨테이너들을 관리할 수 있는 환경(쿠버네티스) 으로 진화하고 있다. AI 개발도 이러한 마이크로 서비스, 컨테이너, 쿠버네티스(컨테이너들을 자동으로 통합 관리하는 소프트웨어) 와 같은 오픈소스 프레임워크 기반 아키텍처들의 장점들과 더불어 발전할 것으로 예상되고 있다.


부상하는 AI 개발 플랫폼


최근에는 다 나아가서 이러한 AI를 개발하는 일련의 작업 흐름 즉, 컨테이너 등 환경 자동화 관리, GPU 및 볼륨관리, GPU 성능모니터링, 멀티GPU 클러스터링, 잡스케쥴링, 멀티 클라우드등의 일련의 작업을 자동화 하는 AI 개발 플랫폼이 선을 보이고 있다.



그림 2. 컨테이너 관리

 

위의 그림 2와 같이 N3N 클라우드사의 치타 AI 개발 플랫폼은  머신러닝 라이브러리 설치, 사용자 설정, GPU 할당을 클릭만으로 1분안에 마칠 수 있는 개발환경 자동화 기능을 제공한다.


또한 직관적인 프로젝트 대시보드를 통해 할당 받은 GPU 와 그의 사용현황을 바로 확인 할 수 있으며 복수의 서버 환경인 경우, 할당 받은 GPU 의 용량을 넘어 사용할 경우 자동으로 복수의 GPU 구성을 설정하여 실행한다. 이 경우, 전체 사용자의 환경에 영향을 줄 수 있으므로, 스케쥴관리의 작업 추가를 통해 예정된 일정에 할당 받은 복수의 GPU 를 사용하도록 하고있다.


이러한 AI 개발 플랫폼들은 이러한 클라우드 기반 오픈소스 프레임워크 표준을 준수하면서 당분간 급속히 발전할 것으로 전망되는데, 일련의 AI 개발 작업 흐름 상의 훈련, 모델 제공, 모델 관리 등의 영역을 이러한 AI 플랫폼 내부에 포함해가면서 사용자들을 인공지능 모델 개발 이외의 업무에서 보다 자유로워지게 지원할 수 있을지 향후 귀추가 주목된다.