Facebook 和微软推出一个 AI「开放生态」,却没找 Google

时间:2020-06-06    热度:607

Facebook 和微软推出一个 AI「开放生态」,却没找 Google

美国人工智慧业界,今天起风了。

三大领军企业 Facebook、微软和 Google 之间的关係发生了重大的变化:Facebook 和微软结盟,推出一套开放神经网路交换格式(Open Neural Network Exchange,ONNX),提升两家公司主导的神经网路框架格式间的互通性。

Facebook 和微软推出一个 AI「开放生态」,却没找 Google

已确认支援 ONNX 的 3 种深度学习框架:Caffe2、CNTK 和 PyTorch。

给非神经网路专业人士简单解释一下怎幺回事:人工智慧的实现技术主要是深度学习神经网路,而神经网路训练和使用(推理)通常採用一种主流的深度学习框架或程式库,主流的框架或程式库和主导者、主要支援者有以下这些: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 是他们走向开放生态的第一步。

如果你相信了,那你可能太年轻了:这次合作并没有 Google 的事。

Facebook 和微软推出一个 AI「开放生态」,却没找 Google

Google 是 TensorFlow 框架的核心贡献者和主导者,而 TensorFlow 目前是业界主流,是 GitHub 最受欢迎、已建立的生态健全程度相对更高的框架──没有也不会加入支援 ONNX(至少目前没有)。

这就好比你要在森林里建立动物王国,却漏了食物链顶端的老虎……

这也是为什幺 Facebook 和微软这次合作看来更像为了对抗 Google / TensorFlow 结成的同盟,联吴抗魏懂吧?

但这并不意味 Google 和其他公司无法参与。ONNX 是一个开源专案,非 FB、微软两家内部的机密专案,所有程式码都公开且允许第三方提交贡献。这意味着 Google 如果愿意让那些用其他框架还觊觎 TensorFlow 的科研人员好过一点,可跟 Facebook、微软商量一下,然后也发个声明昭告天下:TensorFlow 强势加入 ONNX 套餐。相信这一定大快所有人心。

同样,其他框架的开发者也可以加入,那才是真正开放和互通的「人工智慧生态」。

新闻说完了。所以 ONNX 对吃瓜群众有什幺好处?

答案是没什幺直接的好处,但 ONNX 让人工智慧变成消费者可直接使用之产品的过程更简单方便;我们使用的人工智慧产品效能也可能会有微小的提升。

Google 工程师看着 Facebook 和微软的新闻,心里想的一定是:小子,戏挺多的啊……