将模型部署到端点 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将模型部署到端点

在 Amazon SageMaker Canvas 中,您可以将模型部署到端点以进行预测。SageMaker 为您提供了 ML 基础设施,让您可以在端点上使用您选择的计算实例来托管模型。然后,您可以调用端点(发送预测请求)并从模型中获取实时预测。借助此功能,您可以在生产环境中使用模型来响应传入的请求,还可以将模型与现有应用程序和工作流集成。

首先,您应该有一个准备好部署的模型版本。有关在 Canvas 中构建模型的更多信息,请参阅构建自定义模型

重要

您可以在 SageMaker Canvas 中部署任何模型类型,但时间序列预测模型除外。

查看以下权限管理部分,然后在部署模型部分开始创建新部署。

权限管理

默认情况下,您有权将模型版本部署到 SageMaker Hosting 端点。SageMaker 通过 AmazonSageMakerCanvasFullAccess 策略为所有新的和现有的 Canvas 用户配置文件授予这些权限,该策略附加到托管 Canvas 应用程序的 SageMaker 域的 Amazon IAM 执行角色。

如果您的 Canvas 管理员正在设置新的域或用户配置文件,当他们设置域并按照设置 Amazon SageMaker Canvas 的先决条件中的先决条件说明进行操作时,SageMaker 会通过默认启用的启用 Canvas 模型的直接部署选项打开模型部署权限。

Canvas 管理员还可以在用户配置文件级别管理模型部署权限。例如,如果管理员希望向某些用户配置文件授予模型部署权限,但删除其他用户配置文件的权限,他们可以编辑特定用户的权限。

以下过程说明如何关闭特定用户配置文件的模型部署权限:

  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台。

  2. 在左侧导航窗格中,选择管理员配置

  3. 管理员配置下,选择

  4. 从域列表中,选择用户配置文件的域。

  5. 域详细信息页面上,选择要编辑其权限的用户配置文件

  6. 用户详细信息页面上,选择编辑

  7. 在左侧导航窗格中,选择 Canvas 设置

  8. ML Ops 权限配置部分,关闭启用 Canvas 模型的直接部署开关。

  9. 选择提交以保存对域设置的更改。

用户配置文件不应再拥有模型部署权限。

部署模型

要开始部署模型,您可以在 Canvas 中创建一个新的部署,并指定要部署的模型版本以及 ML 基础设施,例如要用于托管模型的计算实例的类型和数量。

Canvas 会根据您的模型类型建议默认的实例类型和数量,您也可以在 Amazon SageMaker 定价页面上了解有关各种 SageMaker 实例类型的更多信息。当您的端点处于活动状态时,将根据 SageMaker 实例定价向您收费。

将模型部署到 SageMaker Hosting 实时推理端点后,可以通过调用端点开始进行预测。

从 Canvas 应用程序部署模型版本有几种不同的方法。您可以通过以下任一方法访问模型部署选项:

  • 在 Canvas 应用程序的我的模型页面上,您可以选择要部署的模型。然后,在模型的版本页面中,您可以选择模型版本旁边的更多选项图标 ( 
                            More options icon for the output CSV file.
                        ),然后选择部署

  • 在模型版本的详细信息页面的分析选项卡上,可以选择部署选项。

  • 在模型版本的详细信息页面的预测选项卡上,可以选择页面顶部的更多选项图标 ( 
                            More options icon for the output CSV file.
                        ),然后选择部署

  • 在 Canvas 应用程序的操作页面上,可以选择部署选项卡,然后选择创建部署

所有这些方法都会打开部署模型侧面板,您可在此指定模型的部署配置。要通过此面板部署模型,请执行以下操作:

  1. (可选)如果您从操作页面创建部署,则可以选定选择模型和版本。使用下拉菜单选择要部署的模型和模型版本。

  2. 部署名称字段中输入名称。

  3. 对于实例类型,SageMaker 会检测到适合您的模型的默认实例类型和数量。不过,您可以更改要用于托管模型的实例类型。

    注意

    如果您的 Amazon 账户上所选实例类型的实例限额用完,您可以申请增加限额。有关默认限额以及如何申请增加限额的更多信息,请参阅《Amazon 通用参考指南》中的 Amazon SageMaker 端点和限额

  4. 对于实例计数,您可以设置端点使用的活动实例数。SageMaker 会检测到适合您的模型的默认数量,但您可以更改此数字。

  5. 如果您已准备好部署模型,请选择部署

现在,您的模型应该已部署到端点。有关如何查看部署详细信息或执行各种操作的信息,请参阅以下几节。

查看部署

您可能想检查 Canvas 中模型部署的状态或详细信息。例如,如果部署失败,您可能需要查看详细信息以排查问题。

您可以从 Canvas 应用程序或 Amazon SageMaker 控制台查看 Canvas 模型部署情况。

要从 Canvas 查看部署详细信息,请选择以下过程之一:

要从操作页面查看部署详细信息,请执行以下操作:

  1. 打开 SageMaker Canvas 应用程序。

  2. 在左侧导航窗格中,选择操作

  3. 选择部署选项卡。

  4. 从列表中按名称选择您的部署。

要从模型版本页面查看部署详细信息,请执行以下操作:

  1. 在 SageMaker Canvas 应用程序中,进入模型版本的详细信息页面。

  2. 选择部署选项卡。

  3. 在列出与该模型版本关联的所有部署配置的部署部分,找到您的部署。

  4. 选择更多选项图标 ( 
                            More options icon for the output CSV file.
                        ),然后选择查看详细信息以打开详细信息页面。

此时会打开部署的详细信息页面,您可以查看最近一次预测的时间、端点的状态和配置以及当前部署到端点的模型版本等信息。

您还可以从 SageMaker 控制台中的 SageMaker 控制面板查看当前活动的 Canvas 工作区实例和活动端点。您的 Canvas 端点会与您创建的任何其他 SageMaker Hosting 端点一起列出,您可以通过搜索带有 Canvas 标签的端点来筛选这些端点。

以下屏幕截图显示 SageMaker 控制面板。在 Canvas 部分,您可以看到一个工作区实例正在运行,四个端点处于活动状态。


                显示活动的 Canvas 工作区实例和端点的 SageMaker 控制面板屏幕截图。

更新部署配置

您也可以更新部署配置。例如,可以向端点部署更新的模型版本,也可以根据容量需求更新端点后面的实例类型或实例数量。

您可以通过几种不同的方式从 Canvas 应用程序更新部署。您可以使用以下任何一种方法:

  • 在 Canvas 应用程序的操作页面上,您可以选择部署选项卡,然后选择要更新的部署。然后,选择更新配置

  • 在模型版本的详细信息页面的部署选项卡上,您可以查看该版本的部署。在部署旁边,选择更多选项图标 ( 
                            More options icon for the output CSV file.
                        ),然后选择更新配置

上述两种方法都会打开更新配置侧面板,您可以在其中更改部署配置。要更新配置,请执行以下操作:

  1. 选择版本下拉菜单中,您可以选择要部署到端点的不同模型版本。

    注意

    更新部署配置时,只能选择不同的模型版本进行部署。要部署不同的模型,请创建新的部署。

  2. 对于实例类型,您可以选择不同的实例类型来托管您的模型。

  3. 对于实例计数,您可以更改端点使用的活动实例数量。

  4. 选择保存

您的部署配置现在应该已更新。

测试部署

您可以通过 Canvas 应用程序调用端点或发出单一预测请求来测试您的部署。端点会返回一个包含预测和预测正确概率的响应。在生产环境中以编程方式调用端点之前,您可以使用此功能确认端点是否响应请求。

注意

执行长度是调用 Canvas 中的端点并从端点获取响应所需的估计时间。有关详细的延迟指标,请参阅 SageMaker 端点调用指标

要通过 Canvas 应用程序测试您的端点,请执行以下操作:

  1. 打开 SageMaker Canvas 应用程序。

  2. 在左侧导航窗格中,选择操作

  3. 选择部署选项卡。

  4. 从部署列表中,选择带有要调用的端点的部署。

  5. 在部署的详细信息页面上,选择测试部署选项卡。

  6. 在部署测试页面上,您可以修改字段以指定新的数据点。

  7. 修改值后,选择更新以获取预测结果。

此时将加载预测,同时加载的还有调用结果字段,这些字段指示调用是否成功以及处理请求所需的时间。

以下屏幕截图显示了在 Canvas 应用程序的测试部署选项卡上执行的预测。


                Canvas 应用程序的屏幕截图,显示了已部署模型的测试预测。

对于除数值预测之外的所有模型类型,预测将返回以下字段:

  • predicted_label – 预测的输出

  • probability – 预测的标签正确的概率

  • labels – 所有可能的标签的列表

  • probabilities – 每个标签对应的概率(该列表的顺序与标签的顺序一致)

对于数值预测模型,预测结果只包含分数字段,即模型的预测输出,如预测的房屋价格。

您可以继续通过部署测试页面进行单一预测,也可以查看以下调用端点部分,了解如何从应用程序中以编程方式调用端点。

调用端点

测试部署后,您可以像调用任何其他 SageMaker 实时端点一样,以编程方式调用端点,在生产环境中将端点用于您的应用程序。以编程方式调用端点会返回一个响应对象,其中包含的字段与上一节测试部署 中提到的相同。

有关如何以编程方式调用端点的更多详细信息,请参阅调用实时端点

下面的 Python 示例向您展示了如何根据模型类型调用端点。

下面的示例展示了如何调用数值或分类预测模型。

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

下面的示例展示了如何调用图像预测模型。

import boto3 client = boto3.client("runtime.sagemaker") with open("example_image.jpg", "rb") as file: body = file.read() response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="application/x-image", Body=body, Accept="application/json" )

下面的示例展示了如何调用文本预测模型。

import boto3 import pandas as pd client = boto3.client("runtime.sagemaker") body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8") response = client.invoke_endpoint( EndpointName="endpoint_name", ContentType="text/csv", Body=body, Accept="application/json" )

删除模型部署

可以从 Canvas 应用程序中删除您的模型部署。该操作还会从 SageMaker 控制台中删除端点,并关闭任何与端点相关的资源。

注意

也可以通过 SageMaker 控制台或使用 SageMaker DeleteEndpoint API 删除端点。有关更多信息,请参阅 删除端点和资源。但是,当您通过 SageMaker 控制台或 API 而不是 Canvas 应用程序删除端点时,Canvas 中的部署列表不会自动更新。您还必须从 Canvas 应用程序中删除部署,才能将其从列表中移除。

要在 Canvas 中删除部署,请执行以下操作:

  1. 打开 SageMaker Canvas 应用程序。

  2. 在左侧导航窗格中,选择操作

  3. 选择部署选项卡。

  4. 从部署列表中,选择要删除的部署。

  5. 在部署详细信息页面顶部,选择更多选项图标 ( 
                            More options icon for the output CSV file.
                        )。

  6. 选择删除部署

  7. 删除部署对话框中,选择删除

现在,您的部署和 SageMaker Hosting 端点应从 Canvas 和 SageMaker 控制台中删除。