Microsoft Cognitive Toolkit

Microsoft Cognitive Toolkit

AI TOOL PROFILE工具资料

微软开源、面向商业级分布式深度学习的神经网络工具包

官网地址 https://learn.microsoft.com/en-us/cognitive-toolkit

访问官网
价格官网未标价
平台Web / API
归类大模型与开发平台
收录2017-01-22
复核2017-01-22
编辑评分 4.2 / 5

Microsoft Cognitive Toolkit编辑总结

EDITOR REVIEW编辑评测

Microsoft Cognitive Toolkit(CNTK)是微软推出的开源深度学习工具包,面向商业级分布式训练,把神经网络描述为有向图上的计算步骤,可组合前馈 DNN、CNN 与 RNN/LSTM,并实现带自动微分的 SGD 与多 GPU、多服务器并行。最新发布版本为 2.7,可作为库嵌入 Python、C#、C++ 程序,或通过自有模型描述语言 BrainScript 独立使用,Java 程序也可调用其模型评估功能。它支持 64 位 Linux 或 64 位 Windows,并是最早支持 ONNX 格式的工具包之一,当前支持 ONNX v1.0。页面已注明 CNTK 不再积极开发,这限制了它对新建项目的推荐度。

Microsoft Cognitive Toolkit是什么?

Microsoft Cognitive Toolkit(简称 CNTK)是微软推出的开源工具包,用于商业级分布式深度学习。它把神经网络描述为一系列计算步骤,通过有向图来表达,面向需要训练与组合复杂模型的开发者、研究人员与工程团队。

据官方页面,CNTK 允许用户方便地实现并组合常见模型类型,例如前馈 DNN、卷积神经网络 CNN 和循环神经网络 RNN/LSTM;它实现了带自动微分的随机梯度下降(SGD,误差反向传播)学习,并可跨多个 GPU 和服务器并行。页面 NOTE 明确说明 CNTK 不再积极开发,最终大版本的细节见发布说明;最新发布版本为 2.7。

在使用形态上,CNTK 可以作为库嵌入 Python、C#、C++ 程序,也可以通过其自有模型描述语言 BrainScript 作为独立机器学习工具使用,Java 程序还能调用其模型评估功能。它支持 64 位 Linux 或 64 位 Windows,安装方式可选预编译二进制包,或用 GitHub 提供的源码自行编译。

Microsoft Cognitive Toolkit核心功能

CAPABILITIES工具标签

图式模型描述

把神经网络描述为一系列计算步骤,通过有向图表达,便于组合与调试自定义结构,是 CNTK 组织模型的基本方式。

官方说明 ↗

多 GPU 与多机并行

实现随机梯度下降(SGD,误差反向传播)学习并带自动微分,可跨多个 GPU 和服务器并行,面向商业级分布式训练场景。

官方说明 ↗

常见模型类型

可方便地实现并组合前馈 DNN、卷积神经网络 CNN、循环神经网络 RNN/LSTM 等流行模型类型,覆盖主流网络结构。

官方说明 ↗

多语言嵌入

可作为库嵌入 Python、C#、C++ 程序中使用;Java 程序可以调用 CNTK 的模型评估功能,便于接入既有工程栈。

官方说明 ↗

BrainScript 语言

通过其自有模型描述语言 BrainScript 可把 CNTK 当作独立机器学习工具使用,不必依赖宿主编程语言即可定义与训练模型。

官方说明 ↗

1-bit SGD 可用

1-bit 随机梯度下降(1-bit SGD)不再需要单独许可证,改按 GitHub 提供的许可证提供,降低了使用该训练技术的门槛。

官方说明 ↗

ONNX 格式支持

CNTK 是最早支持开放神经网络交换 ONNX 格式的深度学习工具包之一,当前版本支持 ONNX v1.0,便于跨框架迁移模型。

官方说明 ↗

两种安装方式

支持 64 位 Linux 或 64 位 Windows 操作系统;安装可选预编译二进制包,或使用 GitHub 提供的源码自行编译。

官方说明 ↗

Microsoft Cognitive Toolkit值不值得用?

VERDICT工具标签

把 CNTK 当作研究深度学习分布式训练原理、维护已有 CNTK 项目的工具是合适的:它把神经网络表达为有向图,支持跨多个 GPU 和服务器并行,并支持 ONNX v1.0,2.7 版本仍在官方页面可查。但页面 NOTE 已写明 CNTK 不再积极开发,若目标是新建生产项目或获得持续的功能迭代,需要谨慎评估。它支持 64 位 Linux 或 64 位 Windows,并提供预编译二进制包与源码编译两条路径,适合能自行处理环境与编译的团队。

建议选它的情况

  • 需要研究或复现分布式深度学习训练流程的开发者
  • 已有基于 CNTK 的代码与模型、需要继续维护的团队
  • 希望通过 BrainScript 以独立工具方式定义与训练模型的用户

不建议选它的情况

  • 需要持续获得新功能与新模型支持的长期项目
  • 不愿处理 64 位 Linux 或 64 位 Windows 环境与源码编译的初学者

Microsoft Cognitive Toolkit使用建议

HOW TO USE工具标签
入门先把路子走对
  1. 先确认版本官方最新发布版本为 2.7,同时注明 CNTK 不再积极开发,开始前先据此判断是否符合你的项目周期。
  2. 选安装方式支持 64 位 Linux 或 64 位 Windows,可先用预编译二进制包快速装上,再决定是否改用 GitHub 源码编译。
  3. 确定调用方式可以先想清楚是作为库嵌进 Python、C#、C++ 程序,还是用 BrainScript 独立运行,两条路径的准备工作不同。
  4. 从图结构入手CNTK 把神经网络描述为有向图上的计算步骤,先读懂这一表达方式,再去看 DNN、CNN、RNN/LSTM 的组合示例。
进阶省时间也省钱
  1. 用 ONNX 做迁移最新版本支持 ONNX v1.0,若要在框架之间搬运模型,可优先走 ONNX 这条共享表示路径,减少重写成本。
  2. 行前先验证CNTK 支持跨多个 GPU 和服务器并行,扩展规模前先在单机确认训练收敛与数据管道无误,再放大到多机。
  3. 善用 1-bit SGD1-bit SGD 不再需要单独许可证,已按 GitHub 提供的许可证提供,分布式训练时可将其纳入通信压缩的备选方案。
  4. 复用模型评估Java 程序可以调用 CNTK 的模型评估功能,已有 Java 服务时可直接复用,不必为推理单独重建一套运行时。

Microsoft Cognitive Toolkit适合谁用?

WHO IS IT FOR工具标签

分布式训练研究者

推荐

CNTK 面向商业级分布式深度学习,支持跨多个 GPU 和服务器并行,适合研究大规模训练流程。

Python/C#/C++ 开发者

推荐

可作为库嵌入 Python、C#、C++ 程序,直接在既有工程中使用,接入成本相对可控。

Java 推理集成方

有条件

Java 程序可调用 CNTK 的模型评估功能,适合只需推理、不重训的既有 Java 服务。

新建生产项目团队

有条件

页面 NOTE 已说明 CNTK 不再积极开发,新建长期项目需自行承担缺少后续迭代的风险。

零基础入门者

不推荐

需自行处理 64 位 Linux 或 64 位 Windows 环境、预编译包或 GitHub 源码编译,上手门槛不低。

Microsoft Cognitive Toolkit优点和缺点

PROS & CONS工具标签

优点

  • 开源工具包,面向商业级分布式深度学习
  • 支持跨多个 GPU 和服务器并行训练
  • 支持 ONNX v1.0,便于跨框架模型迁移
  • 可嵌入 Python、C#、C++ 程序使用
  • 1-bit SGD 不再需要单独的许可证
  • 最新发布版本为 2.7,官方页面可查

缺点

  • 官方明确 CNTK 不再积极开发
  • 仅支持 64 位 Linux 或 64 位 Windows
  • 安装需选预编译包或自行源码编译
  • 页面最后更新停留在 2017-01-22
  • 无独立价格与套餐信息可参考

Microsoft Cognitive Toolkit常见问题

FAQ工具标签
Microsoft Cognitive Toolkit 要花钱吗?

官网未提及任何价格、套餐或收费说明,官方页面只把它描述为开源工具包,并提到 1-bit SGD 不再需要单独许可证、改按 GitHub 提供的许可证提供。实际授权条件请以官方页面与 GitHub 仓库为准。

它当前的主力版本是什么?

官方最新发布版本为 2.7,且最新版本支持 ONNX v1.0。页面同时用 NOTE 说明 CNTK 不再积极开发,最终大版本的细节见发布说明。也就是说 2.7 是当前可查的最新发布版本。

它和 ONNX 生态怎么配合?

CNTK 是最早支持开放神经网络交换 ONNX 格式的深度学习工具包之一,ONNX 由微软与他人共同开发,用于框架互操作与共享优化。涉及 ONNX 可让开发者在 CNTK、Caffe2、MXNet、PyTorch 等框架之间移动模型,最新版本支持 ONNX v1.0。

支持哪些编程语言和系统?

CNTK 可作为库嵌入 Python、C#、C++ 程序,Java 程序可使用其模型评估功能,也可通过自有模型描述语言 BrainScript 作为独立工具使用。操作系统方面支持 64 位 Linux 或 64 位 Windows,安装可选预编译二进制包或从 GitHub 源码编译。

国内能不能用?

网络访问或地域限制的任何说明。可以确认的是它支持 64 位 Linux 或 64 位 Windows,并可通过预编译二进制包或 GitHub 源码两种方式安装,具体获取渠道请以官方页面为准。

它还适合新项目吗?

页面以 NOTE 形式明确写出 CNTK 不再积极开发,并指向最终大版本的发布说明。这意味着新项目不会获得持续的功能更新。已有 CNTK 代码与模型的团队继续维护是合理的,但从零起步的生产项目需要自行权衡这一风险。

Microsoft Cognitive Toolkit竞品对比

COMPARISON工具标签
工具编辑评分价格核心功能平台
Microsoft Cognitive Toolkit本工具 4.2 未标价 图式模型描述;多 GPU 与多机并行;常见模型类型;多语言嵌入 Web / API
DeepSpeed — 未标价 DeepSpeed 是一个深度学习优化软件套件,由微软团队开发 —
AIGC Chain — 未标价 AIGC Chain 是 AIGC 模型的分布式基础设施,为人们的数字生活赋能,任何人都可以轻 —
PyTorch — 未标价 PyTorch 是一个开源深度学习框架,提供了丰富的工具和库,支持计算机视觉、自然语言处理 Web / Linux / Mac
飞桨 PaddlePaddle 开发者社区 — 未标价 飞桨是百度基于多年深度学习技术研究和业务应用打造的产业级深度学习平台 —
Unity Sentis — 仅限 Unity 邀请的 private beta Unity 深度学习推理库 Unity 支持的所有平台 / Editor