×

×

Facebook和微软搞了一个AI“开放生态” 却没带Google玩

发布日期:2017-09-08 09:24浏览次数:59997

 
       美国人工智能业界,今天起风了。
 
 
       三大领军企业Facebook、微软和 Google 之间的关系发生了重大的变化:Facebook 和微软结盟,推出一套开放的神经网络交换格式 (Open Neural Network Exchange, ONNX),提升两家公司所主导的神经网络框架格式之间的互通性。
给非神经网络专业人士尽量简单滴解释一下具体怎么回事:人工智能的实现技术主要是深度学习神经网络→而神经网络训练和使用(推理)通常采用一种主流的深度学习框架或库→主流的框架或库和他们的主导者、主要支持者有以下这些: 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 什么事儿。
因为 Google 是 TensorFlow 框架的核心贡献者和主导者,而 TensorFlow 作为目前业界最为主流,在 GitHub 上最受欢迎、已经建立的生态健全程度相对更高的框架——并没有也不会加入 ONNX 支持(至少目前没有)。
 
       这就好比你说要在森林里建立动物王国,却忘了让食物链顶端的老虎出席讲话……
 
       这也是为什么 Facebook 和微软的这次合作在我看来更像是为了对抗 Google/TensorFlow 而结成同盟,对抗 Google。联吴抗魏你能懂吧?
 
       但这并不意味着 Google 和其他公司没法参与到其中。ONNX 是一个开源项目,而非 FB、微软两家内部的机密项目,所有代码都公开且允许第三方提交贡献。这意味着 Google 如果愿意让那些用了其他框架还觊觎 TensorFlow 的科研人员好过一点的话,它可以跟 Facebook、微软商量一下,然后也发个声明昭告天下:TensorFlow 强势加入 ONNX 套餐。相信一定是让人大快所有人心的大好事。
 
       同样,其他框架的开发者也可以加入其中。那才是真正的开放和互通的“人工智能生态”。
 
       这则新闻说完了。所以 ONNX 对吃瓜群众有什么好处?
 
       答案是没什么直接的好处,但ONNX 的推出让人工智能变成消费者能直接使用的产品的过程更简单、更方便了;我们使用的人工智能产品性能也可能会有微小的提升。