2022年,PyTorch在AI頂會(huì)的占比已經(jīng)上80%了
從早期的學(xué)術(shù)框架 Caffe、Theano,到后來(lái)的PyTorch、TensorFlow,自 2012 年深度學(xué)習(xí)再度成為焦點(diǎn)以來(lái),很多機(jī)器學(xué)習(xí)框架成為研究者和業(yè)界工作者的新寵。
2018 年底,谷歌推出了全新的JAX框架,其受歡迎程度也一直在穩(wěn)步提升。很多研究者對(duì)其寄予厚望,希望它可以取代 TensorFlow 等眾多深度學(xué)習(xí)框架。
不過(guò),PyTorch 和 TensorFlow仍是ML框架領(lǐng)域的兩大實(shí)力玩家,其他新生框架的力量暫時(shí)還無(wú)法匹敵。而PyTorch 和 TensorFlow之間則是此消彼長(zhǎng)的關(guān)系,力量對(duì)比也在悄悄發(fā)生著變化。
2019年10月,康奈爾大學(xué)本科生、曾在PyTorch 團(tuán)隊(duì)實(shí)習(xí)的Horace He曾對(duì)PyTorch 和 TensorFlow在學(xué)界的使用情況進(jìn)行了數(shù)據(jù)統(tǒng)計(jì)。結(jié)果顯示,研究者已經(jīng)大批涌向了 PyTorch,不過(guò)當(dāng)時(shí)看來(lái),業(yè)界的首選仍然是 TensorFlow。
如下圖所示,從2019年中期開(kāi)始,在統(tǒng)計(jì)的各大頂會(huì)中,PyTorch從使用率指標(biāo)上就已完成了對(duì)TensorFlow的反超。
數(shù)據(jù)收集時(shí)間:2019年10月。
當(dāng)時(shí)的開(kāi)發(fā)者社區(qū)曾熱議:未來(lái),誰(shuí)能在 ML 框架之爭(zhēng)中迎來(lái)「高光時(shí)刻」?兩年后,Horace He再次給出了更新后的統(tǒng)計(jì)結(jié)果。
截止目前,EMNLP、ACL、ICLR三家頂會(huì)的PyTorch的占比已經(jīng)超過(guò)80%,這一占比數(shù)字在其他會(huì)議中也都保持在70%之上。短短兩年間,TensorFlow的生存空間又大幅縮小。
PyTorch 在學(xué)界的「超車」
具體到每一家頂會(huì),作者也在圖表中展示了詳細(xì)數(shù)據(jù):
以CVPR為例,在CVPR 2018之前,TensorFlow的使用率還高于PyTorch,而在下一年,局勢(shì)立即逆轉(zhuǎn)。
CVPR 2019的PyTorch使用率為22.72%(294篇),TensorFlow的使用率變?yōu)?1.44%(148篇);到了CVPR 2020,這兩個(gè)數(shù)字分別變成了28.49%(418篇)和7.7%(113篇)。
在ICML、ICLR、NeurIPS這些會(huì)議中,依舊是同樣的競(jìng)爭(zhēng)形勢(shì):
PyTorch一騎絕塵,TensorFlow則持續(xù)下跌。在ICLR 2022中,PyTorch使用率為32.20%(1091篇),TensorFlow跌到了6.14%(208篇),拉開(kāi)了五倍的差距。
TensorFlow 在學(xué)界還有未來(lái)嗎?
所以,退守一方的TensorFlow,怎么就到了今天這個(gè)地步?
在Hackrnews社區(qū),這一話題引發(fā)了開(kāi)發(fā)者的熱議:
「在學(xué)術(shù)出版中,能夠?qū)⒛愕墓ぷ髋c SOTA 進(jìn)行比較是非常關(guān)鍵的。如果你所在地區(qū)的其他人都使用某個(gè)框架,那么你也應(yīng)該這樣做。過(guò)去幾年,Pytorch是我關(guān)注最多的框架了?!?/p>
「但Tensorflow 的一個(gè)亮點(diǎn)是靜態(tài)圖表。隨著模型變得更加密集,并且需要不同的部分并行執(zhí)行,我們?cè)?PyTorch 的運(yùn)行模型中看到了一些挑戰(zhàn)?!?/p>
在這位開(kāi)發(fā)者看來(lái),如果想并行地做很多事情,Tensorflow 還是有一些特性是其他產(chǎn)品無(wú)法比擬的。這完全取決于你在做什么。
還有人說(shuō),Tensorflow的式微是因?yàn)槌霈F(xiàn)了策略上的失誤。
「我認(rèn)為 Tensorflow 在學(xué)術(shù)界做出了一個(gè)糟糕的舉動(dòng),因?yàn)樗谠缙诎姹局惺褂闷饋?lái)非常困難。當(dāng)然,它的性能總是比 PyTorch 好,但當(dāng)你是一個(gè)工作負(fù)擔(dān)很重的博士生時(shí),你就不太關(guān)心你的代碼是否高效,而更關(guān)心你的代碼是否能work。有人說(shuō) PyTorch 的調(diào)試相對(duì)輕松,所以那些早期的模型用了PyTorch發(fā)表,后來(lái)很多人也就來(lái)到了PyTorch?!?/p>
你怎么看呢?