Microsoft Cognitive Toolkit version 2.0 is now in full release with general availability. Cognitive Toolkit enables enterprise-ready, production-grade AI by allowing users to create, train, and evaluate their own neural networks that can then scale efficiently across multiple GPUs and multiple machines on massive data sets.
The 2.0 version of the toolkit, previously known as CNTK, started in beta on October 2016, went to release candidate April 3, and is now available for production workloads. Upgrades include a preview of Keras support natively running on Cognitive Toolkit, Java bindings and Spark support for model evaluation, and model compression to increase the speed to evaluating a trained model on CPUs, along with performance improvements making it the fastest deep learning framework.
The open-source toolkit can be found on GitHub. Hundreds of new features, performance improvements and fixes have been added since beta was introduced. The performance of Cognitive toolkit was recently independently measured, and on a single GPU it performed best amongst other similar platforms.
On multiple GPUs, the performance gets even better with scale. For example, with the very latest Volta GPU from NVIDIA, the V100, see how the performance projections get progressively better with up to 64 V100’s.
As a part of this general availability release, we are excited to highlight three new features below.
Keras Support (public preview): The Keras API was designed for users to develop AI applications and is optimized for the user experience. Keras follows best practices for reducing cognitive load: it offers consistent and simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear and actionable feedback upon user error. Keras has opened deep learning to thousands of people with no prior machine learning experience. We are delighted to announce that many thousands of Keras users are now able to benefit from the performance of Cognitive Toolkit without any changes to their existing Keras recipes. Keras support is currently in public preview as we continue to refine this capability.
Java Bindings and Spark Support: After training a model using either Python or BrainScript, Cognitive Toolkit had always provided many ways to evaluate the model in either Python, BrainScript, or C#. Now with the GA release, users can evaluate Cognitive toolkit models with a new Java API. This makes it ideal for users wishing to integrate deep learning models into their Java based applications or for evaluation at scale on platforms like Spark.
Model Compression: Evaluating a trained model on lower end CPUs found in mobile products can make real time performance difficult to achieve. This is especially true attempting to evaluate models trained for image learning on real time video coming from a camera. With the Cognitive Toolkit GA, we are including extensions that allow quantized implementations of several FP operations, which are several times faster compared to full precision counterparts. The speedup is great enough to enable evaluating Cognitive Toolkit models much faster on server and low-power embedded devices with little loss of evaluation accuracy.
Cognitive Toolkit is being used extensively by a wide variety of Microsoft products, by companies worldwide with a need to deploy deep learning at scale, and by students interested in the very latest algorithms and techniques. We’ve compiled a set of reasons why data scientists and developers who are using other frameworks now should try Cognitive Toolkit.