放棄TensorFlow,谷歌全面轉(zhuǎn)向JAX
轉(zhuǎn)自:機(jī)器之心
TensorFlow 大概已經(jīng)成為了谷歌的一枚「棄子」。
2015 年,谷歌大腦開(kāi)放了一個(gè)名為「TensorFlow」的研究項(xiàng)目,這款產(chǎn)品迅速流行起來(lái),成為人工智能業(yè)界的主流深度學(xué)習(xí)框架,塑造了現(xiàn)代機(jī)器學(xué)習(xí)的生態(tài)系統(tǒng)。
七年后的今天,故事的走向已經(jīng)完全不同:谷歌的 TensorFlow 失去了開(kāi)發(fā)者的擁護(hù),因?yàn)樗麄円呀?jīng)轉(zhuǎn)向了 Meta 推出的另一款框架 PyTorch。
曾經(jīng)無(wú)處不在的機(jī)器學(xué)習(xí)工具 TensorFlow 已經(jīng)悄悄落后,而 Facebook 在 2017 年開(kāi)源的 PyTorch 正在成為這個(gè)領(lǐng)域的霸主。
近日,外媒 Business Insider 采訪了一系列開(kāi)發(fā)人員、硬件專家、云供應(yīng)商以及與谷歌機(jī)器學(xué)習(xí)工作關(guān)系密切的人,獲得了同樣的觀點(diǎn)。TensorFlow 已經(jīng)輸?shù)袅诉@場(chǎng)戰(zhàn)爭(zhēng),其中有人用了一個(gè)鮮明的比喻:「PyTorch 吃掉了 TensorFlow 的午餐。」
專家們表示,鑒于戰(zhàn)術(shù)失誤、開(kāi)發(fā)決策和 Meta 在開(kāi)源社區(qū)中的一系列智取策略,谷歌引領(lǐng)互聯(lián)網(wǎng)機(jī)器學(xué)習(xí)未來(lái)的機(jī)會(huì)正在逐漸消失。
在 PyTorch 的陰影下,谷歌正在悄悄地開(kāi)發(fā)一個(gè)機(jī)器學(xué)習(xí)框架,就是 JAX(曾是「Just After eXecution」的首字母縮寫,但官方說(shuō)法中不再代表任何東西),許多人將其視為 TensorFlow 的繼承者。

接近谷歌機(jī)器學(xué)習(xí)工作的人士表示,最初 JAX 面臨著來(lái)自內(nèi)部的強(qiáng)烈反對(duì),一些人認(rèn)為谷歌員工已經(jīng)習(xí)慣了使用 TensorFlow。盡管它可能很難用,但它一直是谷歌員工中的統(tǒng)一因素。他們說(shuō),JAX 方法是要簡(jiǎn)單得多,但它會(huì)改變 Google 內(nèi)部構(gòu)建軟件的方式。
熟悉該項(xiàng)目的人士表示,Jax 現(xiàn)在有望成為未來(lái)幾年所有使用機(jī)器學(xué)習(xí)的谷歌產(chǎn)品的支柱,就像 TensorFlow 在 2015 年之后幾年所做的那樣。
「JAX 是一項(xiàng)工程壯舉,」Julia 編程語(yǔ)言創(chuàng)建者 Viral Shah 說(shuō)。「我認(rèn)為 JAX 是一種通過(guò) Python 實(shí)例化的獨(dú)立編程語(yǔ)言。如果你遵守 JAX 想要的規(guī)則,它就可以發(fā)揮它的魔力,這真是令人驚嘆。」
現(xiàn)在,谷歌希望在這場(chǎng)競(jìng)賽中再次獲得金牌,同時(shí)也從開(kāi)發(fā) TensorFlow 時(shí)所犯的錯(cuò)誤中吸取教訓(xùn),但這將是一個(gè)巨大的挑戰(zhàn)。
TensorFlow 的暮光,PyTorch 的崛起

但谷歌持續(xù)及增量的功能更新使得 TensorFlow 變得笨拙,且對(duì)用戶不友好,即使是谷歌內(nèi)部的那些人、開(kāi)發(fā)人員和與項(xiàng)目關(guān)系密切的人都認(rèn)為如此。隨著機(jī)器學(xué)習(xí)領(lǐng)域以驚人的速度發(fā)展,谷歌不得不經(jīng)常使用新工具更新其框架。接近該項(xiàng)目的人士表示,該項(xiàng)目已經(jīng)在內(nèi)部傳播開(kāi)來(lái),越來(lái)越多的人參與其中,不再專注最初是什么讓 TensorFlow 成為首選工具。
專家告訴 Insider,對(duì)于許多擁有引領(lǐng)者身份的公司來(lái)說(shuō),這種瘋狂的貓鼠游戲是一個(gè)反復(fù)出現(xiàn)的問(wèn)題。例如,谷歌并不是第一家建立搜索引擎的公司,它能夠從 AltaVista 或 Yahoo 等前輩的錯(cuò)誤中吸取教訓(xùn)。
2018 年,PyTorch 推出了完整版。雖然 TensorFlow 和 PyTorch 都建立在 Python 之上,但 Meta 在滿足開(kāi)源社區(qū)的需求方面投入了大量資金。熟悉 TensorFlow 項(xiàng)目的人士說(shuō),PyTorch 還受益于專注做一些 TensorFlow 團(tuán)隊(duì)錯(cuò)過(guò)的事情。
「我們主要使用 PyTorch,它擁有最多的社區(qū)支持,」機(jī)器學(xué)習(xí)初創(chuàng)公司 Hugging Face 的研究工程師 Patrick von Platten 說(shuō)。「我們認(rèn)為 PyTorch 可能在開(kāi)源方面做得最好,他們能確保在線回復(fù)問(wèn)題,所有示例都能 work。」
一些最大的組織機(jī)構(gòu)開(kāi)始在 PyTorch 上運(yùn)行項(xiàng)目,包括那些曾經(jīng)依賴 TensorFlow 的機(jī)構(gòu)。不久之前,特斯拉、Uber 等公司就在 PyTorch 上運(yùn)行了他們最艱巨的機(jī)器學(xué)習(xí)研究項(xiàng)目。
TensorFlow 的新增功能有時(shí)會(huì)復(fù)制使 PyTorch 流行的元素,使得 TensorFlow 對(duì)于其最初的研究人員和用戶受眾來(lái)說(shuō)越來(lái)越臃腫。一個(gè)這樣的例子是它在 2017 年增加了「敏銳執(zhí)行」,這是 Python 的原生特性,使開(kāi)發(fā)人員可以輕松分析和調(diào)試他們的代碼。
團(tuán)隊(duì)研究人員 Roy Frostige、Matthew James Johnson 和 Chris Leary 在 2018 年發(fā)表了一篇名為《Compilation of machine learning software through high-level traceability》的論文,介紹了這個(gè)新框架 JAX。PyTorch 的原始作者之一 Adam Paszky 于 2020 年初全職加入 JAX 團(tuán)隊(duì)。

JAX 提出了一種直接的設(shè)計(jì)來(lái)解決機(jī)器學(xué)習(xí)中最復(fù)雜的問(wèn)題之一:將一個(gè)大問(wèn)題的工作分散到多個(gè)芯片上。JAX 不會(huì)為不同的芯片運(yùn)行單段代碼,而是自動(dòng)分配工作,即時(shí)訪問(wèn)盡可能多的 TPU,以滿足運(yùn)行需要。這解決了谷歌研究人員對(duì)算力的巨大需求。
PyTorch 和 TensorFlow 都是以同樣的方式開(kāi)始的,首先是研究項(xiàng)目,然后成為機(jī)器學(xué)習(xí)研究的標(biāo)準(zhǔn)化工具,從學(xué)界擴(kuò)散到更多地方。
然而,JAX 在很多方面仍然依賴于其他框架。開(kāi)發(fā)人員表示:JAX 沒(méi)有加載數(shù)據(jù)和預(yù)處理數(shù)據(jù)的簡(jiǎn)單方法,需要使用 TensorFlow 或 PyTorch 進(jìn)行大量數(shù)據(jù)處理。
JAX 基礎(chǔ)框架 XLA 也針對(duì)谷歌 TPU 設(shè)備做了很大的優(yōu)化。該框架還適用于更傳統(tǒng)的 GPU 和 CPU。了解該項(xiàng)目的人稱:該項(xiàng)目仍有辦法對(duì) GPU 和 CPU 進(jìn)行優(yōu)化,以達(dá)到 TPU 同等水平。
谷歌發(fā)言人表示,2018 年至 2021 年谷歌內(nèi)部對(duì) GPU 的支持策略欠優(yōu),缺乏與大型 GPU 供應(yīng)商英偉達(dá)的合作,因此谷歌轉(zhuǎn)而關(guān)注 TPU,谷歌自己內(nèi)部的研究也主要集中在 TPU 上,導(dǎo)致缺乏良好的 GPU 使用反饋循環(huán)。從這個(gè)意義上說(shuō),谷歌對(duì) TPU 的重視和專注也屬迫不得已。
然而,如 Cerebras Systems 的 CEO Andrew Feldman 所說(shuō):「任何以一種設(shè)備優(yōu)于另一種設(shè)備的行為都是不良做法,會(huì)遭到開(kāi)源社區(qū)的抵制。沒(méi)有人希望局限于單一的硬件供應(yīng)商,這就是機(jī)器學(xué)習(xí)框架應(yīng)運(yùn)而生的原因。機(jī)器學(xué)習(xí)從業(yè)者希望確保他們的模型是可移植的,可以移植到他們選擇的任何硬件上,而不是被鎖定在一個(gè)平臺(tái)上。」
如今,PyTorch 快 6 歲了,TensorFlow 在這個(gè)年紀(jì)早已出現(xiàn)衰落的跡象。也許 PyTorch 有一天也會(huì)被新框架取代,這尚未可知。但至少,新框架出現(xiàn)的時(shí)機(jī)已經(jīng)成熟。
往期精彩:
講解視頻來(lái)了!機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)開(kāi)錄!
完結(jié)!《機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)》全書1-26章PPT下載
《機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)》隨書PPT示例
時(shí)隔一年!深度學(xué)習(xí)語(yǔ)義分割理論與代碼實(shí)踐指南.pdf第二版來(lái)了!
新書首發(fā) | 《機(jī)器學(xué)習(xí) 公式推導(dǎo)與代碼實(shí)現(xiàn)》正式出版!
《機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)》將會(huì)配套PPT和視頻講解!
評(píng)論
圖片
表情
