跳转到主要内容
博客

PyTorch 库更新,包括新的模型服务库

作者: 2020 年 4 月 21 日2024 年 11 月 16 日暂无评论

随着 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 和 Services。

通过 Facebook 和 AWS 工程师的联合协作,TorchElastic(增加了弹性和容错性)现在可以使用普通的 Kubernetes 和 AWS 的托管 EKS 服务来支持。

要了解更多信息,请参阅TorchElastic 存储库,了解控制器实现和如何使用它的文档。

torch_xla 1.5 现已可用

torch_xla 是一个 Python 包,它使用 XLA 线性代数编译器Cloud TPUsCloud TPU Pods 上加速 PyTorch 深度学习框架。torch_xla 旨在让 PyTorch 用户能够在 Cloud TPUs 上完成他们在 GPU 上所能做的一切,同时最大限度地减少用户体验的变化。该项目始于 NeurIPS 2017 年的一次对话,并在 2018 年 Facebook 和 Google 团队合作创建概念验证时获得了动力。我们在 PTDC 2018 上宣布了这项合作,并在 PTDC 2019 上广泛提供了 PyTorch/XLA 集成。该项目已经有 28 位贡献者,近 2 千次提交,并且其存储库已被 Fork 超过 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

torchtext 0.6 版本包括许多错误修复和文档改进。根据用户的反馈,数据集抽象也正在重新设计中。此版本亮点包括:

  • 修复了 conda 包中 SentencePiece 依赖项相关的问题。
  • 增加了对实验性 IMDB 数据集的支持,以允许自定义词汇表。
  • 进行了许多文档更新,包括增加了行为准则,并对 torchtext 网站上的文档进行了去重。

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

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

我们衷心感谢整个 PyTorch 团队、Amazon 团队和社区为此项工作所做的所有贡献。

干杯!

PyTorch 团队