本文将探讨当前两种最流行的深度学习框架PyTorch和TensorFlow之间的差异,以及在年到底应该选择哪一种框架。
PyTorch和TensorFlow是目前最受欢迎的两种深度学习框架,各自拥有众多的支持者,但是它们的优劣一直是一个争议性的话题。然而,这个话题的讨论随着时间的推移也在不断变化,因为这两种框架都在不断发展壮大,而旧的或不完整的信息则使得这个话题变得更加复杂。
尽管TensorFlow被认为是面向工业应用的框架,而PyTorch则被认为是面向科研的框架,但这些观念部分源于过时的信息。到了年,我们会发现这个话题的讨论变得更加细致,让我们来探讨一下它们之间的差异吧。
实用考虑
PyTorch和TensorFlow都有各自独特的开发故事和复杂的设计决策历史。过去,这使得比较这两个框架变成了一场关于它们当前的特性和预期特性的复杂技术讨论。但是,由于两种框架的发展迅速,许多这些技术差异在这一点上已经成为了陈旧的遗物。对于那些不想让自己的眼睛变得模糊的人来说,PyTorch和TensorFlow的争论现在主要涉及三个实用考虑:
模型可用性:随着深度学习领域每年扩展,模型的规模也越来越大,从头开始训练最先进的模型已经不再可行。幸运的是,有很多最先进的模型是公开可用的,因此在可能的情况下利用这些模型是很重要的。
部署基础设施:训练表现良好的模型是毫无意义的,如果它们无法被使用。降低部署时间对于越来越流行的微服务业务模型至关重要;高效的部署可以成就许多以机器学习为核心的企业。
生态系统:深度学习不再局限于高度受控制的特定用例。人工智能正在注入力量到众多行业中,因此框架应该坐落于一个更大的生态系统之中,以促进为移动、本地和服务器应用程序的开发。此外,专用的机器学习硬件的出现,例如Google的EdgeTPU,意味着成功的从业人员需要使用能够与这些硬件很好地集成的框架。
我们将依次探讨这三个实用考虑,然后提供我们在不同领域使用哪种框架的建议。
PyTorchvsTensorFlow-模型可用性
从头开始实现一个成功的深度学习模型可能是一项非常棘手的任务,特别是对于像NLP这样的应用程序,其中工程和优化都很困难。SOTA模型的复杂性使得对于小型企业来说,训练和调整这些模型几乎是不切实际的,甚至是不可能的任务。OpenAI的GPT-有超过亿个参数,而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%还要少)。此外,在2年中添加了超过4.5万个PyTorch独占模型,而TensorFlow独占模型仅添加了约4千个。
如果我们只