来源|极客时间《极客视点》
2019 年,机器学习框架之争进入了新阶段:PyTorch 与 TensorFlow 成为最后两大玩家。那么,二者谁将引领未来?近日,开源中国编译了贺瑞斯(Horace He)的一篇文章,他发现 PyTorch 在学界愈发吃香,而业界的首选仍是 TensorFlow。以下是重点内容。
一、PyTorch 在研究领域不断提高主导地位
2018 年,顶级研究会议上使用 PyTorch 的论文还比较少,不过在 2019 年,使用 PyTorch 的论文变得多了起来。其中,CVPR 会议使用的 PyTorch 论文占 69%,NAACL 和 ACL 会议中的使用率均占 75%以上,在 ICLR 和 ICML 会议中也有 50%以上的使用率。可以看出,PyTorch 在视觉和语言类会议上的统治地位最强,在诸如 ICLR 和 ICML 之类的通用机器学习会议上也比 TensorFlow 更受欢迎。
那么为什么研究人员如此青睐 PyTorch 呢?贺瑞斯认为主要有以下三点原因:
1. 简单。它与 NumPy 类似,非常具有 Python 风格,并且可以轻松地与其他 Python 生态系统集成。
2. 很棒的 API。与 TensorFlow 的 API 相比,大多数研究人员更喜欢 PyTorch 的 API。
3. 性能。尽管事实上 PyTorch 的动态图提供的优化机会很少,不过,据传闻 PyTorch 的速度甚至快于 TensorFlow。目前尚不清楚这是否为实,但至少 TensorFlow 在这一领域还没有取得决定性优势。
目前 PyTorch 已经覆盖到很多机器学习社区,这意味着 PyTorch 实现将更容易找到,人们也更有动力在 PyTorch 中发布代码。当然,TensorFlow 在 Google/DeepMind 中还是会拥有一定的受众群体,但它的地位仍受到威胁,因为有人抱怨说谷歌内部的许多研究人员都希望使用 TensorFlow 以外的框架。
此外,PyTorch 的统治地位很可能会切断谷歌研究人员与其他研究社区的联系。他们不仅难以在外部研究的基础上进行构建,而且外部研究人员也不太可能在谷歌发布的代码基础上进行构建。
二、TensorFlow 仍然是行业内部的主导框架
尽管 PyTorch 目前在研究中占据重要地位,但 TensorFlow 仍然是行业内部的主导框架。根据公开数据,TensorFlow 的招募职位多于 PyTorch,此外,TensorFlow 在 GitHub 有 13.7K 标星,而 PyTorch 只有 7.2K。
PyTorch 在业界为什么没有取得与学界同等的受欢迎程度呢?首要答案是一贯性。TensorFlow 早于 PyTorch 出现,而且行业采用新技术的速度比研究人员要慢。
其次是因为 TensorFlow 在生产方面更胜 PyTorch 一筹,这就要从研究人员和行业的不同需求讲起。研究人员关心他们能够以多快的速度进行研究,该研究通常是在相对较小的数据集上运行的。通常,这与性能方面的考虑无关,而是依靠他们快速实施新想法的能力来决定。与之相反,业界认为性能是重中之重。将运行时间提高 10%对研究人员而言意义不大,但对公司来说,这可以直接节省数百万美元的费用。
另一个区别在于部署。研究人员在自己的计算机或专用于运行研究工作的服务器集群上进行实验。行业则有很多限制和要求,比如以下三个方面:
No Python。一些公司会运行服务器,这些服务器的 Python 运行时开销太大。移动。无法在移动二进制文件中嵌入 Python 解释器。服务。要求功能全面,例如无停机更新模型、在模型之间无缝切换、在预测时进行批处理等。
TensorFlow 恰巧专门针对这些要求而构建,并为这些问题提供了解决方案:图形格式和执行引擎本来就不需要 Python,并且 TensorFlow Lite 和 TensorFlow Serving 能够分别解决移动和服务注意事项。
而 PyTorch 未能满足这些要求,因此大多数公司目前在生产中使用 TensorFlow。
三、机器学习框架的现状
上述现象折射出机器学习框架的当前状态:PyTorch 拥有研究市场,并且正在尝试扩展到行业领域;TensorFlow 试图在不牺牲太多生产力的情况下,在研究界中尽其所能,它目前在行业中根深蒂固,且行业发展较为缓慢。
PyTorch 和 TensorFlow 的未来将取决于谁能更好地回答以下问题,如:研究人员的偏好会在多大程度上影响行业?TensorFlow 的 Eager 模式能否赶上 PyTorch 的可用性?PyTorch 可以多快达到生产状态?谷歌在行业中的孤立会使自身受到伤害吗?
不仅框架在快速发展,机器学习研究本身也处于不断变化的状态。随着另一种计算模型的普及,也许 PyTorch 和 TensorFlow 之间的竞争将变得无关紧要。我们应当将焦点维持在机器学习本身上,无论是喜欢 TensorFlow 还是 PyTorch,试图使机器学习软件达到最佳状态就好。
以上就是贺瑞斯的观点,你是否认同呢?
点击链接,阅读更多文章!