Greengrass コアデバイスで Amazon SageMaker Edge Manager を使用 - AWS IoT Greengrass

Greengrass コアデバイスで Amazon SageMaker Edge Manager を使用

Amazon SageMaker Edge Manager は、エッジデバイスで動作するソフトウェアエージェントです。SageMaker Edge Manager は、Amazon SageMaker Neo でコンパイルされたモデルを直接 Greengrass コアデバイスにパッケージ化して使用できるように、エッジデバイスのモデル管理を提供します。SageMaker Edge Manager を使用することにより、コアデバイスからのモデルの入出力データをサンプリングして、そのデータを AWS クラウド モニタリングと分析用に送信できます。SageMaker Edge Manager は SageMaker Neo を使用して、ターゲットハードウェア用のモデルを最適化するため、デバイスに直接 DLR ランタイムをインストールする必要はありません。Greengrass デバイス上、SageMaker Edge Manager はローカルの AWS IoT 証明書をロードしたり、AWS IoT 認証情報プロバイダのエンドポイントを直接呼び出したりはしません。代わりに SageMaker Edge Manager は、トークン交換サービスを使って、TES エンドポイントから一時的な認証情報をフェッチします。

このセクションでは、SageMaker Edge Manager が Greengrass デバイスで動作する仕組みを説明します。既存のコアデバイスに AWS が提供するサンプルコンポーネントを備えた SageMaker Edge Manager の使用を開始方法について示します。これらのサンプルコンポーネントは、SageMaker Edge Manager コンポーネントを従属関係として使用し、Edge Manager エージェントをデプロイして、SageMaker Neo を使用してコンパイルされた事前トレーニング済モデルを使用して推論を実行します。SageMaker Edge Manager エージェントの詳細については、「Amazon SageMakerデベロッパーガイド」の「SageMaker Edge Manager」を参照してください。

SageMaker Edge Manager が Greengrass デバイスで動作する仕組み

SageMaker Edge Manager エージェントをコアデバイスに展開するには、aws.greengrass.SageMakerEdgeManager コンポーネントを含むデプロイを作成します。AWS IoT Greengrass は、デバイスの Edge Manager エージェントのインストールとライフサイクルを管理します。エージェントバイナリの新しいバージョンが利用可能になったとき、aws.greengrass.SageMakerEdgeManager コンポーネントの更新されたバージョンをデプロイして、デバイスにインストールされているエージェントのバージョンをアップグレードします。

SageMaker Edge Manager を AWS IoT Greengrass と使用するとき、ワークフローに次の高レベルな手順が含まれます。

  1. SageMaker Neo でモデルをコンパイルします。

  2. SageMaker エッジパッケージングジョブを使用して、 SageMaker Neo がコンパイルしたモデルをパッケージ化します。モデルにエッジパッケージングジョブを実行するとき、Greengrass コアデバイスにデプロイ可能なアーティファクトとして、パッケージ化されたモデルでモデルコンポーネントを作成することを選択できます。

  3. カスタム推論コンポーネントを作成します。エッジマネージャーエージェントを操作してコアデバイスで推論を実行するため、この推論コンポーネントを使用できます。これらの操作には、モデルのロード、推論を実行する予測リクエストの呼び出し、コンポーネントのシャットダウン時にモデルのアンロードが含まれます。

  4. SageMaker Edge Manager コンポーネント、パッケージ化されたモデルコンポーネント、および推論コンポーネントをデプロイして、デバイス上の SageMaker 推論エンジン (Edge Manager エージェント) でモデルを実行します。

SageMaker Edge Manager と連携するエッジパッケージングジョブと推論コンポーネントの作成に関する詳細については、「Amazon SageMaker デベロッパーガイド」の「AWS IoT Greengrass でモデルパッケージと Edge Manager エージェントをデプロイ」を参照してください。

SageMaker Edge Manager の使用を開始する チュートリアルは、サンプル推論とモデルコンポーネントの作成に AWS が提供するコードの例を使用して、既存の Greengrass コアデバイスに SageMaker Edge Manager エージェントをセットアップして使用する方法について説明します。

Greengrass コアデバイスに SageMaker Edge Manager を使用するとき、キャプチャデータ機能を使用してサンプルデータをAWS クラウドにアップロードすることもできます。キャプチャデータは、今後の分析用に S3 バケットまたはローカルディレクトリに推論入力、推論結果、追加の推論データをアップロードするために使用する SageMaker 機能です。SageMaker Edge Manager でキャプチャデータの使用に関する詳細については、「Amazon SageMaker デベロッパーガイド」の「モデル管理」を参照してください。

要件

Greengrass コアデバイスに SageMaker Edge Manager エージェントを使用するため、次の要件を満たす必要があります。

  • Amazon Linux 2 で実行されている Greengrass コアデバイス、Debian ベースの Linux プラットフォーム (x86_64 またはArmv8)、または Windows (x86_64)。アカウントをお持ちでない場合は、「チュートリアル: AWS IoT Greengrass V2 の開始方法」を参照してください。

  • Python 3.6 以降 (ご使用の Python のバージョン用 pip がコアデバイスにインストールされていること)。

  • 次のように設定された Greengrass デバイスのロール:

    • 次の IAM ポリシーの例で示されているように、credentials.iot.amazonaws.comsagemaker.amazonaws.com がロールの継承を可能にする信頼関係。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    • AmazonSageMakerEdgeDeviceFleetPolicy IAM マネージドポリシー。

    • 次の IAM ポリシーの例で示されている s3:PutObject アクション。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
  • Greengrass コアデバイスと同じ AWS アカウント と AWS リージョン で作成された Amazon S3 バケット。SageMaker Edge Manager は、エッジデバイスフリートを作成して、デバイスに実行中の推論からサンプルデータを格納するため、S3 バケットが必要です。S3 バケットを作成する方法の情報については、「Amazon S3 の使用を開始」を参照してください。

  • Greengrass コアデバイスと同じ AWS IoT ロールのエイリアスを使用する SageMaker エッジ デバイス フリート。詳細については、「エッジデバイスフリートを作成する」を参照してください。

  • Greengrass コアデバイスは、 SageMaker エッジデバイスのフリートにエッジデバイスとして登録されました。エッジデバイス名は、コアデバイスの AWS IoT モノ名に一致する必要があります。詳細については、「Greengrass コアデバイスを登録する」を参照してください。