PyTorch 1.0震撼来袭!

PyTorchv0.4.0正式版发布没几天,Facebook在F8开发者大会第二天宣布将发布PyTorch 1.0,还提前展示了这款新框架的特性。

前戏

深度学习框架Caffe和Caffe2的作者,现Facebook AI科学家 贾扬清博士在知乎上发文“Caffe2 + PyTorch = PyTorch 1.0”,即对此事件作出了阐述。

链接:https://zhuanlan.zhihu.com/p/36353529

这么重磅的新闻,知乎怎么会错过?来看看话题下大佬们的精彩发言

知乎话题:如何评价 PyTorch 1.0 Roadmap?

链接:https://www.zhihu.com/question/275682850

正文

链接:https://pytorch.org/2018/05/02/road-to-1.0.html

Dear PyTorch Users,

We would like to give you a preview of the roadmap for PyTorch 1.0 , the next release of PyTorch. Over the last year, we’ve had 0.2, 0.3 and 0.4 transform PyTorch from a [Torch+Chainer]-like interface into something cleaner, adding double-backwards, numpy-like functions, advanced indexing and removing Variable boilerplate. At this time, we’re confident that the API is in a reasonable and stable state to confidently release a 1.0.

However, 1.0 isn’t just about stability of the interface.

One of PyTorch’s biggest strengths is its first-class Python integration, imperative style, simplicity of the API and options. These are aspects that make PyTorch good for research and hackability.

One of its biggest downsides has been production-support. What we mean by production-support is the countless things one has to do to models to run them efficiently at massive scale:

exporting to C++-only runtimes for use in larger projects

optimizing mobile systems on iPhone, Android, Qualcomm and other systems

using more efficient data layouts and performing kernel fusion to do faster inference (saving 10% of speed or memory at scale is a big win)

quantized inference (such as 8-bit inference)

Startups, large companies and anyone who wants to build a product around PyTorch have asked for production support. At Facebook (the largest stakeholder for PyTorch) we have Caffe2, which has been the production-ready platform, running in our datacenters and shipping to more than 1 billion phones spanning eight generations of iPhones and six generations of Android CPU architectures. It has server-optimized inference on Intel / ARM, TensorRT support, and all the necessary bits for production. Considering all this value locked-in to a platform that the PyTorch team works quite closely with,we decided to marry PyTorch and Caffe2 which gives the production-level readiness for PyTorch.

Supporting production features without adding usability issues for our researchers and end-users needs creative solutions.

高潮

下面翻译自Caffe2 + PyTorch = PyTorch 1.0

链接:https://zhuanlan.zhihu.com/p/36353529

面向研究和生产的PyTorch 1.0发布

由于历史原因,人工智能(AI)从研究到生产的开发过程中涉及多个步骤和工具,这使得测试、部署以及迭代改进准确性和性能变得非常耗时和复杂。为了帮助加速和优化这个过程,我们引入了PyTorch 1.0,这是我们开源AI框架的下一个版本。

PyTorch 1.0吸取了Caffe2和ONNX的模块化以及面向生产的特点,并将它们与PyTorch现有的灵活以及注重研究的设计结合起来,使得各项AI项目能从研究原型快速无缝衔接到生产部署。PyTorch 1.0拥有能在命令式执行模式和声明式执行模式之间无缝转换的混合前端,这使得AI开发人员可以同时做到快速验证和优化性能。PyTorch 1.0中的技术已经为大量Facebook产品和服务提供了支持,其中包括每天执行60亿次文本翻译。

PyTorch 1.0的测试版将在未来几个月内推出,并将包括一系列工具、库、预训练模型和每个开发阶段所需要的数据集,使社区能够大规模地快速创建和部署新的AI创新应用。

从研究到生产的路径

PyTorch的命令式前端通过其灵活而高效的编程模型实现了更快速的原型设计和实验。 PyTorch的第一个版本是在一年前推出的,它的速度、生产力和支持动态图形等尖端AI模型的能力使其迅速成为广受人工智能研究人员欢迎的重要开发工具。它已经被下载超过110万次,是arxiv上个月引用次数第二高的深度学习框架。例如,加州大学伯克利分校的计算机科学家将PyTorch的动态图功能应用于他们的CycleGAN(图像到图像转换)工作中。

尽管当前版本的PyTorch为AI研发和部署提供了很大的灵活性,但由于与Python的紧密关系,在大规模的生产环境中性能有时是一项挑战。我们经常需要将研究代码 ,无论是训练脚本还是训练模型, 翻译成Caffe2中的图表达,以达到生产性能需要。 Caffe2基于图(graph)的执行器允许开发人员利用最先进的性能优化方法,比如图转换,高效的内存重用以及紧密的硬件接口集成。 Caffe2项目是两年前推出的,目的是将我们的AI生产工具标准化,目前全球各地的Facebook服务器和超过10亿部手机通过Caffe2运行神经网络,其中包含了八代iPhone和六代Android CPU架构。今天,Caffe2利用其经过优化的生产效率,每天在所有的或大或小的模型上提供超过200万亿次的预测。

从PyTorch迁移到Caffe2以转换到生产环境是一个手动过程,耗时且易出错。为了解决这个问题,我们与主要的硬件和软件公司合作开发了ONNX(开放式神经网络交换),这是一种开放的表达深度学习模型的格式。借助ONNX,开发人员可以在不同框架之间共享模型,例如,导出使用PyTorch构建的模型并将其导入Caffe2。在Facebook上,这使得我们能在AI研究、训练和大规模服务器和移动设备上的部署之间平滑转换。

我们已经使用这些工具(PyTorch,Caffe2和ONNX)来构建和部署Translate,该工具现在可以支持Facebook上48种最常用语言的翻译。在虚拟现实中,这些工具对于将Oculus的新研究成功部署到生产环境中至关重要,这可以使虚拟形象更加逼真。

尽管三种不同工具的这种组合是有效的,但仍然存在复杂且耗时的手动步骤。它不允许我们无缝地将新的人工智能研究创新带入生产过程,就像我们期望的那样。

在一个框架中统一研究和生产能力

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工具。其中包括翻译,一个PyTorch语言库,用于快速,灵活的神经机器翻译,以及下一代ELF,这是一个综合的AI推理应用游戏平台。开发人员还可以利用像Glow这样的机器学习编译器工具,Glow可以加速框架在不同硬件平台上的性能,还可以使用Tensor Comprehensions这种自动从高级数学运算生成高效GPU代码的工具。我们还开放了其他库,如Detectron,它支持目标检测研究,涵盖边界框和目标实例分割输出。请访问我们的AI开发者网站facebook.ai/developers获取完整列表,并在PyTorch和Caffe2博客中了解更多关于PyTorch的信息。

在接下来的几个月中,我们将重构和统一Caffe2和PyTorch 0.4框架的代码库,以删除重复的组件并共享抽象。其结果将是一个统一的框架,支持高效的图模式执行、移动部署、广泛的供应商集成等等。与ONNX等其他开放AI计划一样,我们也与其他公司和社区合作,为更多开发者提供这些加速研究的生产能力。首先,Microsoft计划在他们的Azure云和开发人员产品中支持PyTorch 1.0,包括Azure机器学习服务和数据科学虚拟机,Amazon Web Services目前支持最新版本的PyTorch,并针对P3 GPU进行了优化,并计划在其云产品中提供在PyTorch 1.0服务,其中包括其深度学习AMI(Amazon Machine Image)。

这只是开始,因为我们希望创建和分享更好的AI编程模型、接口和自动优化。 现在AI是Facebook的基础技术,它使得Facebook的现有产品更好,并为全新的体验提供动力。通过论文、代码和模型开放我们的工作,我们可以与所有人工智能研究和从业人员合作,以更快地推进现有技术水平并帮助以新方式应用这些技术。

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

扫码关注云+社区

领取腾讯云代金券