Microsoft today launched version 2.0 of what is now called the Microsoft Cognitive Toolkit. This open-source toolkit, which was previously known as CNTK, is Microsoft’s competitor to similar tools like TensorFlow, Caffe and Torch, and, while the first version was able to challenge many of its competitors in terms of speed, this second version puts an emphasis on usability (by adding support for Python and the popular Keras neural networking library, for example) and future extensibility, while still maintaining — and improving — its speed.
The toolkit originally launched into beta in October 2016 and the team has tested it ever since. Now, the company deems it to be ready for production use.
Microsoft technical fellow Xuedong Huang told me that the 1.0 release was very much about open sourcing Microsoft’s internal toolkit and making it available to others. Because it was essentially an internal tool, though, it didn’t support Python for example, even though it’s by far the most popular language among machine learning developers.
Because Microsoft originally built this toolkit for speech recognition systems, it was very good at working with time series data for building recurrent neural nets. With this update, the team has not only improved the Cognitive Toolkit’s performance for other kinds of neural nets, but also laid the groundwork for making it easier to extend the system in the long run.
That’s where Keras comes in, for example. Huang stressed that the first version of the Cognitive Toolkit outperformed its competitors pretty easily on a number of standard tests. Keras is a popular Phython-based deep-learning library that’s already supported by TensorFlow and Theano, for example. Now that the Cognitive Toolkit also supports it, thanks to its new extensible architecture, developers can not only easily take their existing Keras-based applications to the Cognitive Toolkit but also see a major speed-up. Huang argues that under the right circumstances, the Cognitive Toolkit can outperform its competitors by up to 3x.
In addition, version 2.0 also includes Java language bindings for model evaluation and a number of new tools that allow trained models to run on relatively low-powered devices, including smartphones.
The Cognitive Toolkit is used extensively within Microsoft already. Some groups inside the company also use other toolkits, though, as Huang freely admitted. “There is no one toolkit that is great at everything,” Huang said. “We want to help the AI community. We are not saying that the Microsoft Cognitive Toolkit is the solution for everything.”
Like Google, Facebook and others, Microsoft would of course love for the machine learning ecosystem to build more of its solutions around its toolkit. To do that, it needs to increase its mind share among developers, though. Unsurprisingly, Microsoft is stressing the fact that the Cognitive Toolkit is a battle-tested system that it uses to power most of its internal AI systems, including Cortana, and that it can train models faster than most of its competitors.
Looking ahead, Huang noted that it’s hard to say what features will arrive in version 3.0. “AI and deep learning is a field that moves so fast, the best thing we can do is to continuously adapt and iterate and improve,” he told me. “We are absolutely aware of the challenges to support this massive and amazing AI community.” One feature he definitely wants to keep, though, is the Cognitive Toolkit’s performance leadership.