谷歌于 2015 年開放了一種小型資源,即 2015 年谷歌大腦研究項(xiàng)目,名為 TensorFlow,實(shí)質(zhì)上創(chuàng)造了現(xiàn)代機(jī)器學(xué)習(xí)的生態(tài)系統(tǒng)。其普及速度之快,令谷歌成為了主流人工智能產(chǎn)品的擁有者。
但是現(xiàn)在,情況已經(jīng)完全不同了,谷歌已經(jīng)喪失了開發(fā)者的人心,轉(zhuǎn)向了 Meta。
谷歌的 TensorFlow 曾經(jīng)是一款無所不在的機(jī)器學(xué)習(xí)工具,但后來卻落后于 Meta 機(jī)器學(xué)習(xí)工具 PyTorch。PyTorch 首次在 Facebook 開發(fā),在 2017 年作為測試版開源,PyTorch 逐漸成為了領(lǐng)軍人物。
在采訪開發(fā)者、硬件專家、云提供商以及熟悉谷歌機(jī)器學(xué)習(xí)工作的人士時(shí),他們的觀點(diǎn)也是相同的。TensorFlow 在爭奪開發(fā)者人心的競爭中落敗。其中有些人甚至使用了令人難以理解的確切說法:“PyTorch 正在享用 TensorFlow 的午餐”。
專家稱,經(jīng)過 Meta 在開源社區(qū)中的一系列戰(zhàn)術(shù)失誤、開發(fā)決策和智勝策略,谷歌引領(lǐng)未來互聯(lián)網(wǎng)上的機(jī)器學(xué)習(xí)的機(jī)遇可能將會(huì)慢慢消逝。自那以后,PyTorch 就成了開發(fā)人員和科學(xué)研究人員的機(jī)器學(xué)習(xí)開發(fā)工具。
谷歌在 PyTorch 的陰影下,悄悄地研發(fā)了一種 名為 JAX(一度是“JustAfter eXecution”的縮寫,但是正式意義上已經(jīng)沒有什么意義了)的機(jī)器學(xué)習(xí)框架,許多人認(rèn)為它是 TensorFlow 的繼承者。
該項(xiàng)目的知情人士向 Insider 透露,谷歌大腦和谷歌的 DeepMind 人工智能公司基本上都放棄了 TensorFlow,轉(zhuǎn)而改用 JAX,以便為谷歌其他部門的跟進(jìn)鋪平道路。一位谷歌代表向 Insider 證實(shí),JAX 目前已經(jīng)在谷歌大腦和 DeepMind 中得到了廣泛的采用。
項(xiàng)目地址:https://github.com/google/jax/releases
熟悉谷歌機(jī)器學(xué)習(xí)工作的人士稱,JAX 起初受到了很大的內(nèi)部阻力。他們表示,谷歌員工過去一直使用 TensorFlow。盡管它使用起來可能很困難,但是在谷歌的雇員中,這始終是一個(gè)讓人困擾的統(tǒng)一因素。JAX 的方法更加簡單得多,但是他們說,這也改變了谷歌在內(nèi)部構(gòu)建軟件的方式。
熟悉該項(xiàng)目的人表示,這款工具將會(huì)有望在今后數(shù)年內(nèi)成為所有使用機(jī)器學(xué)習(xí)的谷歌產(chǎn)品的支柱,就像 2010 年代末 TensorFlow 所做的那樣。
而 JAX 似乎已經(jīng)從谷歌的邊緣走向了中心。Salesforce 告訴 Insider,她已經(jīng)在自己的研究團(tuán)隊(duì)中采用了 JAX。
“JAX 是一項(xiàng)工程壯舉,”Julia 編程語言的創(chuàng)建者 Viral Shah 說,專家們經(jīng)常將其與 JAX 相提并論?!拔艺J(rèn)為 JAX 是一種獨(dú)立的編程語言,通過 Python 進(jìn)行實(shí)例化。如果你堅(jiān)持 JAX 想要的規(guī)則,它就能發(fā)揮它的神奇力量,而且可以做到讓人嘆為觀止?!?/p>
谷歌現(xiàn)在想要重回霸主的位置,同時(shí)也從開發(fā) TensorFlow 時(shí)犯下的錯(cuò)誤中汲取教訓(xùn)。但是,專家們說,由于他現(xiàn)在不得不放棄這個(gè)已經(jīng)贏得了開發(fā)者人心的開源工具,這將是一項(xiàng)很大的挑戰(zhàn)。
TensorFlow 的衰落與 PyTorch 的崛起
據(jù)提供給 Insider 的數(shù)據(jù)顯示,PyTorch 在一家必讀的開發(fā)者論壇上的帖子正在迅速追趕 TensorFlow。來自 Stack Overflow 的參與度數(shù)據(jù)表明,以其在論壇問題中的份額衡量,TensorFlow 在最近幾年中的人氣一直處于停滯狀態(tài),而 PyTorch 的參與度卻在持續(xù)上升。
TensorFlow 一開始就有很強(qiáng)勁的勢(shì)頭,并且隨著其發(fā)布而越來越流行。像 Uber 和 Airbnb 這樣的公司,以及像 NASA 這樣的組織很快就選擇了 TensorFlow,并將 TensorFlow 應(yīng)用到更復(fù)雜的項(xiàng)目中,這些項(xiàng)目要求在巨大的數(shù)據(jù)集上訓(xùn)練算法。截至 2020 年 11 月,TensorFlow 已累計(jì)下載 1.6 億次。
但是,谷歌不斷增量的功能更新使 TensorFlow 變得很不方便,而且對(duì)用戶來說也很不友好,即使是谷歌內(nèi)部的雇員、開發(fā)者和接近該項(xiàng)目的人也會(huì)這么認(rèn)為。隨著機(jī)器學(xué)習(xí)領(lǐng)域以驚人的速度發(fā)展,谷歌必須 經(jīng)常使用新的工具來更新其框架。熟悉該項(xiàng)目的人士表示,由于更多的人參與進(jìn)來,這個(gè)項(xiàng)目已經(jīng)開始向公司內(nèi)部擴(kuò)展,而不是將重點(diǎn)放在那些原本讓 TensorFlow 成為首選工具的部分。
專家告訴 Insider,這種狂熱的貓鼠游戲在很多率先推出的公司中是很常見的。舉例來說,谷歌并非首家創(chuàng)立搜索引擎的公司,它只是能夠 從 AltaVista 或雅虎等祖先的錯(cuò)誤中學(xué)習(xí)。
與此同時(shí),PyTorch 在 2018 年在 Facebook 人工智能研究實(shí)驗(yàn)室 發(fā)布了其完整版本。盡管 TensorFlow 和 PyTorch 都是基于 Python,而 Python 是機(jī)器學(xué)習(xí)專家的首選語言,但是 Meta 已經(jīng)在迎合開源社區(qū)的需求方面投入了大量資金。據(jù)了解 TensorFlow 項(xiàng)目的人說,PyTorch 在一定程度上得益于專注小而美的產(chǎn)品,而 TensorFlow 團(tuán)隊(duì)一直在錯(cuò)過。
“我們主要使用 PyTorch;它擁有最廣泛的社區(qū)支持,”機(jī)器學(xué)習(xí)創(chuàng)業(yè)公司 Hugging Face 的研究工程師 Patrick von Platten 說。“我們認(rèn)為 PyTorch 可能在開源方面做得最好。他們確保問題能夠得到在線解答。所有的例子都有效。PyTorch 一直有一個(gè)非常開源的方法。”
有些最大的組織(包括那些依賴 TensorFlow 的組織),Weave 項(xiàng)目是在 PyTorch 上運(yùn)行 的 。不久之后,像特斯拉和 Uber 這樣的公司 開始在 PyTorch 上進(jìn)行最艱難的機(jī)器學(xué)習(xí)研究項(xiàng)目。
每一個(gè)額外的特性,有時(shí)會(huì)復(fù)制那些讓 PyTorch 非常受歡迎的元素,使得 TensorFlow 對(duì)其最初的研究人員和用戶而言,變得越來越臃腫了。其中一個(gè)例子是,它在 2017 年增加了一個(gè)“敏銳執(zhí)行”(Keen Execution)的特性,這是 Python 的原生特性,可以讓開發(fā)者很容易對(duì)自己的代碼進(jìn)行分析和調(diào)試。
進(jìn)入 JAX,谷歌機(jī)器學(xué)習(xí)的未來
隨著 PyTorch 和 TensorFlow 之間的戰(zhàn)斗爆發(fā),谷歌內(nèi)部的一支小型研究團(tuán)隊(duì)致力于開發(fā)一種新的框架,以便更容易訪問專門設(shè)計(jì)的芯片(稱為張量處理單元,或 TPU),這些芯片是其人工智能方法的基礎(chǔ),只能通過 TensorFlow 獲得。
團(tuán)隊(duì)研究人員包括 Roy Frostige、Matthew James Johnson 和 Leary 在 2018 年發(fā)布了一篇題為《通過高級(jí)可追溯性編譯機(jī)器學(xué)習(xí)軟件》(Compilation of machine learning software through high-level traceability)的論文,描述了最終成為 JAX 的內(nèi)容。
Adam Paszky 是之前在 Facebook 工作期間 PyTorch 的原作者之一,他在 2019 年開始以學(xué)生身份與 Johnson 合作,并在 2020 年初全職加入 JAX 團(tuán)隊(duì)。
新項(xiàng)目 JAX 提出了一種更加直觀的設(shè)計(jì),他可以處理最復(fù)雜的機(jī)器學(xué)習(xí)問題:將一個(gè)大問題的工作分散到多個(gè)芯片上。JAX 不是為不同的芯片運(yùn)行單一的代碼位,而是自動(dòng)分配工作。這個(gè)要求來自在谷歌工作的一個(gè)很大的特點(diǎn):只要你需要,就可以立即使用大量的 TPU 來完成任何你想要的一切。
JAX 解決了谷歌研究人員在處理需要越來越多計(jì)算能力的大型問題時(shí)所面臨的一個(gè)基本問題。
JAX Wind Catch,這個(gè) skunkworks 項(xiàng)目正在被谷歌內(nèi)部的開發(fā)者和研究人員所接受。熟悉該項(xiàng)目的人士說,這是一種繞開許多開發(fā)者對(duì) TensorFlow 不敬的做法,并且能夠很快地把復(fù)雜的技術(shù)問題分散到多個(gè) TPU 上。
谷歌在 JAX 方面的最大挑戰(zhàn) 是用 PyTorch 實(shí)施其 Meta 戰(zhàn)略
同時(shí),PyTorch 和 TensorFlow 都是以同樣的方式開始的。它們一開始是研究項(xiàng)目,然后是好奇心,接著成為機(jī)器學(xué)習(xí)研究中的標(biāo)準(zhǔn)。最后,研究人員將它們從學(xué)術(shù)界傳播到了世界其他地方。
但是,JAX 也面臨著許多挑戰(zhàn)。首先,在許多方面,它對(duì)其他框架的依賴性還很強(qiáng)。開發(fā)者和專家們表示,JAX 沒有提供一種加載數(shù)據(jù)和預(yù)處理數(shù)據(jù)的方法,它需要 TensorFlow 或 PyTorch 來處理大量的設(shè)置。
JAX 基本框架 XLA,它也為谷歌 TPU 設(shè)備進(jìn)行了極大的優(yōu)化。該框架還能與更傳統(tǒng)的 GPU 和 CPU 協(xié)同工作,不過,據(jù)了解該項(xiàng)目的人表示,該項(xiàng)目仍有辦法通過優(yōu)化 GPU 和 CPU,從而達(dá)到與 TPU 的同等水平。
谷歌發(fā)言人表示,對(duì) TPU 的關(guān)注源于 2018 年至 2021 年的監(jiān)管和戰(zhàn)略上的混亂,造成了缺乏投資和對(duì) GPU 支持的次優(yōu)優(yōu)先級(jí),以及缺乏與大型 GPU 提供商 Nvidia 的合作,這兩方面都在迅速改善。這位發(fā)言人說,谷歌自己的內(nèi)部研究也非常關(guān)注 TPU,導(dǎo)致缺乏良好的 GPU 使用反饋。
Cerebras Systems 公司首席執(zhí)行官 Andrew Feldman 說,隨著各公司希望將其工作分散到不同類型的機(jī)器上,專注于機(jī)器學(xué)習(xí),因此這種改進(jìn)將成為未來的關(guān)鍵。這家市值 40 億美元的初創(chuàng)公司,制造專注于機(jī)器學(xué)習(xí)的大型芯片。
他說:“任何以一種設(shè)備為特色而非另一種設(shè)備的行為,都會(huì)立刻被認(rèn)為是一種惡劣的行為,并且會(huì)受到開源社區(qū)的排斥。沒有人愿意被限制在一個(gè)單一的硬件提供商,這就是機(jī)器學(xué)習(xí)框架出現(xiàn)的原因。機(jī)器學(xué)習(xí)從業(yè)者希望確保他們的模型是可移植的,他們可以將其移植到他們選擇的任何硬件平臺(tái)上,而不是被鎖定在一個(gè)平臺(tái)上?!?/p>
同時(shí),PyTorch 本身現(xiàn)在已經(jīng)有將近 6 年的歷史了,遠(yuǎn)遠(yuǎn)超過了 TensorFlow 首次開始出現(xiàn)放緩跡象的年齡。目前還不清楚 Meta 項(xiàng)目是否會(huì)面臨與其谷歌支持的前輩類似的命運(yùn),但這可能意味著新事物出現(xiàn)的時(shí)機(jī)已經(jīng)成熟。有些專家和接近該項(xiàng)目的人士指出了谷歌的規(guī)模過大,并告誡批評(píng)家千萬別把希望寄托在這個(gè)搜索巨頭身上。
審核編輯 :李倩
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8406瀏覽量
132558 -
生態(tài)系統(tǒng)
+關(guān)注
關(guān)注
0文章
702瀏覽量
20723 -
pytorch
+關(guān)注
關(guān)注
2文章
807瀏覽量
13198
原文標(biāo)題:JAX正從谷歌的邊緣項(xiàng)目走向核心
文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論