新智元编译
来源:techcrunch,Microsoft
编译:刘小芹
【新智元导读】微软今天发布了深度学习工具包CNTK的2.0版本,新版本增加了支持 Keras 的 CNTK 后端,Java API,模型评估的 Spark 支持,模型压缩等新功能,微软全球技术院士黄学东称其比同类产品快3倍。
微软今天发布微软认知工具包(Microsoft Cognitive Toolkit)的2.0版本。这是一个开源的深度学习工具包,以前的名字是 CNTK,是微软对应竞争对手的TensorFlow,Caffe 和 Torch 的工具。它的第一个版本已经在速度方面不输许多竞争产品,而新的2.0版强调了产品的可用性(例如增加对 Python 和 Keras 神经网络库的支持)和未来的可扩展性,同时仍保持,甚至提高了速度。
GitHub地址:https://github.com/microsoft/cntk
支持 Keras 的 CNTK 后端
使用 Halide 非常快的二进制卷积
Java API
新的 NuGet Packages
修复多个bug
根据微软官方博客的介绍,Cognitive Toolkit 2.0允许用户创建,训练和评估自己的神经网络,这些神经网络可以在多个GPU和使用大规模数据集的多个机器上高效扩展,从而实现企业级可用,生产级的AI。
Cognitive Toolkit 2.0的升级包括增加 Keras 支持,Java 绑定,模型评估的 Spark 支持,以及模型压缩,以提高 CPU 上评估训练好的模型的速度,以及一系列性能改进,使其成为速度最快的深度学习框架。
开源工具包可以在 GitHub 获取。自推出beta版本以来,该工具包已经增加了数百项新功能,一系列性能提升和修改。微软认知工具包的性能是最近独立测试的,在单GPU上相比其他类似平台的表现最佳。
来源:http://dlbench.comp.hkbu.edu.hk/
在多GPU上,性能随规模越大变得越好。例如,使用 NVIDIA 的最新Volta GPU,V100那个,可以看到使用从8个到64个V100,性能越来越好。
微软认知工具包最初在2016年10月推出测试版本,自那以来团队都在用它进行测试。现在,微软认为它已经可以用于生产。
微软全球技术院士(Technical Fellow)黄学东博士称,该认知工具包的1.0版本更多是开源了微软内部使用的工具包,将它提供给更多人来用。因为它本质上是一个内部工具,因此它不支持 Python,即使 Python 是现在机器学习开发者中最流行的语言。
因为微软最初是为语音识别系统打造这个工具包的,因此它对使用时间序列数据来构建递归神经网络非常好用。在这次升级中,该团队不仅改进了认知工具包对其他类型的神经网络的性能,而且为未来更好地扩展系统奠定了基础。
例如,增加了 Keras 支持。黄学东强调,认知工具包的第一个版本在许多标准测试中都很轻易地超过了许多同类产品。Keras 是很受欢迎的基于 Python 的深度学习库,TensorFlow 和 Theano 都支持 Keras。现在,微软认知工具包也支持 Keras,而且由于具有新的可扩展的架构,开发者不仅可以将现有的基于 Keras 的应用程序加入认知工具包,而且能得到很大的加速。黄学东说,在正确情况下,微软认知工具包比竞争对手快3倍。
此外,2.0版本还包括了用于模型评估的 Java 语言绑定和许多新的工具,可以让训练好的模型在智能手机之类相对低功率的设备上运行。
认知工具包已经在微软内部广泛使用,不过黄学东也坦率地承认,公司内部有些团队也使用其他工具包。“没有哪个工具包使所有方面都很好用的,”黄学东说,“我们的目的是帮助AI社区,我们不是说微软认知工具包能解决所有问题。”
像 Google,Facebook以及其他公司一样,微软当然也希望机器学习生态系统围绕它的工具包构建更多解决方案。为了做到这一点,它需要增加在开发者中的心理占有率。不难理解,微软强调它的认知工具包是经过实战检验的系统,已经在微软内部的大多数AI系统上系统,包括微软小娜(Cortana),而且它在训练模型方面比大多数竞争对手的产品更快。
展望未来,黄学东说,现在很难讲在将来的3.0版本认知工具包会有什么功能。“AI,以及深度学习,是一个发展变化非常快的领域,我们所能做得最好的事情就是不断地适应,迭代,和改进。”他说,“我们绝对清楚支持这个巨大而让人惊叹的AI社区所面临的挑战。”当然,他肯定希望保持的是,认知工具包在性能方面的领先优势。