エージェントを実行する - Amazon SageMaker

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

エージェントを実行する

このセクションでは、g を使用してエージェントをバイナリとして実行しRPC、デバイスとフリートの両方が動作し、サンプルデータを収集していることを確認します。

  1. エージェントを起動する。

    SageMaker Edge Manager エージェントは、実行可能およびリンク可能な形式 (ELF) の実行可能バイナリの形式でスタンドアロンプロセスとして実行することも、動的共有オブジェクト (.dll) として にリンクすることもできます。Linux でサポートされているスタンドアロンの実行可能なバイナリファイルとして実行することが推奨されています。

    この例では、gRPC を使用してエージェントを実行します。gRPC は、任意の環境で実行できるオープンソースの高性能リモートプロシージャコール (RPC) フレームワークです。g の詳細についてはRPC、「gRPC ドキュメント」を参照してください。

    g を使用するにはRPC、次の手順を実行します。

    1. .proto ファイルでサービスを定義します。

    2. プロトコルバッファコンパイラーを使用して、サーバーコードとクライアントコードを生成します。

    3. Python (または g でサポートされている他の言語RPC) gRPC APIを使用して、サービスのサーバーを書き込みます。

    4. Python (または g でサポートされている他の言語RPC) gRPC APIを使用して、サービスのクライアントを書き込みます。

    ダウンロードしたリリースアーティファクトには、エージェントを実行する準備ができた gRPC アプリケーションが含まれています。このサンプルはリリースアーティファクトがある /bin ディレクトリにあります。sagemaker_edge_agent_binary バイナリ実行可能ファイルもこのディレクトリにあります。

    この例では、エージェントを実行するには、ソケットファイル (.sock) JSON と .config ファイルへのパスを指定します。

    ./bin/sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
  2. デバイスをチェックする。

    デバイスが接続され、データをサンプリングしていることを確認します。手動または自動で定期的にチェックすると、デバイスまたはフリートが適切に動作していることを確認できます。

    デバイスが属するフリートの名前と、一意のデバイス識別子を指定します。ローカルマシンで次のコマンドを実行します。

    sagemaker_client.describe_device( DeviceName=device_name, DeviceFleetName=device_fleet_name )

    指定したモデルの名前、モデルバージョン、最近のサンプリング時刻、最後の推論実行の時刻を確認できます。

    { "DeviceName": "sample-device", "DeviceFleetName": "demo-device-fleet", "IoTThingName": "sample-thing-name-1", "RegistrationTime": 1600977370, "LatestHeartbeat": 1600977370, "Models":[ { "ModelName": "mobilenet_v2.tar.gz", "ModelVersion": "1.1", "LatestSampleTime": 1600977370, "LatestInference": 1600977370 } ] }

    LastetHeartbeat が示すタイムスタンプはデバイスから受信した最後のシグナルを表します。LatestSampleTimeLatestInference は最後のデータサンプルと推論のタイムスタンプをそれぞれ表します。

  3. フリートをチェックする。

    GetDeviceFleetReport を使用してフリートが動作していることを確認します。デバイスが属するフリートの名前を指定します。

    sagemaker_client.get_device_fleet_report( DeviceFleetName=device_fleet_name )

    特定のモデルでは、名前、モデルバージョン、最新のサンプル時間、最後の推論が行われた日時、およびデータサンプルURIが保存されている Amazon S3 バケットを確認できます。

    # Sample output { "DeviceFleetName": "sample-device-fleet", "DeviceFleetArn": "arn:aws:sagemaker:us-west-2:9999999999:device-fleet/sample-fleet-name", "OutputConfig": { "S3OutputLocation": "s3://fleet-bucket/package_output", }, "AgentVersions":[{"Version": "1.1", "AgentCount": 2}]} "DeviceStats": {"Connected": 2, "Registered": 2}, "Models":[{ "ModelName": "sample-model", "ModelVersion": "1.1", "OfflineDeviceCount": 0, "ConnectedDeviceCount": 2, "ActiveDeviceCount": 2, "SamplingDeviceCount": 100 }] }