딥러닝 방법론을 통한 학습 알고리즘을 설계하다 겪는 중요한 문제 중 하나는 AI를 학습시키며 올바른 결과를 얻기 위해 반복해서 학습을 하게 된다는 것입니다.

알고리즘이 데이터를 학습한 결과에 따라 이 실험이 수십 번에서 수천 번 이상도 반복될 수 있다는 것이죠. 아직 이 반복을 줄이거나 획기적으로 간소화시키는 방법론은 도출되지 않고 있는 상황인 만큼, 결국 이러한 실험을 빠르게 진행할 수 있는 인프라만 갖춰진다면 정해진 시간 내에 더 좋은 결과를 낼 확률이 높습니다.

결국 연산 시간 자체가 딥러닝 기술 경쟁력의 핵심인 거죠. 이것이 카카오브레인이 ‘브레인 클라우드’(Brain Cloud)를 구축하게 된 가장 큰 이유입니다. 카카오브레인은 자유로운 연구와 편리한 딥러닝 학습 환경을 조성하기 위해 클라우드 플랫폼 ‘브레인 클라우드’를 구축했습니다.

브레인 클라우드의 특장점은 크게 세 가지입니다. 첫째, 브레인 클라우드는 원격 컴퓨터를 안전하게 제어하는 프로토콜인 SSH(Secure SHell, 시큐어 셸)를 통해 개발자가 필요로 하는 자원을 제공하는데요. SSH를 통해 코딩과 디버깅, 컴파일, 배포 등을 처리하는 원격 IDE(Integrated Development Environment, 통합개발환경)를 지원해 연구자 자신이 익숙한 개발 환경에서 연구를 진행할 수 있게 해줍니다.


둘째로는 다른 클라우드 플랫폼보다 딥러닝에 주로 활용되는 다양한 연구 환경을 제공하도록 구성했습니다. 보통 연구자마다 자신이 반복적으로 사용하는 연구 환경이 있는데요, 그것이 어떤 프리셋처럼 제공된다면 세팅 시간도 줄고 내·외부 협업자와 환경을 맞추는 시간과 과정도 줄일 수 있습니다.

마지막으로 다양한 실험을 위해 여러 개의 프로그램을 병렬적으로 동시에 실행하거나 하나의 프로그램의 실험 요소를 분할해 처리하는 등 기능도 제공해 다양한 실험 결과를 더욱 빠르게 확인할 수 있도록 해줍니다.
이 밖에도 브레인 클라우드는 대용량의 고속 네트워크 파일 스토리지를 제공해 실험 데이터를 관리하거나 사용하기에도 편하며 실험 결과나 과정을 메신저를 통해 전달하고 학습 데이터나 결과 모델을 관리해 주는 등 연구를 돕는 다양한 기능을 제공하고 있습니다. 브레인 클라우드는 인스턴스 서버와 인스턴스 유형, 스케줄드 태스크의 세 부분으로 나뉘어 있습니다.

인스턴스 서버(Instance Server)

인스턴스 서버는 2개의 CPU(central processing unit, 중앙처리장치)와 128GB의 메모리처럼 사용자가 원하는 프로세싱 자원을 할당해 줍니다. 하드웨어에 종속되지 않는 만큼 하드웨어적 장애가 발생하더라도 개발 환경이 안정적으로 작동하며, 파이선으로 소프트웨어를 개발하는 도구인 파이참(Pycharm)이나 비주얼 스튜디오 코드(visual studio code)와 같은 IDE의 원격 개발 환경을 비롯해 다양한 개발 도구를 비롯한 환경을 지원합니다.

인스턴스 유형(Instance Type)

브레인 클라우드는 C++ 기반 딥러닝 프레임워크 카페(Caffe)와 파이선 기반 딥러닝 라이브러리인 테아노(Theano)와 파이토치(Pytorch), 구글이 만든 파이선 기반 딥러닝 라이브러리 텐서플로(Tensorflow) 등 딥러닝 연구에 필요한 다양한 개발 환경을 지원합니다. 연구자들은 자신이 원하는 환경을 골라 즉시 세팅할 수 있으며, 본인이 원하는 패키지를 설치하거나 연구에 필요한 데이터 세트도 손쉽게 구축할 수 있어요. 이렇게 구축된 개발 환경은 자신의 환경으로 저장해 반복적으로 사용하거나 다른 연구자와 공유를 할 수도 있습니다.

스케줄드 태스크(Scheduled Task)

스케줄드 태스크는 브레인 클라우드의 유휴자원을 효율적으로 활용해 다양한 실험을 동시에 실행하고 그 결과를 빠르게 확인할 수 있게 해줍니다. 여러 개의 프로그램을 병렬로 실행하거나 하나의 프로그램을 구성하는 여러 기능을 분할해 동시에 처리하는 기능이 스케줄드 태스크의 대표적인 예입니다.


앞으로도 브레인 클라우드는 실험 속도를 월등히 높여 단시간에 실험을 끝내도록 도와주는 분산학습 고도화와 개발자가 직접 설정해줘야 하는 하이퍼 파라미터(hyper parameter)를 최적값으로 자동 검출해주는 기능 등 AI 연구를 더욱 손쉽게 수행할 수 있는 다양한 기능들을 개발해 개발자들에게 제공할 것입니다.