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公司扫码报名!