发布于: Oct 14, 2022

机器学习模型开发在不断地发展当中,2020 年 4 月,Amazon Web Services 与 Facebook 宣布推出 TorchServe ,帮助 PyTorch 社区的研究人员与机器学习(ML)开发人员更快将其模型投入生产,且无需编写任何自定义代码。 TorchServe 属于开源项目,很好地解答了业界关于如何使用 PyTorch 从 notebook 过渡至生产环境的问题。全球各地的客户(包括 Matroid)都亲身体验到由此带来的收益。同样,目前已经超过 10000 家客户采用 Amazon SageMaker 快速构建、训练并部署大规模机器学习模型,其中很多客户已经将 SageMaker 视为机器学习的标准平台。从模型支持的角度来看,Amazon SageMaker 对以基础设施为中心带来的所有繁重工作进行抽象化,允许您安全可靠地向全球数百万并发用户提供低延迟预测功能。

Amazon Web Services 高兴地宣布,现在 Amazon SageMaker 已经原生支持将 TorchServe 作为 PyTorch 推理的默认模型服务器。以往,您也可以将 TorchServe 与 Amazon SageMaker 结合使用,但需要额外将其安装在 notebook 实例上并启动服务器以执行本地推理;或者通过构建 TorchServe 容器并引用其镜像以创建托管终端节点。但是,完整的 notebook 安装流程往往非常耗时,而且某些数据科学家及机器学习开发人员可能不愿将时间与精力浪费在构建 Docker 容器、将镜像存储在 Amazon Elastic Container Registry (Amazon ECR)之上、创建 Amazon Web Services 身份与访问管理(IAM)权限、将模型上传至 Amazon Simple Storage Service (Amazon S3)并部署模型终端节点等繁琐工作。但在本次功能更新之后,您已经可以使用原生 Amazon SageMaker SDK 直接使用 TorchServe 支持 PyTOrch 模型。

要在 Amazon SageMaker 中原生支持 TorchServe,Amazon Web Services 工程技术团队向 sagemaker-pytorch-inference-toolkit 以及 deep-learning-containers repo 提交了大量 pull 请求。在合并之后,我们可以通过 Amazon SageMaker API 使用 TorchServe 执行 PyTorch 推理。这项新功能也让 Amazon Web Services 与 PyTorch 社区更紧密地协同起来。随着未来关于 TorchServe 服务框架相关的更多功能陆续发布,我们将不断把这些经过测试、移植并纳入 Amazon Web Services 深度学习容器镜像当中。需要强调的是,我们的实现方案向各位用户提供易于使用的 Amazon SageMaker PyTorch API ,同时隐藏掉了 .mar 文件。
 

大家可以通过以下步骤将 TorchServe 与 Amazon SageMaker 配合使用:

  1. 在 Amazon SageMaker 中创建模型。通过创建模型,您可以告知 Amazon SageMaker 在哪里寻找模型组件。具体包括用于存储模型工件的 Amazon S3 路径,以及 Amazon SageMaker TorchServe 镜像的 Docker 注册表路径。在后续部署步骤当中,大家可以按名称指定此模型。关于更多详细信息,请参阅创建模型。
  2. 为 HTTPS 终端节点创建一套终端节点配置。我们可以在生产变体中为一个或者多个模型指定名称,并指定供 Amazon SageMaker 用于托管各生产变体的机器学习计算实例。在生产环境中托管模型时,大家可以配置该端点以弹性扩展已部署的各机器学习计算实例。对于各生产变体,您还可以指定需要部署的机器学习计算实例数量。在指定两个或更多实例时,Amazon SageMaker 将在多个可用区内启动这些实例,借此实现连续可用性。Amazon SageMaker 将负责各实例的部署。关于更多详细信息,请参阅创建终端节点配置。
  3. 创建 HTTPS 终端节点。向 Amazon SageMaker 提供终端节点配置。关于更多详细信息,请参见创建终端节点。为了从模型中获取推理结果,客户端应用程序需要将请求发送至 Amazon SageMaker Runtime HTTPS 终端节点。关于 API 的更多详细信息,请参阅调用终端节点。 

相关文章