2015년 4월 마이크로소프트 리서치팀은 내부 프로젝트로 진행하던 딥러닝 프레임워크 'CNTK(Computational Network Toolkit)'를 오픈소스 형태로 공개했다. 초기 버전의 CNTK는 내부 스크립트인 브레인 스크립트(BrainScript)로만 이용할 수 있었다. 2016년 마이크로소프트 인지 툴킷(Cognitive Toolkit)으로 명칭을 변경하면서 파이썬(Python), 'C++', 'C#' 언어 인터페이스를 제공하기 시작했다.

최근에는 2.x 버전으로 업그레이드되면서 성능 및 사용성이 크게 향상돼, 기존의 딥러닝 라이브러리의 강자들 속에서 어떻게 자리 잡을지 새롭게 주목받고 있다. 구글과 마이크로소프트 모두 클라우드는 매출과 직결되는 중요한 사업 기술이기 때문에 이를 적극 활용할 수 있는 딥러닝 사업을 공격적으로 진행하고 있다.

주목받는 딥러닝 프레임워크 6위에 랭크된 CNTK / 마이크로소프트웨어 391호 발췌
주목받는 딥러닝 프레임워크 6위에 랭크된 CNTK / 마이크로소프트웨어 391호 발췌
CNTK는 빠르고 쉽다는 장점이 있다. 미리 만들어진 다양한 모델과 알고리즘을 사용할 수 있고, 파이썬과 주피터 노트북에 대한 지원이 풍부하다. 피드포워드(FeedForward, FFN), 합성곱신경망(Convolutional Neural Network, CNN), 순환신경망(Recurrent/Long Short Term Memory, RNN/LSTM), 배치 정규화(Batch Normalization), 시퀀스-투-시퀀스(Sequence-to-Sequence) 등의 신경망이 포함돼 있으며, 버전이 2.x로 올라가면서 강화학습(Reinforce Learning), 대립쌍 구조를 사용하는 생성모델(Generative Adversarial Network, GAN), 지도(Supervised)와 비지도(Unsupervised) 학습, 자동 하이퍼 파라미터 튜닝(Automatic Hyperparameter Tuning) 등을 사용할 수 있다.

CNTK는 CPU 전용 모드를 지원하고 있어, 경량 노트북을 이용해 딥러닝을 학습하기 좋다. 단일 GPU와 멀티 CPU뿐 아니라 멀티 머신 지원을 위한 '멀티-머신-멀티-GPU' 활용을 할 수 있다. 이를 이용한 마이크로소프트의 '1-bit 압축(1-bit Compression Technique)'이나 블록 모멘텀 기술(Block Momentum Technique)을 사용하면 드라마틱한 성능 향상을 기대할 수 있다. CNTK는 MIT 라이선스(기술개발에 있어서 환상적인 라이선스라고 생각한다)로 사용에 제약사항이 없으나, '1-bit-SGD(1-bit Stochastic Gradient Descent)'에 대해서는 목적에 따라 일반과 비상용으로 라이선스 정책이 분리돼 있다.

제이슨 김 남경기술 개발자의 CNTK 입문용 가이드와 활용기는 '마이크로소프트웨어 391호(www.imaso.co.kr/archives/1301)'에서 확인할 수 있다.