本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将模型部署到端点
在 Amazon SageMaker Canvas 中,您可以将模型部署到终端节点以进行预测。 SageMaker 提供机器学习基础架构,供您在带有您选择的计算实例的终端节点上托管模型。然后,您可以调用端点(发送预测请求)并从模型中获取实时预测。借助此功能,您可以在生产环境中使用模型来响应传入的请求,还可以将模型与现有应用程序和工作流集成。
首先,你应该有一个要部署的模型。您可以部署自己构建的自定义模型版本、Amazon SageMaker JumpStart 基础模型和经过微调 JumpStart 的基础模型。有关在 Canvas 中构建模型的更多信息,请参阅构建自定义模型。有关 Canvas 中 JumpStart基础模型的更多信息,请参阅在根基模型中使用生成式人工智能。
查看以下权限管理部分,然后在部署模型部分开始创建新部署。
权限管理
默认情况下,您有权将模型部署到 SageMaker 托管终端节点。 SageMaker 通过策略为所有新的和现有的 Canvas 用户配置文件授予这些权限,该AmazonSageMakerCanvasFullAccess策略附在 AWS IAM托管 Canvas 应用程序的 SageMaker 域的执行角色。
如果您的 Canvas 管理员正在设置新的域或用户配置文件,则在设置域并按照中的先决条件说明进行操作时设置 Amazon C SageMaker anvas 的先决条件, SageMaker会通过 “启用直接部署 Canvas 模型” 选项开启模型部署权限,该选项默认处于启用状态。
Canvas 管理员还可以在用户配置文件级别管理模型部署权限。例如,如果管理员不想在设置域时向所有用户配置文件授予模型部署权限,则可以在创建域后向特定用户授予权限。
以下过程说明如何修改特定用户配置文件的模型部署权限:
-
打开 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
在左侧导航窗格中,选择管理员配置。
-
在管理员配置下,选择域。
-
从域列表中,选择用户配置文件的域。
-
在域名详细信息页面上,选择要编辑其权限的用户个人资料。
-
在用户详细信息页面上,选择编辑。
-
在左侧导航窗格中,选择 Canvas 设置。
-
在 ML Ops 权限配置部分,打开启用直接部署 Canvas 模型开关以启用部署权限。
-
选择 “提交” 以保存对您的域名设置的更改。
用户配置文件现在应该具有模型部署权限。
向域名或用户配置文件授予权限后,请确保用户退出其 Canvas 应用程序并重新登录以应用权限更改。
部署模型
要开始部署模型,您可以在 Canvas 中创建一个新的部署,并指定要部署的模型版本以及 ML 基础设施,例如要用于托管模型的计算实例的类型和数量。
Canvas 会根据您的模型类型建议默认类型和实例数量,或者您可以在 Amazon SageMaker 定价页面
部署 JumpStart 基础模型时,您还可以选择指定部署时间的长度。您可以无限期地将模型部署到终端节点(这意味着在您删除部署之前,终端节点一直处于活动状态)。或者,如果您只需要在短时间内使用终端节点并希望降低成本,则可以在指定的时间段内将模型部署到终端节点,之后将为您 SageMaker 关闭终端节点。
注意
如果您在指定的时间内部署模型,请在终端节点的持续时间内保持 Canvas 应用程序的登录状态。如果您注销或删除应用程序,则 Canvas 无法在指定时间关闭终端节点。
将模型部署到 SageMaker Host ing 实时推理端点后,您可以通过调用该终端节点开始进行预测。
您可以通过多种不同的方式从 Canvas 应用程序部署模型。您可以通过以下任一方法访问模型部署选项:
-
在 Canvas 应用程序的我的模型页面上,选择要部署的模型。然后,在模型的版本页面中,选择模型版本旁边的更多选项图标 ( ),然后选择部署。
-
在模型版本的详细信息页面上,在分析选项卡上,选择部署选项。
-
在模型版本的详细信息页面上,在预测选项卡上,选择页面顶部的更多选项图标 ( ),然后选择部署。
-
在 Canva s 应用程序的 ML Ops 页面上,选择部署选项卡,然后选择创建部署。
-
要了解 JumpStart 基础模型和经过微调的基础模型,请转到 Canvas 应用程序的 R eady-to-use 模型页面。选择生成、提取和汇总内容。然后,找到要部署 JumpStart 的基础模型或经过微调的基础模型。选择模特,然后在模特的聊天页面上,选择部署按钮。
所有这些方法都会打开部署模型侧面板,您可在此指定模型的部署配置。要通过此面板部署模型,请执行以下操作:
-
(可选)如果您从 ML Ops 页面创建部署,则可以选择选择模型和版本。使用下拉菜单选择要部署的模型和模型版本。
-
在部署名称字段中输入名称。
-
(仅适用于 JumpStart 基础模型和经过微调的基础模型)选择部署长度。选择 “不确定” 以使端点保持活动状态,直到将其关闭,或者选择 “指定长度”,然后输入您希望端点保持活动状态的时间段。
-
对于实例类型, SageMaker 检测适合您的模型的默认实例类型和编号。不过,您可以更改要用于托管模型的实例类型。
注意
如果您用完了所选实例类型的实例配额 AWS 账户,您可以申请增加配额。有关默认配额以及如何申请增加配额的更多信息,请参阅中的 Amazon SageMaker 终端节点和配额 AWS 一般参考指南。
-
对于实例计数,您可以设置用于终端节点的活跃实例数量。 SageMaker 检测到适合您的型号的默认数字,但您可以更改此数字。
-
如果您已准备好部署模型,请选择部署。
现在,您的模型应该已部署到端点。有关如何查看部署详细信息或执行各种操作的信息,请参阅以下几节。
查看部署
您可能想检查 Canvas 中模型部署的状态或详细信息。例如,如果部署失败,您可能需要查看详细信息以排查问题。
您可以通过 Canvas 应用程序或亚马逊 SageMaker 控制台查看您的 Canvas 模型部署。
要从 Canvas 查看部署详细信息,请选择以下过程之一:
要从 ML Ops 页面查看您的部署详细信息,请执行以下操作:
-
打开 SageMaker 画布应用程序。
-
在左侧导航窗格中,选择 ML Ops。
-
选择部署选项卡。
-
从列表中按名称选择您的部署。
要从模型版本页面查看部署详细信息,请执行以下操作:
-
在 SageMaker Canvas 应用程序中,转到模型版本的详细信息页面。
-
选择部署选项卡。
-
在列出与该模型版本关联的所有部署配置的部署部分,找到您的部署。
-
选择更多选项图标 ( ),然后选择查看详细信息以打开详细信息页面。
此时会打开部署的详细信息页面,您可以查看最近一次预测的时间、端点的状态和配置以及当前部署到端点的模型版本等信息。
您还可以在SageMaker 控制台
以下屏幕截图显示了 SageMaker 仪表板。在 Canvas 部分,您可以看到一个工作区实例正在运行,四个端点处于活动状态。
更新部署配置
您也可以更新部署配置。例如,可以向端点部署更新的模型版本,也可以根据容量需求更新端点后面的实例类型或实例数量。
您可以通过几种不同的方式从 Canvas 应用程序更新部署。您可以使用以下任何一种方法:
-
在 Canva s 应用程序的 ML Ops 页面上,您可以选择 “部署” 选项卡,然后选择要更新的部署。然后,选择更新配置。
-
在模型版本的详细信息页面的部署选项卡上,您可以查看该版本的部署。在部署旁边,选择更多选项图标 ( ),然后选择更新配置。
上述两种方法都会打开更新配置侧面板,您可以在其中更改部署配置。要更新配置,请执行以下操作:
-
在选择版本下拉菜单中,您可以选择要部署到端点的不同模型版本。
注意
更新部署配置时,只能选择不同的模型版本进行部署。要部署不同的模型,请创建新的部署。
-
对于实例类型,您可以选择不同的实例类型来托管您的模型。
-
对于实例计数,您可以更改端点使用的活动实例数量。
-
选择保存。
您的部署配置现在应该已更新。
测试部署
您可以通过 Canvas 应用程序调用端点或发出单一预测请求来测试您的部署。在生产环境中以编程方式调用端点之前,您可以使用此功能确认端点是否响应请求。
测试自定义模型部署
您可以通过 ML Ops 页面访问自定义模型部署,然后进行一次调用,这将返回预测以及预测正确的概率,从而对其进行测试。
注意
执行长度是调用 Canvas 中的端点并从端点获取响应所需的估计时间。有关详细的延迟指标,请参阅SageMaker 端点调用指标。
要通过 Canvas 应用程序测试您的端点,请执行以下操作:
-
打开 SageMaker 画布应用程序。
-
在左侧导航面板中,选择 ML Ops。
-
选择部署选项卡。
-
从部署列表中,选择带有要调用的端点的部署。
-
在部署的详细信息页面上,选择测试部署选项卡。
-
在部署测试页面上,您可以修改值字段以指定新的数据点。对于时间序列预测模型,您可以指定要对其进行预测的物料 ID。
-
修改值后,选择更新以获取预测结果。
此时将加载预测,同时加载的还有调用结果字段,这些字段指示调用是否成功以及处理请求所需的时间。
以下屏幕截图显示了在 Canvas 应用程序的测试部署选项卡上执行的预测。
对于除数值预测和时间序列预测之外的所有模型类型,预测返回以下字段:
-
predicted_label – 预测的输出
-
probability – 预测的标签正确的概率
-
labels – 所有可能的标签的列表
-
probabilities – 每个标签对应的概率(该列表的顺序与标签的顺序一致)
对于数值预测模型,预测结果只包含分数字段,即模型的预测输出,如预测的房屋价格。
对于时间序列预测模型,预测是按分位数显示预测的图表。您可以选择 “架构” 视图来查看每个分位数的预测数值。
您可以继续通过部署测试页面进行单一预测,也可以查看以下调用端点部分,了解如何从应用程序中以编程方式调用端点。
测试 JumpStart 基础模型部署
您可以通过 Canvas 应用程序与已部署 JumpStart 的基础模型或经过微调的基础模型交谈,以测试其功能,然后再通过代码调用它。
要与已部署 JumpStart 的基础模型或经过微调的基础模型交谈,请执行以下操作:
-
打开 SageMaker 画布应用程序。
-
在左侧导航面板中,选择 ML Ops。
-
选择部署选项卡。
-
从部署列表中,找到要调用的部署并选择其更多选项图标 ( )。
-
从上下文菜单中,选择测试部署。
-
JumpStart 基础模型将打开一个新的 “生成、提取和汇总内容” 聊天,你可以开始键入提示了。请注意,来自此聊天的提示将作为请求发送到您的 SageMaker 托管终端节点。
调用端点
测试部署后,您可以像调用任何其他SageMaker 实时端点一样以编程方式调用终端节点,从而在生产环境中使用终端节点。以编程方式调用端点会返回一个响应对象,其中包含的字段与上一节测试部署 中提到的相同。
有关如何以编程方式调用端点的更多详细信息,请参阅调用模型进行实时推理。
下面的 Python 示例向您展示了如何根据模型类型调用端点。
以下示例说明如何调用已部署到终端节点 JumpStart 的基础模型或经过微调的基础模型。
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 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" )
以下示例说明如何调用时间序列预测模型。有关如何测试调用时间序列预测模型的完整示例,请参阅使用 Amazon A SageMaker utopilot 进行时间序列预测
import boto3 import pandas as pd csv_path = './real-time-payload.csv' data = pd.read_csv(csv_path) client = boto3.client("runtime.sagemaker") body = data.to_csv(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 控制台DeleteEndpoint
API。有关更多信息,请参阅 删除端点和资源。但是,当您通过 SageMaker 控制台或APIs代替 Canvas 应用程序删除端点时,Canvas 中的部署列表不会自动更新。您还必须从 Canvas 应用程序中删除部署。
要在 Canvas 中删除部署,请执行以下操作:
-
打开 SageMaker 画布应用程序。
-
在左侧导航面板中,选择 ML Ops。
-
选择部署选项卡。
-
从部署列表中,选择要删除的部署。
-
在部署详细信息页面顶部,选择更多选项图标 ( )。
-
选择删除部署。
-
在删除部署对话框中,选择删除。
现在应该从 Canvas 和 SageMaker 控制台中删除您的部署和 SageMaker 托管终端节点。成功删除部署后,它会显示在 Canvas 部署列表中,其状态为 “已删除”。