Facebook 和微軟推出一個 AI「開放生態」,卻沒找 Google

作者 | 發布日期 2017 年 09 月 10 日 0:00 | 分類 AI 人工智慧 , Facebook , Google follow us in feedly

美國人工智慧業界,今天起風了。



三大領軍企業 Facebook、微軟和 Google 之間的關係發生了重大的變化:Facebook 和微軟結盟,推出一套開放神經網路交換格式(Open Neural Network Exchange,ONNX),提升兩家公司主導的神經網路框架格式間的互通性。

▲ 已確認支援 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 的事。

Google 是 TensorFlow 框架的核心貢獻者和主導者,而 TensorFlow 目前是業界主流,是 GitHub 最受歡迎、已建立的生態健全程度相對更高的框架──沒有也不會加入支援 ONNX(至少目前沒有)。

這就好比你要在森林裡建立動物王國,卻漏了食物鏈頂端的老虎……

這也是為什麼 Facebook 和微軟這次合作看來更像為了對抗 Google / TensorFlow 結成的同盟,聯吳抗魏懂吧?

但這並不意味 Google 和其他公司無法參與。ONNX 是一個開源專案,非 FB、微軟兩家內部的機密專案,所有程式碼都公開且允許第三方提交貢獻。這意味著 Google 如果願意讓那些用其他框架還覬覦 TensorFlow 的科研人員好過一點,可跟 Facebook、微軟商量一下,然後也發個聲明昭告天下:TensorFlow 強勢加入 ONNX 套餐。相信這一定大快所有人心。

同樣,其他框架的開發者也可以加入,那才是真正開放和互通的「人工智慧生態」。

新聞說完了。所以 ONNX 對吃瓜群眾有什麼好處?

答案是沒什麼直接的好處,但 ONNX 讓人工智慧變成消費者可直接使用之產品的過程更簡單方便;我們使用的人工智慧產品效能也可能會有微小的提升。

Google 工程師看著 Facebook 和微軟的新聞,心裡想的一定是:小子,戲挺多的啊……

(本文由 PingWest 授權轉載;首圖來源:shutterstock)