개요
마이크로소프트 코그니티브 툴킷(Microsoft Cognitive Toolkit, 약칭 CNTK)은 마이크로소프트가 개발한 오픈소스 딥러닝 프레임워크이다. 2016년 처음 공개되었으며, 주로 신경망 모델의 설계·학습·배포를 지원한다. CNTK는 고성능 GPU 연산을 효율적으로 활용하도록 설계되어, 대규모 데이터와 복잡한 모델을 빠르게 학습할 수 있다.
주요 특징
| 구분 | 내용 |
|---|---|
| 지원 언어 | Python, C++, C# 등. Python 인터페이스가 가장 널리 사용된다. |
| 연산 엔진 | 그래프 기반 연산 정의. Symbolic computation을 사용해 자동 미분 및 최적화를 수행한다. |
| 성능 | NVIDIA CUDA와 OpenCL을 활용한 GPU 가속을 제공한다. 다중 GPU 및 다중 머신 분산 학습을 지원한다. |
| 모델 표현 | Feedforward, Convolutional, Recurrent (LSTM, GRU) 등 다양한 신경망 구조를 정의할 수 있다. |
| 배포 | 학습된 모델을 ONNX(Open Neural Network Exchange) 형식으로 내보내어 다른 프레임워크에서도 사용할 수 있다. |
| 라이선스 | MIT License 하에 배포되어 자유롭게 사용·수정·재배포가 가능하다. |
| 플랫폼 | Windows, Linux, macOS (부분 지원)에서 실행 가능하다. |
역사
- 2015년: 마이크로소프트 내부 프로젝트로 시작.
- 2016년 1월: 오픈소스로 공개되어 GitHub에 소스 코드가 올라옴.
- 2017년: CNTK 2.0 버전 출시, Python API 개선 및 모델 직렬화 기능 강화.
- 2020년 이후: 마이크로소프트는 PyTorch와 TensorFlow가 시장을 주도하는 흐름에 맞추어 CNTK의 주요 업데이트를 중단하고, 기존 사용자들에게 ONNX 기반 전환을 권장하였다.
사용 분야
- 이미지 인식·분류, 객체 검출
- 음성 인식·합성
- 자연어 처리(예: 순환 신경망 기반 언어 모델)
- 강화 학습 등 다양한 AI 연구·산업 프로젝트에 활용되었다.
관련 프로젝트 및 호환성
- ONNX: CNTK는 ONNX 표준을 지원하여 모델을 다른 프레임워크(예: PyTorch, TensorFlow)와 교환할 수 있다.
- Microsoft Azure: Azure Machine Learning 서비스와 연동해 클라우드 환경에서 CNTK 기반 모델을 학습·배포할 수 있다.
현황
2024년 현재, CNTK는 활발한 신규 개발이 진행되지 않고 있으며, 마이크로소프트는 주로 Azure AI 서비스와 ONNX 생태계에 집중하고 있다. 그러나 오픈소스 라이선스로 유지되고 있기 때문에 기존 프로젝트에서 여전히 사용될 수 있다.