这是 Facebook AI 博客上原始博客文章的部分重新发布。完整文章可以在此查看
自从几个月前发布以来,PyTorch 1.0 已迅速被采用为一种强大、灵活的深度学习平台,使工程师和研究人员能够快速从研究过渡到生产。我们正在强调 AI 工程和研究社区使用 PyTorch 1.0 的一些方式。我们还分享了关于最新版本 PyTorch 1.1 的新细节,并展示了社区创建的一些新开发工具。
在 PyTorch 2017 年首次发布的基础上,我们与 AI 社区合作,于去年 12 月发布了 PyTorch 1.0 的稳定版本。PyTorch 1.0 在开源库的核心功能的基础上进行了扩展,增加了 PyTorch JIT(即时编译)功能,它可以在急切模式和图模式之间无缝切换,以提供灵活性和速度。
跨行业领先企业正开始使用 PyTorch 来促进他们的研究,并将其大规模部署到翻译、计算机视觉、对话界面、药物研究、工厂优化和自动驾驶研究等应用中。PyTorch 的社区采用率也在持续扩大。斯坦福大学、加州大学伯克利分校、加州理工学院等大学正在将 PyTorch 作为机器学习(ML)课程的基本工具;已启动新的生态系统项目以支持 PyTorch 的开发;主要云平台也扩展了与 PyTorch 的集成。
在跨行业中使用 PyTorch
许多领先企业正在转向 PyTorch 1.0 以加速新人工智能系统的开发和部署。以下是一些例子:
- Airbnb 利用 PyTorch 丰富的库和 API 进行对话人工智能,并部署了智能回复,以帮助公司的服务代表更有效地回应客户。
- ATOM 正在构建一个平台,以比传统方法更快、更有效地生成和优化新的药物候选者。通过使用 PyTorch 等机器学习框架,ATOM 能够设计一个变分自动编码器来表示不同的化学结构并设计新的药物候选者。
- Genentech 正在利用 PyTorch 灵活的控制结构和动态图来训练深度学习模型,这将有助于个性化癌症疗法的研究开发。
- 微软在其整个组织中使用 PyTorch 来开发大规模的机器学习模型,并通过 ONNX Runtime 进行部署。使用 PyTorch,微软认知部门构建了可扩展到数十亿词汇的分布式语言模型,这些模型现在已在认知服务等产品中投入生产。
- 丰田研究院(TRI)正在开发两种自动驾驶技术,即丰田守护者和丰田司机技术。TRI 的机器学习团队正在创建新的深度学习算法,以利用丰田每年 1000 万辆的销售数据优势。PyTorch 的灵活性大大加快了他们的探索速度,其新的生产特性将使他们的安全关键应用部署更快。
随着 PyTorch 1.0 在 2018 年 12 月的发布,我们现在宣布 v1.1 版本的可用性,该版本提高了性能,增加了新的模型理解和可视化工具以改善可用性,并提供了新的 API。
PyTorch v1.1 的关键特性包括:
- TensorBoard:PyTorch 原生支持 TensorBoard,这是一个用于检查和理解训练运行和图的 Web 应用程序套件。PyTorch 现在通过简单的“from torch.utils.tensorboard import SummaryWriter”命令原生支持 TensorBoard。
- JIT 编译器:即时编译(JIT)的改进。这包括各种错误修复以及在 TorchScript 中扩展的功能,例如支持字典、用户类和属性。
- 新 API:支持布尔张量以及更好的自定义循环神经网络支持。
- 分布式训练:提高了常见模型(如 CNN)的性能,增加了对多设备模块的支持,包括在仍使用分布式数据并行(DDP)的同时将模型分割到 GPU 上的能力,以及对不是每次迭代都使用所有参数的模块(例如控制流,如自适应 softmax 等)的支持。请参阅最新的教程。
我们还继续与社区合作,培育旨在支持机器学习工程师的项目和工具,满足从改进模型理解到使用 AutoML 方法进行自动调优等需求。随着 Ax 和 BoTorch(如下所示)的发布,我们将分享一些核心算法,包括基于历史任务的元学习,以有效地优化超参数。我们期待看到这项工作开源,供社区构建。
本生态系统包括已部署到生产规模的开放源代码项目和工具,以及与我们拥有相同开放和协作 AI 社区愿景的行业领导者合作的产品和服务。以下是一些最新的工具:
- BoTorch:BoTorch 是一个基于 PyTorch 构建的研究框架,用于提供贝叶斯优化,这是一种针对成本高昂的评估黑盒函数的样本高效技术。
- Ax:Ax 是一个机器学习平台,用于管理自适应实验。它使研究人员和工程师能够系统地探索大型配置空间,以优化机器学习模型、基础设施和产品。
- PyTorch-BigGraph:PBG 是一个分布式系统,用于创建包含数十亿实体和数万亿边的超大型图的嵌入。它包括对分片和负采样的支持,并提供基于维基数据嵌入的示例用例。
- Google AI 平台笔记本:AI 平台笔记本是 Google Cloud Platform 提供的一项新的托管 JupyterLab 服务。数据科学家可以快速创建预装最新版 PyTorch 的虚拟机运行 JupyterLab。它还与 GCP 服务(如 BigQuery、Cloud Dataproc、Cloud Dataflow 和 AI Factory)紧密集成,使得在 JupyterLab 中执行完整的机器学习周期变得非常方便。
我们也非常高兴看到来自更广泛的 PyTorch 社区的许多有趣的新项目。亮点包括:
- BigGAN-PyTorch:这是一个完整的 PyTorch 重实现,使用梯度累积在最多四个 GPU 上提供大批次的益处。
- GeomLoss:一个定义 PyTorch 层用于采样度量、图像和体积之间几何损失函数的 Python API。它包括 MMD、Wasserstein、Sinkhorn 等。

- PyTorch Geometric:一个为 PyTorch 提供的深度学习扩展库,它从各种已发表的论文中提供了多种在图和其他不规则结构(也称为几何深度学习)上进行深度学习的方法。
- Curve-GCN:一种使用端到端训练的图卷积网络(GCN)的实时、交互式图像标注方法。它支持通过多边形或样条曲线进行对象标注,从而提高线性和曲线对象的标注效率。Curve-GCN 的运行速度比传统的 Polygon-RNN++方法快 10 倍。
Udacity、fast.ai 等开发新的 PyTorch 资源
PyTorch 非常适合用于机器学习开发的教学,因为它通过其灵活的动态编程环境和用户友好的 Pythonic 接口,能够实现快速实验。此外,Google Colab 现在提供了一个原生支持 PyTorch 的交互式 Jupyter Notebook 环境,允许开发者免费使用 CPU 和 GPU 资源立即运行任何 PyTorch 教程。
大学级别的课程——包括斯坦福 NLP、加州大学伯克利分校计算机视觉和加州理工学院机器人课程——现在正在 PyTorch 上授课。此外,大规模开放在线课程(MOOCs)正在培训成千上万的 PyTorch 新开发者。
今天,我们宣布推出一门新的 Udacity 课程,该课程基于去年推出的《深度学习入门》课程。这门新课程由牛津大学和 OpenMined 的 Andrew Trask 教授主讲,涵盖了围绕人工智能隐私的重要概念,包括差分隐私和联邦学习等方法。Facebook 还将提供奖学金,以支持学生在 Udacity 的完整纳米学位项目中继续他们的机器学习教育。
fast.ai 社区也在持续投入精力和资源到 PyTorch 上。6 月份,fast.ai 将推出一门名为《从基础到深度学习》的新课程,该课程将向开发者展示如何从头编写矩阵乘法到训练和实现最先进的 ImageNet 模型的全过程。课程将深入探讨 PyTorch 和 fast.ai 库中方法的底层实现,并使用代码解释和展示这些方法背后的学术论文。
作为课程的一部分,fast.ai 还将发布新的软件模块,包括 fastai.audio,它将 fast.ai 的深度抽象和精选算法的强大功能引入新的 PyTorch.audio 模块,并展示如何使用 fastai.vision 从老电影、尖端显微镜序列等材料中创建令人惊叹的高分辨率视频。此外,fast.ai 还贡献了其新的 X-ResNet 模块,包括一系列在 ImageNet 上预训练的模型。
PyTorch 入门指南
每个人都可以通过访问 pytorch.org 并启动 Colab 中的教程,立即开始使用 PyTorch 进行实验——无论是新接触机器学习开发的人,还是寻求加速其端到端工作流程的研究人员和工程师。同时,也有许多简单的方法在本地和流行的云平台上开始使用。