姓名:何康健 學號:21021210856 學院:電子工程學院
【嵌牛導讀】2015 年碴开,谷歌大腦開放了一個名為「TensorFlow」的研究項目毅该,這款產(chǎn)品迅速流行起來,成為人工智能業(yè)界的主流深度學習框架潦牛,塑造了現(xiàn)代機器學習的生態(tài)系統(tǒng)眶掌。七年后的今天,故事的走向已經(jīng)完全不同:谷歌的 TensorFlow 失去了開發(fā)者的擁護朴爬,因為他們已經(jīng)轉(zhuǎn)向了 Meta 推出的另一款框架 PyTorch。
【嵌牛鼻子】TensorFlow,JAX
【嵌牛提問】你認為下一個機器學習框架是什么橡淆?
【嵌牛正文】
TensorFlow 大概已經(jīng)成為了谷歌的一枚「棄子」。
2015 年逸爵,谷歌大腦開放了一個名為「TensorFlow」的研究項目,這款產(chǎn)品迅速流行起來师倔,成為人工智能業(yè)界的主流深度學習框架,塑造了現(xiàn)代機器學習的生態(tài)系統(tǒng)。
七年后的今天疲恢,故事的走向已經(jīng)完全不同:谷歌的 TensorFlow 失去了開發(fā)者的擁護,因為他們已經(jīng)轉(zhuǎn)向了 Meta 推出的另一款框架 PyTorch冈闭。
曾經(jīng)無處不在的機器學習工具 TensorFlow 已經(jīng)悄悄落后抖单,而 Facebook 在 2017 年開源的 PyTorch 正在成為這個領域的霸主萎攒。
近日矛绘,外媒 Business Insider 采訪了一系列開發(fā)人員、硬件專家货矮、云供應商以及與谷歌機器學習工作關系密切的人,獲得了同樣的觀點囚玫。TensorFlow 已經(jīng)輸?shù)袅诉@場戰(zhàn)爭,其中有人用了一個鮮明的比喻:「PyTorch 吃掉了 TensorFlow 的午餐抓督。」
專家們表示铃在,鑒于戰(zhàn)術失誤、開發(fā)決策和 Meta 在開源社區(qū)中的一系列智取策略定铜,谷歌引領互聯(lián)網(wǎng)機器學習未來的機會正在逐漸消失阳液。
在 PyTorch 的陰影下揣炕,谷歌正在悄悄地開發(fā)一個機器學習框架帘皿,就是 JAX(曾是「Just After eXecution」的首字母縮寫,但官方說法中不再代表任何東西)畸陡,許多人將其視為 TensorFlow 的繼承者鹰溜。
接近該項目的人士告訴 Insider,谷歌大腦和 DeepMind 在很大程度上放棄了 TensorFlow罩锐,轉(zhuǎn)而使用 JAX奉狈。這為谷歌的其他部門鋪平了跟隨的道路,一位谷歌內(nèi)部人士向 Insider 證實涩惑,JAX 現(xiàn)在幾乎已在谷歌大腦和 DeepMind 中被全球采用仁期。
接近谷歌機器學習工作的人士表示,最初 JAX 面臨著來自內(nèi)部的強烈反對,一些人認為谷歌員工已經(jīng)習慣了使用 TensorFlow跛蛋。盡管它可能很難用熬的,但它一直是谷歌員工中的統(tǒng)一因素。他們說赊级,JAX 方法是要簡單得多押框,但它會改變 Google 內(nèi)部構建軟件的方式。
熟悉該項目的人士表示理逊,Jax 現(xiàn)在有望成為未來幾年所有使用機器學習的谷歌產(chǎn)品的支柱橡伞,就像 TensorFlow 在 2015 年之后幾年所做的那樣。
「JAX 是一項工程壯舉晋被,」Julia 編程語言創(chuàng)建者 Viral Shah 說兑徘。「我認為 JAX 是一種通過 Python 實例化的獨立編程語言羡洛。如果你遵守 JAX 想要的規(guī)則挂脑,它就可以發(fā)揮它的魔力,這真是令人驚嘆欲侮≌赶校」
現(xiàn)在,谷歌希望在這場競賽中再次獲得金牌威蕉,同時也從開發(fā) TensorFlow 時所犯的錯誤中吸取教訓刁俭,但這將是一個巨大的挑戰(zhàn)。
TensorFlow 的暮光忘伞,PyTorch 的崛起
根據(jù)提供給 Insider 的數(shù)據(jù)薄翅,PyTorch 在一些必讀開發(fā)者論壇上的帖子正在迅速趕超 TensorFlow。Stack Overflow 的參與度數(shù)據(jù)顯示氓奈,以論壇問題份額衡量翘魄, TensorFlow 受歡迎程度近年來停滯不前,而 PyTorch 的參與度繼續(xù)上升舀奶。
TensorFlow 起步強勁暑竟,推出后受歡迎程度不斷提高。Uber 和 Airbnb 等公司以及 NASA 等機構很快就開始將其用于一些復雜的項目育勺,這些項目需要在大量數(shù)據(jù)集上訓練算法但荤。截至 2020 年 11 月,TensorFlow 已被下載 1.6 億次腹躁。
但谷歌持續(xù)及增量的功能更新使得 TensorFlow 變得笨拙南蓬,且對用戶不友好,即使是谷歌內(nèi)部的那些人烧颖、開發(fā)人員和與項目關系密切的人都認為如此。隨著機器學習領域以驚人的速度發(fā)展拆火,谷歌不得不經(jīng)常使用新工具更新其框架们镜。接近該項目的人士表示乘综,該項目已經(jīng)在內(nèi)部傳播開來,越來越多的人參與其中,不再專注最初是什么讓 TensorFlow 成為首選工具九妈。
專家告訴 Insider雾鬼,對于許多擁有引領者身份的公司來說,這種瘋狂的貓鼠游戲是一個反復出現(xiàn)的問題晶疼。例如翠霍,谷歌并不是第一家建立搜索引擎的公司蠢莺,它能夠從 AltaVista 或 Yahoo 等前輩的錯誤中吸取教訓躏将。
2018 年,PyTorch 推出了完整版会宪。雖然 TensorFlow 和 PyTorch 都建立在 Python 之上蚯窥,但 Meta 在滿足開源社區(qū)的需求方面投入了大量資金。熟悉 TensorFlow 項目的人士說河劝,PyTorch 還受益于專注做一些 TensorFlow 團隊錯過的事情。
「我們主要使用 PyTorch赎瞎,它擁有最多的社區(qū)支持务甥,」機器學習初創(chuàng)公司 Hugging Face 的研究工程師 Patrick von Platten 說√粒「我們認為 PyTorch 可能在開源方面做得最好挺尿,他們能確保在線回復問題,所有示例都能 work熟史≌危」
一些最大的組織機構開始在 PyTorch 上運行項目,包括那些曾經(jīng)依賴 TensorFlow 的機構限寞。不久之前仰坦,特斯拉缎岗、Uber 等公司就在 PyTorch 上運行了他們最艱巨的機器學習研究項目。
TensorFlow 的新增功能有時會復制使 PyTorch 流行的元素传泊,使得 TensorFlow 對于其最初的研究人員和用戶受眾來說越來越臃腫眷细。一個這樣的例子是它在 2017 年增加了「敏銳執(zhí)行」,這是 Python 的原生特性普舆,使開發(fā)人員可以輕松分析和調(diào)試他們的代碼。
嘗試用 JAX 自救
隨著 PyTorch 和 TensorFlow 之間競爭日益激烈沼侣,谷歌內(nèi)部的一個小型研究團隊開發(fā)了一個新框架 JAX蛾洛,該框架將更容易訪問張量處理單元(TPU)——一種谷歌專門為機器學習和 TensorFlow 定制的芯片。
團隊研究人員 Roy Frostige钞螟、Matthew James Johnson 和 Chris Leary 在 2018 年發(fā)表了一篇名為《Compilation of machine learning software through high-level traceability》的論文鳞滨,介紹了這個新框架 JAX。PyTorch 的原始作者之一 Adam Paszky 于 2020 年初全職加入 JAX 團隊拯啦。
論文地址:https://cs.stanford.edu/~rfrostig/pubs/jax-mlsys2018.pdf
JAX 提出了一種直接的設計來解決機器學習中最復雜的問題之一:將一個大問題的工作分散到多個芯片上提岔。JAX 不會為不同的芯片運行單段代碼,而是自動分配工作荠瘪,即時訪問盡可能多的 TPU,以滿足運行需要趁餐。這解決了谷歌研究人員對算力的巨大需求篮绰。
PyTorch 和 TensorFlow 都是以同樣的方式開始的吠各,首先是研究項目,然后成為機器學習研究的標準化工具候学,從學界擴散到更多地方纵散。
然而隐圾,JAX 在很多方面仍然依賴于其他框架暇藏。開發(fā)人員表示:JAX 沒有加載數(shù)據(jù)和預處理數(shù)據(jù)的簡單方法濒蒋,需要使用 TensorFlow 或 PyTorch 進行大量數(shù)據(jù)處理啊胶。
JAX 基礎框架 XLA 也針對谷歌 TPU 設備做了很大的優(yōu)化。該框架還適用于更傳統(tǒng)的 GPU 和 CPU焰坪。了解該項目的人稱:該項目仍有辦法對 GPU 和 CPU 進行優(yōu)化,以達到 TPU 同等水平儒恋。
谷歌發(fā)言人表示诫尽,2018 年至 2021 年谷歌內(nèi)部對 GPU 的支持策略欠優(yōu),缺乏與大型 GPU 供應商英偉達的合作牧嫉,因此谷歌轉(zhuǎn)而關注 TPU酣藻,谷歌自己內(nèi)部的研究也主要集中在 TPU 上辽剧,導致缺乏良好的 GPU 使用反饋循環(huán)。從這個意義上說怕轿,谷歌對 TPU 的重視和專注也屬迫不得已撞羽。
然而放吩,如 Cerebras Systems 的 CEO Andrew Feldman 所說:「任何以一種設備優(yōu)于另一種設備的行為都是不良做法,會遭到開源社區(qū)的抵制渡紫。沒有人希望局限于單一的硬件供應商惕澎,這就是機器學習框架應運而生的原因。機器學習從業(yè)者希望確保他們的模型是可移植的秉氧,可以移植到他們選擇的任何硬件上,而不是被鎖定在一個平臺上赖瞒∥任觯」
如今楼入,PyTorch 快 6 歲了嘉熊,TensorFlow 在這個年紀早已出現(xiàn)衰落的跡象。也許 PyTorch 有一天也會被新框架取代凫佛,這尚未可知孕惜。但至少,新框架出現(xiàn)的時機已經(jīng)成熟。