社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

PyTorch横扫各大顶会,TensorFlow退守工业界:机器学习框架,一年间局势突变

量子位 • 4 年前 • 547 次点击  
鱼羊 栗子 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

TensorFlow 2.0正式发布没几天,PyTorch 1.3今天也上线了。

一个疯狂强调“易用性”,一个整出了移动端部署。老将和新秀都卯足了劲。

毕竟,机器学习框架的世界,局势变化过于迅猛,稍不注意就会被抢了地盘。

一年前,TensorFlow还是各大顶会论文选择的主流框架,如今顶会几乎成了PyTorch的天下。

CVPR 2019,只提到PyTorch的论文有280篇,只提到TensorFlow的论文有125篇,但这还不是悬殊最大的一场会议。

有网友 (@programmerChilli) 说,虽然知道大批研究者逃离TF拥抱PT:

但我绝对想不到涨幅能到这种地步。

那么,PyTorch的优势到底在哪里?

PyTorch一路凯歌,对TensorFlow经营多年的格局又有怎样的冲击。

这一次,一位来自康奈尔大学的少年Horace He,用一份详尽的调查报告,对现状进行了总结,也为潜在入门者提供了方向:

PyTorch制霸学界

报告开头就提到:目前的大背景是,大量研究人员从TensorFlow转投PyTorch。

但大家未必知道,这势头来得多猛烈。来看2018年与2019年的各大顶会对比吧:

 被挡住的ICML是32.5%

表格列出了CVPR、NAACL、ACL、ICLR、ICML这五大顶会上,仅提到PyTorch/仅提到TensorFlow的论文数量。

2018年,PyTorch五项数据全部低于TensorFlow。

2019年,PyTorch五个数字全部超越TensorFlow。

PyTorch每项数据的增幅,都在192%450%之间,涨势十分凶猛。

其中,以自然语言处理(NLP) 的顶会NAACL (450%) 和ACL (290%) 最为显著;在视觉顶会CVPR上也有大幅增长 (240%) 。

相比之下,TensorFlow有三项数据下滑。其中NAACL数据下降幅度达到了38.2%,而这里正是PyTorch飞跃式增长的地方。

此消彼长,PyTorch只用了一年,便把弱势变成了压倒性优势

280:125 (CVPR) ,两倍有余。

66:21 (ACL) ,三倍有余。

103:33 (NAACL) ,三倍有余。

在语言和视觉顶会上,PyTorch的主导地位最明显。这跟上文提到的涨幅是吻合的。

如果还有人把PyTorch当做一个新秀,试图在TensorFlow主导的世界里,划出一片自己的地盘,那么数据告诉他们,已经不是这样了。

虽然,看上去TensorFlow还有两项数据在增长,但其实只有ICML的涨幅 (32.5%) ,还跟得上会议总录取论文数的增长。

也就是说,在另外四场会议上,TensorFlow已经开始衰退了。

为何研究人员爱PyTorch?

一是简单。它和NumPy比较像,风格很Python,能轻易和Python生态集成起来。

比如,你只要把一个pdb断点扔进PyTorch模型里,它直接就能用了。

相比之下,在TensorFlow模型里面debug的话,便会复杂得多了。

二是API好。比起TensorFlow的API,大多数研究人员更偏爱PyTorch的API。PyTorch设计得更科学;而TensorFlow要在各种API之间切换,令人操作不便:

‘layers’ -> ‘slim’ -> ‘estimators’ -> ‘tf.keras’

三是性能。虽然PyTorch的动态图 (Dynamic Graphs) 提供的优化空间比较小,但许多用户都反馈说PyTorch的速度不亚于TensorFlow,甚至比对方还快。

虽然,没有严格测试数据表明到底谁更快,但至少TensorFlow并没有明显的优势。

这样,再加上前两点,足够让许多研究人员拥抱PyTorch了。

TensorFlow在研究领域会怎样?

就算今后TensorFlow变得像PyTorch一样友好,PyTorch的地盘也已经很大了。

这就是说,PyTorch的代码实现更容易找到,人们也更有动力发表PyTorch的代码给大家用,跟别人合作的话队友也可能会倾向PyTorch。

所以,迁回TensorFlow 2.0这件事,大概率不会进展很快。

当然,谷歌和DeepMind内部研究还是会用TensorFlow。他们的研究成果,大概也给了一部分研究人员,继续用TensorFlow的信心。

不过Horace He听说,谷歌内部也有许多研究人员,渴望逃离TensorFlow了。

另一方面,PyTorch主导地位越来越强,谷歌研究人员可能和整个社区之间产生隔阂:他们很难在外部研究的基础上搭建自己的应用,外面的研究人员也很难借鉴谷歌的代码。

最后,TensorFlow 2.0能不能挽回一些研究人员,还需要时间来观察。Eager Execution一定是个吸引人的点,而Keras API就不一定了。

TensorFlow守住工业界

虽然在各个开发者社区,“PyTorch真香”论声势浩大,现在又在顶会数据上实力压倒TensorFlow,但其实,在工业界,TensorFlow仍具优势。

比如,根据Medium博主Jeff Hale的统计结果,2019年,TensorFlow在线上招聘启事中拥有1541个新增职位,而PyTorch有1437个。

从arXiv的论文数量来看,TensorFlow也仍然占据首位,只是领先优势在缩小。

一方面,TensorFlow的诞生早于PyTorch,工业界对新鲜事物的追逐,不像学术界那样热切,使用TensorFlow已成行业惯性。

并且,许多企业的代码都是基于TensorFlow搭建的,想要迁移到PyTorch上,并非易事。

另一方面,相比于PyTorch,TensorFlow本身就是为工业界量身打造的。

相比于研究实验,工业界会有更多的限制和要求,比如:

· 不用Python。Python在服务器上运行时开销太大,有些公司承受不来。

· 可移动性。移动二进制文件中没法嵌入Python解释器。

· 服务。无停机更新,模型间无缝切换,可预测时间的批处理,等等等等。

TensorFlow在这些方面显然比PyTorch做得好得多。比如,训练好模型,然后使用TF Lite进行部署,是目前最可靠的生产管道之一。

有网友举了个例子:

TensorFlow能够将模型导出到coreml Android模型中,也能很容易地将其转移到GCP(谷歌云端平台)环境等任何形式的生产环境中。

相比之下,PyTorch的部署有些让人头秃:模型无法导出到非Python环境,无法优化,无法在移动设备上运行(随着PyTorch 1.3的发布,无法在移动端部署的问题已经得到解决)

况且,TensorFlow还有Keras这个好伙伴呢。

不过,也有网友认为,PyTorch在工业界取得主导地位,只是时间问题。

毕竟在2018年的顶会上,TensorFlow还是主流呢。仅仅一年时间,王座就已易主。

Medium博主Jeff Hale统计

“融合”趋势

PyTorch势头猛烈,但TensorFlow也没有坐以待毙。

一个有趣的现象是,现在,这两个机器学习框架呈现出了“融合”的趋势。

十一假期,TensorFlow 2.0正式登场,进一步整合TensorFlow和Keras,增强易用性,官方表示,这是一个快速、可扩展、可投入生产的灵活而强大的平台。

Keras的作者François Chollet甚至说:“TensorFlow 2.0是一个来自未来的机器学习平台,它改变了一切。”

在默认的eager execution模式下,TensorFlow 2.0能提供PyTorch eager模式下的大部分优点,比如易用性、可调试性等。

并且,针对TensorFlow的API过于复杂这个问题,2.0版本也提供了更易用的API。模型的训练和serving都无缝集成在了基础框架中。

PyTorch这边,2018年底引入了JIT编译器和“TorchScript”,增加图形功能。

就在今天,PyTorch 1.3发布,新增移动端部署、量化和命名张量等功能。

机器学习框架未来的游戏规则会如何改变,还真令人期待呢。

FB谷歌双料实习生

最后,介绍下这份详细报告的作者:

Horace He,来自康奈尔大学,是2016年入学的本科生。

自从上了大学,他每个暑假都在大厂实习:2017年是Facebook实习软件工程师,2018年是谷歌的实习软件工程师,2019年在Facebook做PyTorch实习生

另外,少年还是VSCodeVim (标星6.2k) 的主要贡献者之一:

那么,TensorFlow和PyTorch,你会pick谁?

参考资料:
https://thegradient.pub/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates-industry/

https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318

作者系网易新闻·网易号“各有态度”签约作者


大会启幕!预见智能科技新未来

量子位MEET 2020智能未来大会启幕,将携手优秀AI企业、杰出科研人员呈现一场高质量行业盛会!详情可点击图片:


榜单征集!三大奖项,锁定AI Top玩家

2019中国人工智能年度评选启幕,将评选领航企业、商业突破人物、最具创新力产品3大奖项,并于MEET 2020大会揭榜,欢迎优秀的AI公司扫码报名!

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 ! 

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46895
 
547 次点击