2019年,机器学习领域迎来了一个重要的转折点:PyTorch和TensorFlow成为了最后的两大竞争者。这两款框架究竟谁能引领未来的发展趋势?近期,开源中国翻译了一篇贺瑞斯(Horace He)的文章,揭示了PyTorch在学术界的受欢迎程度逐渐上升,而在工业界,TensorFlow仍然是主流选择。以下是文章中的关键内容。
2018年,顶级学术会议上的论文大多还是使用TensorFlow。然而,到了2019年,PyTorch的使用率显著提升。例如,在CVPR会议中,使用PyTorch的论文占比高达69%;而在NAACL和ACL会议上,这个比例超过了75%。在ICLR和ICML这样的通用机器学习会议上,PyTorch的使用率也达到了50%以上。由此可见,PyTorch在视觉和语言类会议上的影响力最大,而且在一些通用机器学习会议上也比TensorFlow更受欢迎。
那么,为什么研究人员更倾向于使用PyTorch呢?贺瑞斯认为主要有以下三个原因:
简单易用:PyTorch的设计风格类似于NumPy,具有很强的Python特性,易于与其他Python生态系统集成。
优秀的API设计:相比TensorFlow,大多数研究人员更喜欢PyTorch的API设计。
性能表现:尽管理论上PyTorch的动态图优化机会较少,但有传闻称其性能甚至优于TensorFlow。虽然目前这一点尚未得到证实,但至少TensorFlow在这一方面还没有取得决定性的优势。
目前,PyTorch已经渗透到许多机器学习社区,这意味着更多的研究人员可以方便地找到和使用PyTorch。然而,TensorFlow在Google和DeepMind内部仍然有相当大的用户群体,但由于一些研究人员希望使用其他框架,TensorFlow的地位受到了威胁。此外,PyTorch的强势地位可能会导致谷歌的研究人员与外部研究社区的联系变得更为困难,因为外部研究人员很难在谷歌发布的代码基础上进行进一步开发。
尽管PyTorch在学术界取得了显著进展,但在工业界,TensorFlow仍然是主导框架。根据公开数据,TensorFlow的招聘职位数量多于PyTorch,GitHub上的Star数量也更高,分别为13.7K和7.2K。
那么,为什么PyTorch在工业界没有像在学术界那样受到欢迎呢?主要原因有两个:一是惯性问题,二是技术需求的不同。
首先,TensorFlow出现得比PyTorch早,而工业界采用新技术的速度通常比学术界慢。其次,工业界更加注重性能。对于工业界而言,即使是微小的性能提升也能带来巨大的经济效益,而学术界往往更关注快速实现新想法的能力。
另一个区别在于部署环境。学术研究人员可以在自己的计算机或专门用于研究的服务器集群上进行实验,而工业界则面临更多的限制和要求,例如:
为了满足这些需求,TensorFlow专门设计了TensorFlow Lite和TensorFlow Serving,从而更好地支持移动设备和高性能服务。相比之下,PyTorch在这些方面表现不足,因此大多数公司在实际应用中仍然选择使用TensorFlow。
这种现象反映了当前机器学习框架的发展趋势:PyTorch在学术界占据主导地位,并正努力拓展到工业界;而TensorFlow则试图在不牺牲太多性能的前提下,在学术界发挥更大作用。目前,TensorFlow在工业界的地位仍然稳固,但其发展速度较慢。
未来,PyTorch和TensorFlow的发展将取决于以下几个因素:研究人员的偏好在多大程度上会影响工业界的选择?TensorFlow的Eager模式能否赶上PyTorch的易用性?PyTorch能否快速达到工业应用的标准?谷歌内部的封闭是否会影响其发展?
不仅是框架本身,整个机器学习领域也在快速发展和变化。随着其他计算模型的普及,PyTorch和TensorFlow之间的竞争格局可能会发生变化。无论最终结果如何,我们都应该关注机器学习技术本身的发展,而不是单纯依赖某个特定的框架。
以上就是贺瑞斯的观点,你认同他的看法吗?