The O’Reilly Data Show Podcast 是著名计算机科学出版商 O’Reilly 的在线音频节目。为什么机器学习研究者纷纷开始使用 PyTorch?在这期节目中,The O’Reilly 首席数据科学家 Ben Lorica 和 Facebook AI 研究工程师 Soumith Chintala 做了一番深入的探讨。
Ben Lorica 是 O\’Reilly Media 公司的首席数据科学家,也是 Strata 数据协会和 O\’Reilly 人工智能协会的项目总监。他将商业智能、数据挖掘、机器学习和统计分析技术应用于多种商业环境中,包括直销、消费者和市场研究、针对性广告、文本挖掘和金融工程。他的背景包括投资管理公司,互联网创业公司和金融服务。
本期和我交流的是 Facebook 的 AI 研究工程师
Soumith Chintala (https://www.linkedin.com/in/soumith/)
Chintala 参与了众多机器学习研究项目,是《DCGAN(深卷积生成对抗网络)》幕后团队的成员,这是一篇被广泛引用的论文,介绍了一套用于无监督学习的神经网络架构。我们的对话内容集中在流行的科学计算框架 Torch 的继承者—— PyTorch(http://pytorch.org/)。PyTorch是一个比较新的深度学习框架,正在研究人员中迅速普及。和深度学习框架 Chainer 类似,PyTorch 支持动态计算图,这个功能使 PyTorch 对使用文本与时间序列的研究者和工程师很有吸引力。
下面是我们对话中的一些亮点:
PyTorch 的前世今生
TensorFlow 解决了质量控制和包装的问题。它提供了一种 Theano 风格的编程模式,所以它是一种非常底层的深度学习框架。由于 TensorFlow 本身是非常底层的框架,所以许多基于 TensorFlow 的前端框架应运而生,比如 TF-slim 和 Keras。这样的框架目前有10到15个,仅 Google 就可能有四五个。
Torch 的思想和 Theano 一直略有不同。TensorFlow 是一个更好的 Theano 风格的框架,并且我们在Torch中注入了强制的思想,这意味着你可以立即运行你的计算。调试应该是平稳顺利的,用户在调试过程中不应当遇到难题,无论使用 Python 调试器还是像 GDB 或其他类似的东西。
对于 PyTorch 来说,Chainer 是一个先行者。PyTorch 主要受三个框架启发。在 Torch 社区中,Twitter 的某些研究人员构建了名为 Autograd 的辅助软件包,它实际上是基于 Python 社区中的 Autograd。与 Chainer 类似,Autograd 和 Torch Autograd 都采用了一种称为基于磁带(tape-based)的自动分化技术:就是说,你有一个磁带式录音机来记录你所执行的操作,然后它向后重放,来计算你的梯度。这是除了 PyTorch 和 Chainer 之外的任何其他主要框架都不具备的技术。所有其他框架都使用所谓的静态计算图,即用户构建一个图,然后将该图传递给由框架提供的执行引擎,然后框架会提前分析并执行它。
这些是两种不同的技术。基于磁带的差异化使您更容易调试,并为您提供更强大的某些功能(例如,动态神经网络)。基于静态图形的方法使您可以轻松部署到移动设备,更容易部署到异乎寻常的架构,提前执行编译器技术的能力等等。
Facebook 深入学习框架
在 Facebook 内部,我们有统一的策略:PyTorch 用于所有的研究项目,Caffe 2 用于所有的产品项目。这使得我们更容易区分哪个团队在做什么和哪些工具在做什么。我们看到的是,用户首先创建了一个 PyTorch 模型,当他们准备好将其模型部署到生产中时,他们只需将其转换为可兼容 Caffe 2 的格式,然后就能将其移植到移动设备或其他平台。
PyTorch 用户配置文件
PyTorch 已经被研究人员的广泛采用,并得到了数据科学家的适当回应。但正如我们预期的那样,我们没有得到厂商的采用,因为 PyTorch 模型不容易移植到到移动设备上。当然,也有一些意料之外的用户,比如 OpenAI 和几所大学。
Anatomy. (source: Pixabay)
原题:Why AI and machine learning researchers are beginning to embrace PyTorch
作者:Ben Lorica
本站微信群、QQ群(三群号 726282629):