新版PyTorch发布在即,融合Caffe2、ONNX

AI 科技评论按:上个月,

Caffe2 代码正式并入 PyTorch

,就在今天,Facebook AI 系统与平台部(AI Infra and Platform)副总 Bill Jia 发文表示,PyTorch 1.0 发布在即,全新的版本融合了 Caffe2 和 ONNX 支持模块化、面向生产的功能,并保留了 PyTorch 现有的灵活、以研究为中心的设计。Caffe2 作者贾扬清也在知乎表示,这篇文章是他对「如何看待 Caffe2 代码并入 PyTorch」的最新回答。

AI 科技评论将正文编译整理如下:

纵观人工智能的发展之路,从研究到生产涉及到多个步骤和工具,为了提高系统的准确性和性能,需要不停测试新方法,不断进行部署和迭代,这一过程非常费时和复杂。

为了加速和优化这一流程,我们推出 PyTorch 1.0,它是 PyTorch 的最新版本。

PyTorch 1.0 结合了 Caffe2 和 ONNX 模块化、面向生产的性能,并将这些性能与 PyTorch 现有的灵活、以研究为中心的设计结合在一起,为从研究原型设计到生产部署大量 AI 项目提供快速、无缝的路径。

有了 PyTorch 1.0,AI 开发者可以通过混合前端在命令式和声明式执行模式之间无缝转换,从而快速实验、优化性能。

PyTorch 1.0 中的技术已经为大量 Facebook 产品和服务赋能,包括每天 60 亿次的文本翻译。

我们将在未来几个月内推出 PyTorch 1.0 测试版,会发布一系列工具、库、预训练模型、每个开发阶段的数据集,使得社群能大规模地快速创建和部署新的 AI 产品。

从研究到生产之路

得益于 PyTorch 命令式前端灵活和高效的编程模型,大家可以更快速地进行原型设计和实验。

PyTorch 初版在一年多前推出,它的速度、生产力和支持动态图等前沿 AI 模型的优点,使它成为 AI 研究人员中流行和重要的开发工具。

它的下载量超过 110 万次,是上个月在 arxiv 上引用次数排名第二的深度学习框架,加州大学伯克利分校的计算机科学家们曾将 PyTorch 的动态图功能用于他们瞩目的 CycleGAN 图像转换研究中。

图: 利用 PyTorch 实现 CycleGAN 图像转换

尽管当前版本的 PyTorch 为 AI 研究和开发提供了很大的灵活性,但考虑到它与 Python 的紧密耦合,在大规模生产上想要保持高性能是个挑战。

我们经常需要将研究代码——训练脚本或训练好的模型——转换成 Caffe2 中的图表示,以便大规模生产。Caffe2 基于图的 executor 为开发人员提供最先进的优化功能,如图转换、高效内存重用和紧密的硬件接口集成。

Caffe2 项目于两年前启动,旨在规范我们的 AI 生产工具。现在 Facebook 的服务器正在用 Caffe2 运行神经网络,此外,全球范围内有超过 10 亿部手机(包括第八代 iPhone 和第 6 代 Android CPU)上都有用到 Caffe2。

今天,Caffe2 在所有模型上的预测量每天超过 200 万亿,无论模型大小,都能实现最优的生产性能。

在过去,从 PyTorch 到 Caffe2 之间迁徙,进行传送和生产,是时间密集型的人工过程,容易出错。为了解决这个问题,我们与一些硬件和软件公司合作推出了 ONNX(Open Neural Network Exchange),这是一种表示深度学习模型的开放格式。

有了 ONNX,开发人员可以在不同框架之间共享模型,例如,导出在 PyTorch 中构建的模型,并将它们导入到 Caffe2 中。这使得 Facebook 能在大规模服务器和移动端部署时更流畅地进行 AI 研究、训练和推理。

我们已经使用了这些工具(PyTorch、Caffe2 和 ONNX)来构建和部署 Translate,Translate 已经在大规模使用——帮助翻译 Facebook 上 48 种最常用的语言。

另外还有 VR,这些工具已经在 Oculus 的产品上应用,在新研究的部署上起到至关重要的作用,可以使得虚拟化身更加真实。

尽管将这三种工具进行组合很有效,但仍然存在一些极其复杂和耗时的人工步骤,我们仍然不能无缝将新的 AI 研究创新带到生产中。

集研究和生产于一身的框架

PyTorch 1.0 融合了即时和图执行模式,支持灵活研究和生产性能优化。更具体地说,PyTorch 1.0 提供了一个混合前端,使大家能够无缝在即时模式的原型设计和图执行模式的生产间共享大部分代码,而不是非得要开发人员重写整套代码,以从 Python 中优化或迁移。

此外,ONNX 也与 PyTorch 1.0 进行了融合,大家可以在 PyTorch 1.0 模型与其他 AI 框架间进行互操作。

ONNX 还作为加速运行或特定硬件库的集成接口,这使得开发人员可以自由混合和匹配最好的 AI 框架和工具,而不需要使用资源密集型的定制工程。

Facebook 致力于让 ONNX 支持新特征和功能,ONNX 仍然是一种强大的开放格式,也是运用 PyTorch 1.0 进行开发的重要部分。

构建端到端深度学习系统

除了 PyTorch 1.0,我们还将开源许多我们目前频繁使用的 AI 工具,包括 Translate——一个 PyTorch 库——用于快速、灵活的神经机器翻译,新一代 ELF——一个用于 AI 推理应用的综合游戏平台。

开发人员还可以使用类似 Glow(一种机器学习编译器,可以在不同硬件平台上提升框架性能)的工具,还有 Tensor Comprehensions(从高级数学运算中自动生成高效 GPU 代码的工具)。

我们也开源了其他库,比如 Detectron,它用于对象检测研究,可以输出边框和对象实例分割结果。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180503A10LEO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励