跳转到主要内容
博客

PyTorch 达到生产规模,新增开发工具

作者: 2019 年 5 月 1 日2024 年 11 月 16 日暂无评论

这是 Facebook AI 博客上原始博文的部分转载。完整博文可在此处查看

自几个月前发布以来,PyTorch 1.0 已迅速被采纳为一个强大、灵活的深度学习平台,使工程师和研究人员能够快速从研究转向生产。我们正在重点介绍 AI 工程和研究社区使用 PyTorch 1.0 的一些方式。我们还将分享有关最新版本 PyTorch 1.1 的新细节,并展示社区创建的一些新开发工具。

在 2017 年 PyTorch 初次发布的基础上,我们与 AI 社区合作,于去年 12 月发布了 PyTorch 1.0 稳定版。除了增强的面向生产的功能和与领先云平台的深度集成外,PyTorch 1.0 还扩展了开源库的核心功能,增加了 PyTorch JIT(即时编译),可在 Eager 模式和图模式之间无缝切换,以提供灵活性和速度。

各行各业的领先企业都开始使用 PyTorch 来促进其研究,然后大规模部署到翻译、计算机视觉、对话界面、药物研究、工厂优化和自动驾驶研究等应用中。PyTorch 的社区采用率也持续增长。斯坦福大学、加州大学伯克利分校、加州理工学院和其他大学正在将 PyTorch 作为其机器学习 (ML) 课程的基础工具;新的生态系统项目已启动,以支持 PyTorch 上的开发;主要云平台也扩大了与 PyTorch 的集成。

跨行业使用 PyTorch

许多领先企业正在转向 PyTorch 1.0,以加速新 AI 系统的开发和部署。以下是一些示例

  • Airbnb 利用 PyTorch 丰富的库和 API 进行对话式 AI,并部署了智能回复以帮助公司服务代理更有效地回复客户。
  • ATOM 正在构建一个平台,以显著更快、更成功地生成和优化新的候选药物,优于传统流程。ATOM 使用 PyTorch 等机器学习框架,设计了一个变分自编码器,用于表示不同的化学结构和设计新的候选药物。
  • Genentech 正在利用 PyTorch 灵活的控制结构和动态图来训练深度学习模型,这将有助于开发个性化癌症疗法。
  • 微软正在其组织内使用 PyTorch 大规模开发 ML 模型,并通过 ONNX Runtime 部署它们。通过使用 PyTorch,Microsoft Cognition 已构建了可扩展到数十亿词的分布式语言模型,目前已在 Cognitive Services 等产品中投入生产。
  • 丰田研究院 (TRI) 正在通过 Toyota Guardian 和 Toyota Chauffeur 技术开发自动驾驶的双管齐下方法。TRI 的机器学习团队正在创建新的深度学习算法,以利用丰田每年 1000 万销量的巨大数据优势。PyTorch 的灵活性大大加快了他们的探索速度,其新的生产功能将使他们的安全关键型应用程序能够更快地部署。

继 2018 年 12 月发布 PyTorch 1.0 之后,我们现在宣布 v1.1 已发布,它提高了性能,增加了新的模型理解和可视化工具以提高可用性,并提供了新的 API。

PyTorch v1.1 的主要功能包括

  • TensorBoard:对 TensorBoard 的一流原生支持,用于可视化和模型调试。TensorBoard 是一个用于检查和理解训练运行和图表的 Web 应用程序套件。PyTorch 现在通过简单的“from torch.utils.tensorboard import SummaryWriter”命令原生支持 TensorBoard。
  • JIT 编译器:对即时 (JIT) 编译的改进。这些包括各种错误修复以及 TorchScript 中扩展的功能,例如支持字典、用户类和属性。
  • 新 API:支持布尔张量和更好地支持自定义循环神经网络。
  • 分布式训练:提高了 CNN 等常见模型的性能,增加了对多设备模块的支持,包括在仍然使用分布式数据并行 (DDP) 的同时将模型拆分到多个 GPU 的能力,以及支持并非所有参数都用于每次迭代的模块(例如控制流,如自适应 softmax 等)。请参阅此处的最新教程。

我们还继续与社区合作,培养旨在支持 ML 工程师的项目和工具,以满足从改进模型理解到使用 AutoML 方法进行自动调整的需求。随着 Ax 和 BoTorch(下文)的发布,我们将分享我们的一些核心算法,包括用于基于历史任务有效优化超参数的元学习。我们很高兴看到这项工作开源,供社区在此基础上进行构建。

这个生态系统包括已在生产规模部署的开源项目和工具,以及我们与共享我们开放和协作 AI 社区愿景的行业领导者合作的产品和服务。以下是一些最新工具

  • BoTorch:BoTorch 是一个基于 PyTorch 构建的研究框架,用于提供贝叶斯优化,这是一种用于昂贵黑盒函数顺序优化的样本高效技术。
  • Ax:Ax 是一个用于管理自适应实验的 ML 平台。它使研究人员和工程师能够系统地探索大型配置空间,以优化机器学习模型、基础设施和产品。
  • PyTorch-BigGraph:PBG 是一个分布式系统,用于创建包含数十亿实体和数万亿边的超大型图的嵌入。它支持分片和负采样,并提供基于 Wikidata 嵌入的示例用例。
  • Google AI Platform Notebooks:AI Platform Notebooks 是 Google Cloud Platform 提供的一项新的托管式 JupyterLab 服务。数据科学家可以快速创建运行 JupyterLab 并预装最新版本 PyTorch 的虚拟机。它还与 BigQuery、Cloud Dataproc、Cloud Dataflow 和 AI Factory 等 GCP 服务紧密集成,使执行完整的 ML 周期变得容易,而无需离开 JupyterLab。

我们也欣喜地看到更广泛的 PyTorch 社区带来了许多有趣的新项目。亮点包括

  • BigGAN-PyTorch:这是一个完整的 PyTorch 重实现,它使用梯度累积,可以在最少四个 GPU 上提供大批量的优势。
  • GeomLoss:一个 Python API,它定义了 PyTorch 层,用于采样测量、图像和体积之间的几何损失函数。它包括 MMD、Wasserstein、Sinkhorn 等。
  • PyTorch Geometric:一个用于 PyTorch 的深度学习扩展库,提供了几种在图和其他不规则结构(也称为几何深度学习)上进行深度学习的方法,这些方法来自各种已发表的论文。
  • Curve-GCN:一种实时交互式图像标注方法,它使用端到端训练的图卷积网络 (GCN)。它支持通过多边形或样条曲线进行对象标注,从而提高了基于线条和曲线对象的标注效率。Curve-GCN 的运行速度比传统方法(如 Polygon-RNN++)快 10 倍。

Udacity、fast.ai 和其他机构开发新的 PyTorch 资源

PyTorch 非常适合教学 ML 开发,因为它通过其灵活、动态的编程环境和用户友好的 Pythonic 界面实现了快速实验。此外,Google Colab 现在提供了原生支持 PyTorch 的交互式 Jupyter Notebook 环境,允许开发人员立即使用免费的 CPU 和 GPU 资源运行任何 PyTorch 教程。

大学级别的课程——包括斯坦福 NLP加州大学伯克利分校计算机视觉和加州理工学院机器人课程——现在都基于 PyTorch 进行教学。此外,大型开放式在线课程 (MOOC) 正在培训数千名新的 PyTorch 开发人员。

今天,我们宣布推出一项新的 Udacity 课程,该课程建立在去年推出的《深度学习入门》课程之上。这门新课程由牛津大学和 OpenMined 的 Andrew Trask 主讲,涵盖了人工智能中关于隐私的重要概念,包括差分隐私和联邦学习等方法。Facebook 还将提供奖学金,支持学生在 Udacity 的完整 Nanodegree 课程中继续他们的 ML 教育。

fast.ai 社区也继续在 PyTorch 上投入精力和资源。6 月,fast.ai 将推出一门名为“从基础开始的深度学习”的新课程,该课程将向开发人员展示如何从头开始编写矩阵乘法,到如何训练和实现最先进的 ImageNet 模型。该课程将深入探讨 PyTorch 和 fast.ai 库中方法的底层实现,并将使用代码解释和阐明这些方法所依据的学术论文。

作为课程的一部分,fast.ai 还将发布新的软件模块,包括 fastai.audio,它将 fast.ai 深度抽象和精选算法的强大功能带到新的 PyTorch.audio 模块中,并展示 fastai.vision 如何用于通过与Salk Institute 合作,从旧经典电影等材料以及尖端显微镜序列中创建令人惊叹的高分辨率视频。此外,fast.ai 正在贡献其新的 X-ResNet 模块,包括一套在 ImageNet 上预训练的模型。

PyTorch 入门

AI 社区中的每个人——包括 ML 开发新手以及寻求加速其端到端工作流的研究人员和工程师——都可以通过访问pytorch.org 并在 Colab 中启动教程来立即体验 PyTorch。还有许多简单的方法可以在本地和流行的云平台上开始使用