使用 SageMaker 边缘管理器部署 API 直接部署 Model Package - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 SageMaker 边缘管理器部署 API 直接部署 Model Package

SageMaker Edge Manager 提供了一个部署 API,您无需使用该API即可将模型部署到设备目标 Amazon IoT Greengrass。当您想独立于固件更新或应用程序部署机制来更新模型时,它很有用。您可以使用 API 将边缘部署集成到 CI/CD 工作流程中,以便在验证模型的准确性后自动部署模型。API 还为您提供了便捷的回滚和分段推出选项,可确保模型在更大范围推出之前在特定环境中运行良好。

要使用 Edge Manager 部署 API,请先编译并打包您的模型。有关如何编译和打包模型的信息,请参阅为部署模型做好准备。本指南的以下部分说明了在编译和打包模型之后,如何使用 SageMaker API 创建边缘部署。

创建边缘部署计划

您可以使用 CreateEdgeDeploymentPlan API 创建边缘部署计划。部署计划可以分为多个阶段。您可以将每个阶段配置为将部署推广到部分边缘设备(按百分比或按设备名称)。您还可以配置在每个阶段如何处理部署失败。

以下代码片段显示了如何创建边缘部署计划(包含一个将编译后的模型打包部署到 2 个特定边缘设备的阶段):

import boto3 client = boto3.client("sagemaker") client.create_edge_deployment_plan( EdgeDeploymentPlanName="edge-deployment-plan-name", DeviceFleetName="device-fleet-name", ModelConfigs=[ { "EdgePackagingJobName": "edge-packaging-job-name", "ModelHandle": "model-handle" } ], Stages=[ { "StageName": "stage-name", "DeviceSelectionConfig": { "DeviceSubsetType": "SELECTION", "DeviceNames": ["device-name-1", "device-name-2"] }, "DeploymentConfig": { "FailureHandlingPolicy": "ROLLBACK_ON_FAILURE" } } ] )

如果要将模型部署到在设备队列中占有一定百分比的设备,则在上面的示例中将 DeviceSubsetType 的值设置为 "PERCENTAGE",并将 "DeviceNames": ["device-name-1", "device-name-2"] 替换为 "Percentage": desired-percentage

如果您想在验证测试部署成功后开始推出新阶段,则可以在使用 CreateEdgeDeploymentStageAPI 创建部署计划后添加阶段。有关部署阶段的更多信息,请参阅DeploymentStage。

启动边缘部署

创建部署计划和部署阶段后,您可以使用 StartEdgeDeploymentStage API 开始部署。

client.start_edge_deployment_stage( EdgeDeploymentPlanName="edge-deployment-plan-name", StageName="stage-name" )

检查部署的状态

您可以使用 DescribeEdgeDeploymentPlanAPI 检查边缘部署的状态。

client.describe_edge_deployment_plan( EdgeDeploymentPlanName="edge-deployment-plan-name" )