由 PyTorch 团队

随着 PyTorch 1.5 版本的发布,我们宣布推出新的高性能 PyTorch 模型服务库以及与 TorchElastic 和 Kubernetes 的紧密集成。此外,我们还发布了 torch_xla(Google Cloud TPUs)、torchaudio、torchvision 和 torchtext 的更新包。所有这些新库和增强功能今天即可使用,并伴随 PyTorch 1.5 发布的核心功能。

TorchServe(实验性)

TorchServe 是一个灵活且易于使用的库,用于在生产环境中以高性能和可扩展的方式提供 PyTorch 模型服务。它是云和环境无关的,并支持多模型服务、日志记录、指标以及创建 RESTful 端点以实现应用程序集成等功能。TorchServe 是由 Facebook 和 AWS 的工程师共同开发,并得到了更广泛的 PyTorch 社区的反馈和参与。TorchServe 的实验性版本今天即可使用。其中一些亮点包括:

  • 支持基于 Python 和 TorchScript 的模型
  • 适用于常见用例(例如图像分割、文本分类)的默认处理器,以及编写其他用例的自定义处理器的功能
  • 模型版本控制,能够同时运行多个模型的多个版本,并能够回滚到早期版本
  • 能够将模型、学习权重和支持文件(例如类别映射、词汇表)打包成一个单一、持久的工件(即“模型存档”)
  • 强大的管理能力,允许通过命令行、配置文件或运行时 API 全面配置模型、版本和单个工作线程
  • HTTP 请求中个体推理的自动批处理
  • 记录包括常见指标,并支持自定义指标集成
  • 易于部署的现成 Dockerfile
  • 支持 HTTPS 的加密部署

想了解更多关于 API 和该功能的设计信息,请参阅以下链接:

  • 查看完整的多节点部署参考架构。
  • 完整文档可在此处找到。

TorchElastic 与 Kubernetes 的集成(实验性)

TorchElastic 是一个经过验证的库,可在 Facebook 等公司中用于大规模深度神经网络的训练,在这些公司中,能够动态适应服务器可用性并随着新计算资源的上线进行扩展是至关重要的。Kubernetes 使使用 PyTorch 等机器学习框架的客户能够在 Amazon EC2 P3 等强大的 GPU 实例集群上运行分布式训练作业。然而,分布式训练作业不具有容错性,如果节点故障或回收中断了训练,则作业无法继续。此外,作业无法在没有获取所有必需资源的情况下启动,也无法在不重启的情况下进行扩展或缩减。这种缺乏弹性和灵活性的问题导致空闲资源的训练时间和成本增加。TorchElastic 通过使分布式训练作业能够以容错和弹性的方式执行来解决这些限制。直到今天,Kubernetes 用户需要手动管理 TorchElastic 训练作业所需的 Pod 和 Service。

通过 Facebook 和 AWS 工程师的联合协作,TorchElastic 现在支持使用纯 Kubernetes 以及通过 AWS 管理的 EKS 服务来实现弹性和容错。

想了解更多,请查看 TorchElastic 仓库中的控制器实现和文档,了解如何使用它。

torch_xla 1.5 版本现已发布

torch_xla 是一个 Python 包,它使用 XLA 线性代数编译器来加速 PyTorch 深度学习框架在 Cloud TPUs 和 Cloud TPU Pods 上的运行。torch_xla 旨在让 PyTorch 用户能够在 Cloud TPUs 上完成他们在 GPU 上能做的所有事情,同时尽量减少对用户体验的改变。该项目始于 2017 年 NeurIPS 的一次对话,并在 2018 年获得了动力,当时 Facebook 和 Google 的团队聚集在一起创建了一个概念验证。我们在 2018 年 PTDC 上宣布了这次合作,并在 2019 年 PTDC 上广泛发布了 PyTorch/XLA 集成。该项目已有 28 位贡献者,近 2000 次提交,并且仓库已被分叉超过 100 次。

本次 torch_xla 的发布与 PyTorch 1.5 对齐并经过测试,以降低开发者的摩擦,并为使用 Cloud TPU 硬件训练模型提供稳定成熟的 PyTorch/XLA 堆栈。您可以在 Google Colab 的 8 核心 Cloud TPU 设备上免费尝试,也可以在 Google Cloud 上以更大的规模使用。

请在此处查看完整的 torch_xla 发布说明。完整文档和教程可以在此处和此处找到。

PyTorch 领域库

torchaudio、torchvision 和 torchtext 通过在每个领域领域的常见数据集、模型和转换补充 PyTorch。我们很高兴与 PyTorch 1.5 和库的其他更新一起分享这三个领域库的新版本。对于本次发布,所有三个领域库都将移除对 Python2 的支持,仅支持 Python3。

torchaudio 0.5

torchaudio 0.5 版本发布包括新的转换、函数和数据集。发布亮点包括:

  • 添加了 Griffin-Lim 函数和转换, InverseMelScaleVol 转换,以及 DB_to_amplitude
  • 添加了对 allpassfadebandpassbandrejectbandtrebledeemphriaa 过滤器和转换的支持。
  • 新增了包括 LJSpeechSpeechCommands 数据集在内的数据集。

请在此处查看完整发布说明,完整文档可在此处找到。

torchvision 0.6

torchvision 0.6 版本发布包括数据集、模型更新以及大量错误修复。亮点包括:

  • Faster R-CNN 现在支持负样本,允许在训练时输入未标注的图像。
  • RoIAlign 添加了 aligned 标志以匹配 Detectron2。
  • 重构了 C++ 视频解码器的抽象。

请在此处查看完整发布说明,完整文档可在此处找到。

torchtext 0.6

The torchtext 0.6 release includes a number of bug fixes and improvements to documentation. Based on user’s feedback, dataset abstractions are currently being redesigned also. Highlights for the release include:

  • 修复了与 conda 包中 SentencePiece 依赖相关的问题。
  • 添加了对实验性 IMDB 数据集的支持,允许自定义词汇表。
  • 包含添加行为准则和对 torchtext 网站上文档去重等一系列文档更新。

欢迎您对实验性数据集 API 的反馈和讨论。您可以将其发送至问题#664。我们还想在此强调一个拉取请求,其中最新的数据集抽象已应用于文本分类数据集。您的反馈将有助于最终确定这一抽象。

请在此处查看完整发布说明,完整文档可在此处找到。

感谢 PyTorch 团队、亚马逊团队以及社区为此工作做出的所有贡献。

喝彩!

PyTorch 团队