▲ [source=alibaba damo academi]
인공지능(AI) 프로그램을 처음 시작할 때 매뉴얼대로 설치했음에도 실패해 처음부터 다시 해 본 경험들이 꽤 있을 것이다.

학습이나 연구에서 ‘깃허브(GitHub)’라는 오픈소스 저장소에 있는 프로그램을 다운로드 받아 테스트할 때에도 운영체제(OS) 환경과 라이브러리 간의 버전을 맞추는데 또 같은 시행착오를 반복하게 된다.

굳이 AI 부분이 아니더라도 오픈소스의 여러 프로그램들을 사용하는 현실에서는 이러한 정합성의 문제가 대두된다. 학습 데이터가 커지고 프로그램의 복잡도가 증가하면서 컴퓨터에게 요청한 작업이 어째서 이렇게 하염없이 돌고만 있고 끝날 생각을 안 하는지 궁금해진다.

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

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

그동안 기존 환경을 애플리케이션을 수정없이 클라우드 서비스 인프라로 이전하는데 유용했던 VM웨어(VMware)와 같은 가상머신(VM)은 그림 1에서 보는 바와 같이, 기존 서버의 OS 위에 응용 프로그램 별로의 OS(GuestOS)를 올리는 구조다. 우측에 있는 ‘도커(Docker)’ 구조에 비해 자원 효율화 측면에서 뒤진다.

▲ 그림 1. VM 대 Docker

구글이 클라우드 상의 신규 서비스를 대규모로 확장하기 위해 개발한 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼이 바로 ‘도커(Docker)’다.

컨테이너라 하면 배에 싣는 네모난 화물 수송용 박스를 생각할 수 있다. 의미 그대로 원하는 프로그램과 실행 환경의 묶음을 컨테이너라는 추상화된 박스 안에 함께 담아서 사용할 수 있게 제공하는 오픈소스 플랫폼이다.

이 컨테이너를 실행시킴으로써 내가 개발하는 AI 모델 개발을 기존 환경에 구애받지 않고 독립적으로 실행할 수 있게 되는 것이다.

예를 들어 우분투(Ubuntu) 리눅스 환경에 텐서플로우(TensorFlow)와 케라스(Keras)를 사용해 작성된 프로그램을 도커에 담아주면, 이 도커는 조립PC, 아마존웹서비스(AWS), 마이크로소프트 애저(MS Azure), 구글클라우드(GCP) 등 어디에서든 실행할 수 있다.

즉 한 곳에서 개발하고 여러 클라우드 환경에서 실행하는 멀티 클라우드 환경에서 운영되는 것이다.

AI를 활용해 산업별 영향을 미치는 모델을 만드는 작업은 앞으로 많은 도전을 마주하게 될 것이다. 처음으로 직면하게 되는 도전은 AI 모델을 빠르고 용이하게 제공하는 것이다.

실험 단계에서 프로덕션 단계로 나아갈 때 직면하는 문제다. 프로덕션에서 서비스 제공할 때, 환경이 재현 가능하고 격리를 강제 적용하며 안전을 보장하는 컨테이너 기반이 산업계 표준으로 정착되고 있다.

최근 애플리케이션 개발 환경은 구조를 한가지 서비스에 특화된 단위로 개발(마이크로서비스)하고, 컨테이너 같은 경량화 된 가상화 환경에서 구동하는 단위로 구성하며, 다수의 마이크로서비스와 통신하는 컨테이너들을 관리할 수 있는 환경(쿠버네티스)으로 진화하고 있다.

AI 개발도 이러한 마이크로서비스, 컨테이너, 쿠버네티스(컨테이너들을 자동으로 통합-관리하는 소프트웨어)와 같은 오픈소스 프레임워크 기반 아키텍처들의 장점들과 더불어 발전할 것으로 예상되고 있다.

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

▲ 그림 2. 컨테이너 관리

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

직관적인 프로젝트 대시보드로 할당 받은 GPU와 사용 현황을 바로 확인할 수 있다. 복수의 서버 환경인 경우 할당 받은 GPU 용량 이상 사용할 경우에는 자동으로 복수의 GPU 구성을 설정해 실행한다.

이 때 전체 사용자 환경에 영향을 줄 수 있으므로 스케쥴 관리 작업을 추가해 예정된 일정에 할당 받은 복수의 GPU를 사용하도록 하고있다.

개발 플랫폼들은 클라우드 기반 오픈소스 프레임워크 표준을 준수하면서 당분간 급속히 발전할 것으로 전망된다. 일련의 AI 개발 작업 흐름 상의 훈련, 모델 제공, 모델 관리 등의 영역을 이러한 AI 플랫폼 내부에 적용되고 있다. 기술의 진보가 사용자들을 AI 모델 개발 이외의 업무에서 자유롭게 할 수 있지 않을까 기대된다.

글 : 주철휘 / 인공지능연구소 소장(CAO) / 엔쓰리엔클라우드

관련기사

저작권자 © IT비즈뉴스(ITBizNews) 무단전재 및 재배포 금지