Exécuter l'agent - Amazon SageMaker

Exécuter l'agent

Dans cette section, vous allez exécuter l'agent en tant que fichier binaire à l'aide de gRPC, et vérifier que votre dispositif et votre flotte fonctionnent et collectent des exemples de données.

  1. Lancez l'agent.

    L'agent SageMaker Edge Manager peut être exécuté en tant que processus autonome sous la forme d'un fichier binaire exécutable ELF (Executable and Linkable Format), ou être lié en tant qu'objet partagé dynamique (.dll). L'exécution en tant que fichier binaire exécutable autonome est le mode préféré et elle est prise en charge sous Linux.

    Cet exemple utilise gRPC pour exécuter l'agent. gRPC est un cadre open source haute performance RPC (Remote Procedure Call) qui peut s'exécuter dans n'importe quel environnement. Pour de plus amples informations sur gRPC, veuillez consulter la documentation gRPC.

    Pour utiliser gRPC, effectuez les opérations suivantes :

    1. Définissez un service dans un fichier .proto.

    2. Générez un code serveur et client à l'aide du compilateur de tampon de protocole.

    3. Utilisez l'API gRPC Python (ou d'autres langages pris en charge par gRPC) pour écrire le serveur pour votre service.

    4. Utilisez l'API gRPC Python (ou d'autres langages pris en charge par gRPC) pour écrire un client pour votre service.

    L'artefact de version que vous avez téléchargé contient une application gRPC prête à exécuter l'agent. L'exemple se trouve dans le répertoire /bin de votre artefact de version. Le fichier binaire exécutable sagemaker_edge_agent_binary se trouve dans ce répertoire.

    Pour exécuter l'agent avec cet exemple, indiquez le chemin d'accès à votre fichier socket (.sock) et au fichier .config JSON :

    ./bin/sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
  2. Vérifiez votre dispositif.

    Vérifiez que votre dispositif est connecté et échantillonne les données. L'exécution de vérifications périodiques, manuelle ou automatique, vous permet de vérifier le bon fonctionnement de votre dispositif ou de votre flotte.

    Indiquez le nom de la flotte à laquelle appartient le périphérique, ainsi que l'identifiant unique. Sur votre machine locale, exécutez ce qui suit :

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

    Pour le modèle donné, vous pouvez voir le nom, la version de modèle, l'heure du dernier échantillonnage et à quand remonte la dernière inférence.

    { "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 } ] }

    L'horodatage fourni par LastetHeartbeat indique le dernier signal reçu du périphérique. LatestSampleTime et LatestInference décrivent l'horodatage du dernier échantillon de données et l'inférence, respectivement.

  3. Vérifiez votre flotte.

    Vérifiez que votre flotte fonctionne avec GetDeviceFleetReport. Indiquez le nom de la flotte à laquelle appartient le dispositif.

    sagemaer_client.get_device_fleet_report( DeviceFleetName=device_fleet_name )

    Pour un modèle donné, vous pouvez voir le nom, la version de modèle, l'heure du dernier échantillonnage, à quand remonte la dernière inférence, et l'URI du compartiment Amazon S3 où les échantillons de données sont stockés.

    # 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 }] }