本文将探讨当前两种最流行的深度学习框架PyTorch和TensorFlow之间的差异,以及在2023年到底应该选择哪一种框架。
PyTorch和TensorFlow是目前最受欢迎的两种深度学习框架,各自拥有众多的支持者,但是它们的优劣一直是一个争议性的话题。然而,这个话题的讨论随着时间的推移也在不断变化,因为这两种框架都在不断发展壮大,而旧的或不完整的信息则使得这个话题变得更加复杂。
尽管TensorFlow被认为是面向工业应用的框架,而PyTorch则被认为是面向科研的框架,但这些观念部分源于过时的信息。到了2023年,我们会发现这个话题的讨论变得更加细致,让我们来探讨一下它们之间的差异吧。
实用考虑
PyTorch和TensorFlow都有各自独特的开发故事和复杂的设计决策历史。过去,这使得比较这两个框架变成了一场关于它们当前的特性和预期特性的复杂技术讨论。但是,由于两种框架的发展迅速,许多这些技术差异在这一点上已经成为了陈旧的遗物。对于那些不想让自己的眼睛变得模糊的人来说,PyTorch和TensorFlow的争论现在主要涉及三个实用考虑:
模型可用性:随着深度学习领域每年扩展,模型的规模也越来越大,从头开始训练最先进的模型已经不再可行。幸运的是,有很多最先进的模型是公开可用的,因此在可能的情况下利用这些模型是很重要的。
部署基础设施:训练表现良好的模型是毫无意义的,如果它们无法被使用。降低部署时间对于越来越流行的微服务业务模型至关重要;高效的部署可以成就许多以机器学习为核心的企业。
生态系统:深度学习不再局限于高度受控制的特定用例。人工智能正在注入力量到众多行业中,因此框架应该坐落于一个更大的生态系统之中,以促进为移动、本地和服务器应用程序的开发。此外,专用的机器学习硬件的出现,例如Google的Edge TPU,意味着成功的从业人员需要使用能够与这些硬件很好地集成的框架。
我们将依次探讨这三个实用考虑,然后提供我们在不同领域使用哪种框架的建议。
PyTorch vs TensorFlow - 模型可用性
从头开始实现一个成功的深度学习模型可能是一项非常棘手的任务,特别是对于像NLP这样的应用程序,其中工程和优化都很困难。SOTA模型的复杂性使得对于小型企业来说,训练和调整这些模型几乎是不切实际的,甚至是不可能的任务。OpenAI的GPT-3有超过1750亿个参数,而GPT-4将有超过1万亿个参数。初创企业和研究人员都没有计算资源来自行使用和探索这些模型,所以访问预训练模型以进行迁移学习、微调或开箱即用的推断是非常有价值的。
在模型可用性领域,PyTorch和TensorFlow存在明显的差异。PyTorch和TensorFlow都拥有自己的官方模型仓库,如下面的生态系统部分所述,但从其他来源获取模型也是很重要的。让我们来定量了解一下每种框架的模型可用性。
HuggingFace
HuggingFace使得在你的管道中将经过训练和调整的SOTA模型整合起来只需要几行代码。
当我们比较PyTorch和TensorFlow的HuggingFace模型可用性时,结果非常惊人。下面我们可以看到一张图表,显示了HuggingFace上可用的PyTorch和TensorFlow独占模型的总数,以及同时适用于两种框架的模型的总数。从图中可以看出,PyTorch独占模型的数量绝对压倒了TensorFlow。几乎92%的模型是PyTorch独占的,比去年增加了85%,相比之下,只有约8%是TensorFlow独占的,所有TensorFlow的模型只占总模型的14%(比去年的16%还要少)。此外,在2022年中添加了超过4.5万个PyTorch独占模型,而TensorFlow独占模型仅添加了约4千个。
如果我们只关注HuggingFace上最受欢迎的30个模型,那么我们会看到更有趣的结果。虽然所有模型都可用于PyTorch,但没有一个是TensorFlow独占的,就像去年一样。但是,可用于两种框架的模型数量从19个增加到了23个,这表明可能对最受欢迎的模型进行了TensorFlow覆盖。
研究论文
对于研究人员来说,拥有最近发表的论文中的模型非常重要。尝试在不同框架中重新创建想要探索的新模型会浪费宝贵的时间,因此能够克隆一个存储库并立即开始实验意味着您可以专注于重要的工作。
鉴于PyTorch是事实上的研究框架,我们预计在整个研究界中观察到我们在HuggingFace上观察到的趋势。我们汇总了过去几年八个顶级研究期刊的数据,制成了下面的图表,显示了使用PyTorch或TensorFlow的论文比例。如图所示,PyTorch的使用是非常迅速的,在短短几年内,从只有7%的论文使用到几乎80%的论文使用PyTorch或TensorFlow。
很大程度上,这种快速采用的原因是由于TensorFlow 1的困难在研究环境中被加剧,导致研究人员寻找新的替代品PyTorch。虽然TensorFlow 2的许多问题得到了解决,但是PyTorch的势头已经足够强大,以至于它保持着作为研究中心的框架的地位,至少从社区的角度来看。
如果我们看一下迁移框架的研究人员的比例,我们会发现相同的模式。当我们查看2018年和2019年使用PyTorch或TensorFlow的作者发表的论文时,我们发现使用TensorFlow的作者中,大多数在2019年转向使用PyTorch(55%),而使用PyTorch的作者中,大多数在2019年仍然使用PyTorch(85%)。下面的桑基图表明这些数据代表了2018年每个框架用户的比例,而不是总数。