微软联手Facebook发布AI生态系统,挑战Google TensorFlow

发布时间:2017-09-08  |  标签:              |  来源:Pingwest

最新消息,北京时间9月8日凌晨微软联手Facebook发布AI生态系统,推出 Open Neural Network Exchange(ONNX,开放神经网络交换)格式,这是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

ONNX是迈向开放生态系统的第一步,AI开发人员可以轻松地在最先进的工具之间转换,并选择最适合他们的组合。

但是,现在系统支持的框架只有Caffe2,PyTorch 和Cognitive Toolkit (CNTK),谷歌的TensorFlow并没有被包含在内。


在TensorFlow的市场份额迅猛增长的当下,两家企业的联手,似乎有特别的意味。

给非神经网络专业人士尽量简单滴解释一下具体怎么回事:

人工智能的实现技术主要是深度学习神经网络→而神经网络训练和使用(推理)通常采用一种主流的深度学习框架或库→主流的框架或库和他们的主导者、主要支持者有以下这些: 

TensorFlow (Google)

Caffe/Caffe2 (Facebook)

CNTK(微软)

MXNet(亚马逊为主)

PyTorch 

不同的框架有不同的优势。比如 PyTorch 出现很早,学术界拥趸很多,用它训练神经网络取得的性能更好,用专业术语来说叫做 state-of-the-art(目前水平最好的)。

PyTorch 是 Facebook 主导的,FAIR(Facebook 人工智能研究院)都用它。

但 Facebook 还有一个学术大神、知乎上活跃度很高的贾扬清带队开发的 Caffe2 框架,这个框架的极限性能并不一定最出众,但优势是非常适合在终端设备(比如手机甚至嵌入式设备)上运行。Facebook 的产品很多都将依赖 Caffe2。
这些框架之间的互通性过去并不好,大部分基本没有。

为什么需要框架之间的互通性?

情况一:有时候另一个框架或库里的某一个模型性能更好,但它和你的整体项目不兼容;

情况二:因为框架 A 表现很好,你用它训练了一个神经网络,结果你公司的生产环境用的是框架 B,这意味着你的研究成果没法投产。

你想,在 Facebook 一家公司内部就有两种主流框架,工作起来能不累吗?
如果你还不太能理解这种尴尬:想象你写一个程序,大部分的代码都用 A 语言来写,但某一个很重要的组成部分已经有现成的开源,用的是 B 语言,但这两种语言之间没有一个很好的互通机制,没法共同工作,所以你只能继续用 A 自己写,结果就是不仅累而且效率低。
而 Facebook 和微软今天合作就是为了解决这个问题。

根据双方透露的情况,在 9 月内,CNTK、Caffe2 和 PyTorch 都会发布更新支持新的互通格式 ONNX。


Facebook 和微软说,他们期待人工智能的学术研究和工业生产的世界是一个开放的生态,而 ONNX 是我们走向这个开放生态的第一步。


【扫描下面二维码,和我们一起畅聊AI吧】