天天看點

放棄TensorFlow?谷歌全面轉向JAX

公衆号 機器之心  授權      
TensorFlow 大概已經成為了谷歌的一枚「棄子」。

2015 年,谷歌大腦開放了一個名為「TensorFlow」的研究項目,這款産品迅速流行起來,成為人工智能業界的主流深度學習架構,塑造了現代機器學習的生态系統。

七年後的今天,故事的走向已經完全不同:谷歌的 TensorFlow 失去了開發者的擁護,因為他們已經轉向了 Meta 推出的另一款架構 PyTorch。

曾經無處不在的機器學習工具 TensorFlow 已經悄悄落後,而 Facebook 在 2017 年開源的 PyTorch 正在成為這個領域的霸主。

近日,外媒 Business Insider 采訪了一系列開發人員、硬體專家、雲供應商以及與谷歌機器學習工作關系密切的人,獲得了同樣的觀點。TensorFlow 已經輸掉了這場戰争,其中有人用了一個鮮明的比喻:「PyTorch 吃掉了 TensorFlow 的午餐。」

專家們表示,鑒于戰術失誤、開發決策和 Meta 在開源社群中的一系列智取政策,谷歌引領網際網路機器學習未來的機會正在逐漸消失。

在 PyTorch 的陰影下,谷歌正在悄悄地開發一個機器學習架構,就是 JAX(曾是「Just After eXecution」的首字母縮寫,但官方說法中不再代表任何東西),許多人将其視為 TensorFlow 的繼承者。

放棄TensorFlow?谷歌全面轉向JAX

接近該項目的人士告訴 Insider,谷歌大腦和 DeepMind 在很大程度上放棄了 TensorFlow,轉而使用 JAX。這為谷歌的其他部門鋪平了跟随的道路,一位谷歌内部人士向 Insider 證明,JAX 現在幾乎已在谷歌大腦和 DeepMind 中被全球采用。

接近谷歌機器學習工作的人士表示,最初 JAX 面臨着來自内部的強烈反對,一些人認為谷歌員工已經習慣了使用 TensorFlow。盡管它可能很難用,但它一直是谷歌員工中的統一因素。他們說,JAX 方法是要簡單得多,但它會改變 Google 内部建構軟體的方式。

熟悉該項目的人士表示,Jax 現在有望成為未來幾年所有使用機器學習的谷歌産品的支柱,就像 TensorFlow 在 2015 年之後幾年所做的那樣。

「JAX 是一項工程壯舉,」Julia 程式設計語言建立者 Viral Shah 說。「我認為 JAX 是一種通過 Python 執行個體化的獨立程式設計語言。如果你遵守 JAX 想要的規則,它就可以發揮它的魔力,這真是令人驚歎。」

現在,谷歌希望在這場競賽中再次獲得金牌,同時也從開發 TensorFlow 時所犯的錯誤中吸取教訓,但這将是一個巨大的挑戰。

TensorFlow 的暮光,PyTorch 的崛起

根據提供給 Insider 的資料,PyTorch 在一些必讀開發者論壇上的文章正在迅速趕超 TensorFlow。Stack Overflow 的參與度資料顯示,以論壇問題份額衡量, TensorFlow 受歡迎程度近年來停滞不前,而 PyTorch 的參與度繼續上升。

放棄TensorFlow?谷歌全面轉向JAX

TensorFlow 起步強勁,推出後受歡迎程度不斷提高。Uber 和 Airbnb 等公司以及 NASA 等機構很快就開始将其用于一些複雜的項目,這些項目需要在大量資料集上訓練算法。截至 2020 年 11 月,TensorFlow 已被下載下傳 1.6 億次。

但谷歌持續及增量的功能更新使得 TensorFlow 變得笨拙,且對使用者不友好,即使是谷歌内部的那些人、開發人員和與項目關系密切的人都認為如此。随着機器學習領域以驚人的速度發展,谷歌不得不經常使用新工具更新其架構。接近該項目的人士表示,該項目已經在内部傳播開來,越來越多的人參與其中,不再專注最初是什麼讓 TensorFlow 成為首選工具。

專家告訴 Insider,對于許多擁有引領者身份的公司來說,這種瘋狂的貓鼠遊戲是一個反複出現的問題。例如,谷歌并不是第一家建立搜尋引擎的公司,它能夠從 AltaVista 或 Yahoo 等前輩的錯誤中吸取教訓。

2018 年,PyTorch 推出了完整版。雖然 TensorFlow 和 PyTorch 都建立在 Python 之上,但 Meta 在滿足開源社群的需求方面投入了大量資金。熟悉 TensorFlow 項目的人士說,PyTorch 還受益于專注做一些 TensorFlow 團隊錯過的事情。

「我們主要使用 PyTorch,它擁有最多的社群支援,」機器學習初創公司 Hugging Face 的研究工程師 Patrick von Platten 說。「我們認為 PyTorch 可能在開源方面做得最好,他們能確定線上回複問題,所有示例都能 work。」

一些最大的組織機構開始在 PyTorch 上運作項目,包括那些曾經依賴 TensorFlow 的機構。不久之前,特斯拉、Uber 等公司就在 PyTorch 上運作了他們最艱巨的機器學習研究項目。

TensorFlow 的新增功能有時會複制使 PyTorch 流行的元素,使得 TensorFlow 對于其最初的研究人員和使用者閱聽人來說越來越臃腫。一個這樣的例子是它在 2017 年增加了「敏銳執行」,這是 Python 的原生特性,使開發人員可以輕松分析和調試他們的代碼。

嘗試用 JAX 自救

随着 PyTorch 和 TensorFlow 之間競争日益激烈,谷歌内部的一個小型研究團隊開發了一個新架構 JAX,該架構将更容易通路張量處理單元(TPU)——一種谷歌專門為機器學習和 TensorFlow 定制的晶片。

團隊研究人員 Roy Frostige、Matthew James Johnson 和 Chris Leary 在 2018 年發表了一篇名為《Compilation of machine learning software through high-level traceability》的論文,介紹了這個新架構 JAX。PyTorch 的原始作者之一 Adam Paszky 于 2020 年初全職加入 JAX 團隊。

放棄TensorFlow?谷歌全面轉向JAX