SageMaker Edge Manager デプロイを使用してモデルパッケージを直接デプロイする API - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker Edge Manager デプロイを使用してモデルパッケージを直接デプロイする API

SageMaker Edge Manager は、 API なしでモデルをデバイスターゲットにデプロイするために使用できるデプロイを提供します AWS IoT Greengrass。ファームウェアのアップデートまたはアプリケーションのデプロイメカニズムとは別にモデルを更新する場合に便利です。を使用してエッジデプロイを CI/CD ワークフローAPIに統合し、モデルの精度を検証したら、モデルを自動的にデプロイできます。API また、 には便利なロールバックとステージングされたロールアウトオプションがあり、より広範なロールアウトの前に特定の環境でモデルがうまく機能するようにします。

Edge Manager デプロイを使用するには、APIまずモデルをコンパイルしてパッケージ化します。モデルのコンパイルとパッケージの方法については、「デプロイ用にモデルを準備する」を参照してください。このガイドの以下のセクションでは、モデルをコンパイルしてパッケージ化した後に SageMaker API、 を使用してエッジデプロイを作成する方法を示します。

エッジデプロイ計画を作成する

を使用してエッジデプロイプランを作成できますCreateEdgeDeploymentPlanAPI。デプロイ計画は複数のステージで構成されます。エッジデバイスのサブセットにデプロイをロールアウトするように各ステージを設定できます (割合またはデバイス名で)。また、各ステージでのロールアウトの失敗の処理方法も設定できます。

次のコードスニペットは、コンパイルされパッケージ化されたモデルを 2 つの特定の Edge デバイスにデプロイするための第 1 ステージのエッジデプロイ計画を作成する方法を示しています。

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 に置き換えます。

テストロールアウトの成功を検証した後に新しいステージのロールアウトを開始する場合に備えてAPI、 CreateEdgeDeploymentStage でデプロイプランを作成した後にステージを追加できます。デプロイステージの詳細については、「」を参照してくださいDeploymentStage。

エッジデプロイを開始する

デプロイプランとデプロイステージを作成したら、 StartEdgeDeploymentStage を使用してデプロイを開始できますAPI。

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

デプロイのステータスを確認する

エッジデプロイのステータスは、 DescribeEdgeDeploymentPlan で確認できますAPI。

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