发布于: Oct 10, 2022

通过以下示例 notebook 可以看到,Amazon SageMaker Python SDK 能够大大简化 TorchServe 与 Amazon SageMaker 连接的操作步骤。
使用经过调优的 HuggingFace transformer base(RoBERTa)
在本文中,我们使用 HuggingFace transformer, 由其提供可实现自然语言理解(NLU)的通用架构。具体而言,我们将为大家提供 RoBERTa base transformer,此 transformer 已经过调优以执行情感分析。预训练的检查点会加载其他头层,而模型则输出文本内的正面、中立及负面情绪。

这里我们部署 ml.m5.xlarge Amazon SageMaker notebook 实例。关于实例费率的更多详细信息,请参阅 Amazon SageMaker 费率说明。

  • 登录至 Amazon Web Services 管理控制台。
  • 在下表中选择启动模板。

北弗吉尼亚州 (us-east-1)

爱尔兰 (eu-west-1)

新加坡 (ap-southeast-1)

您可以通过更新超链接中的 Region 值,在任意区域内启动这套示例堆栈。

  • Capabilities and transforms 部分,选中三个确认框。
  • 选择 Create stack

您的 CloudFormation 堆栈大约需要 5 分钟才能完成 Amazon SageMaker notebook 实例及其IAM角色的创建过程。

  • 在堆栈创建完成之后,请检查 Resources 选项卡中的输出结果。
  • 在 Amazon SageMaker 控制台的 Notebook 之下, 选择 Notebook instances。
  • 找到您刚刚创建的 notebook,而后选择 Open Jupyter。

在 notebook 实例之内,导航至 serving_natively_with_amazon_sagemaker 目录并打开 deploy.ipynb。

现在,我们可以运行 Jupyter notebook 中的步骤:

  1. 设置您的托管环境。
  2. 创建您的终端节点。
  3. 使用 TorchServe 后端 Amazon SageMaker 终端节点执行预测。

在托管环境设置完成之后,使用原生 TorchServe estimator 轻松创建 Amazon SageMaker 终端节点:

model = PyTorchModel(model_data=model_artifact,
                   name=name_from_base('roberta-model'),
                   role=role, 
                   entry_point='torchserve-predictor.py',
                   source_dir='source_dir',
                   framework_version='1.6.0',
                   predictor_cls=SentimentAnalysis)

endpoint_name = name_from_base('roberta-model')
predictor = model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge', endpoint_name=endpoint_name)

在完成本轮演练之后,您的 Amazon SageMaker 终端节点应该已经被正确删除。如果未能删除,请完成以下操作步骤:

  1. 在 Amazon SageMaker 控制台的 Inference之下, 选择 Endpoints。
  2. 选定要删除的终端节点(应以 roberta-model 开头)。
  3. 在 Actions下拉菜单中, 选择 Delete。 

在 Amazon Web Services CloudFormation 控制台上,选择 torchserve-on-amazon web services 堆栈并选择 Delete 以删除剩余环境。

现在,我们会看到另外两个基于源 CloudFormation 模板构建的堆栈名称。这些是嵌套栈,并且会与主栈被一同删除。清理流程大约需要 3 分钟左右,包括停止环境运行、删除 notebook 实例以及与之关联的 IAM 角色。

随着客户对于 TorchServe 需求的不断增长以及 PyTorch 社区的快速发展,Amazon Web Services 致力于为客户提供一种通用且高效的 PyTorch 模型托管方式。无论您使用的是 Amazon SageMaker、 Amazon Elastic Compute Cloud (Amazon EC2)还是 Amazon Elastic Kubernetes Service (Amazon EKS), 我们都将不断优化后端基础设施并为开源社区提供支持。这里也建议大家根据需求在项目 repo(TorchServe、Amazon Web Services Deep Learning 容器、PyTorch 推理工具包等)中提交 pull 请求及/或创建问题。

相关文章