執行代理程式 - 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 }] }