Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Téléchargement et configuration manuels de l'agent Edge Manager
Téléchargez l'agent Edge Manager en fonction de votre système d'exploitation, de votre architecture et de votre région AWS . Comme l'agent est mis à jour périodiquement, vous avez la possibilité de choisir votre agent en fonction des dates de sortie et des versions. Lorsque vous avez l'agent, créez un fichier de configuration JSON. Spécifiez le nom de l'objet IoT du dispositif, le nom de la flotte, les informations d'identification du dispositif et d'autres paires clé-valeur. Veuillez consulter Exécution de l'agent Edge Manager pour obtenir une liste complète des clés que vous devez spécifier dans le fichier de configuration. Vous pouvez exécuter l'agent sous forme de fichier binaire exécutable ou le lier en tant qu'objet partagé dynamique (DSO).
Fonctionnement de l'agent
L'agent s'exécute sur le CPU de vos dispositifs. L'agent exécute l'inférence sur le cadre et le matériel du dispositif cible que vous avez spécifié lors de la tâche de compilation. Par exemple, si vous avez compilé votre modèle pour le Jetson Nano, l'agent prend en charge le GPU dans le package Deep Learning Runtime
L'agent est publié au format binaire pour les systèmes d'exploitation pris en charge. Vérifiez que votre système d'exploitation est pris en charge et satisfait la configuration minimale du système d'exploitation indiquée dans le tableau suivant :
Installation de l'agent Edge Manager
Pour utiliser l'agent Edge Manager, vous devez d'abord obtenir les artefacts de version et un certificat racine. Les artefacts de version sont stockés dans un compartiment Amazon S3 dans la région us-west-2
. Pour télécharger les artefacts, spécifiez votre système d'exploitation (<OS>
) et la <VERSION>
.
Selon votre système d'exploitation, remplacez <OS>
par l'un des éléments suivants :
Windows 32 bits | Windows 64 bits | Linux x86-64 | Linux ARMv8 |
---|---|---|---|
windows-x86 | windows-x64 | linux-x64 | linux-armv8 |
La VERSION
se décompose en trois éléments : <MAJOR_VERSION>.<YYYY-MM-DD>-<SHA-7>
, où :
-
<MAJOR_VERSION>
: la version de sortie. La version de sortie est actuellement définie sur1
. -
<YYYY-MM-DD>
: l'horodatage de la sortie des artefacts. -
<SHA-7>
: l'ID de validation du référentiel à partir duquel la version est générée.
Vous devez fournir la <MAJOR_VERSION>
et l'horodatage au format YYYY-MM-DD
. Nous vous suggérons d'utiliser le dernier horodatage de version d'artefact.
Exécutez ce qui suit dans votre ligne de commande pour obtenir le dernier horodatage. Remplacez <OS>
par votre système d'exploitation :
aws s3 ls s3://sagemaker-edge-release-store-us-west-2-
<OS>
/Releases/ | sort -r
Par exemple, si votre système d'exploitation est Windows 32 bits, exécutez :
aws s3 ls s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/ | sort -r
Cela renvoie :
2020-12-01 23:33:36 0 PRE 1.20201218.81f481f/ PRE 1.20201207.02d0e97/
La sortie renvoyée dans cet exemple montre deux artefacts de version. Le fichier artefact de la première version indique que la version de publication possède une version majeure de1
, un horodatage 20201218
(au YYYY-MM-DD format) et un identifiant de validation 81f481f
SHA-7.
Note
La commande précédente suppose que vous avez configuré la AWS Command Line Interface. Pour plus d'informations sur la façon de configurer les paramètres avec lesquels l' AWS CLI utilisateur interagit AWS, voir Configuration de la AWS CLI.
Selon votre système d'exploitation, utilisez les commandes suivantes pour installer les artefacts :
Vous devez aussi télécharger un certificat racine. Ce certificat valide les artefacts du modèle signés par AWS avant de les charger sur vos appareils Edge.
Remplacez l'<OS>
correspondant à votre plateforme depuis la liste des systèmes d'exploitation pris en charge et remplacez <REGION>
par votre région AWS
.
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-
<OS>
/Certificates/<REGION>
/<REGION>
.pem .
Exécution de l'agent Edge Manager
Vous pouvez exécuter l'agent SageMaker AI Edge Manager en tant que processus autonome sous la forme d'un fichier binaire exécutable au format ELF (Executable and Linkable Format) ou vous pouvez créer un lien vers celui-ci en tant qu'objet partagé dynamique (.dll). Linux prend en charge son exécution en tant que fichier binaire exécutable autonome, ce qui correspond au mode préféré. Windows prend en charge son exécution en tant qu'objet partagé (.dll).
Sous Linux, nous vous recommandons d'exécuter le fichier binaire via un service qui fait partie de votre système d'initialisation (init
). Si vous voulez exécuter le fichier binaire directement, vous pouvez le faire dans un terminal, comme illustré dans l'exemple suivant. Si vous avez un système d'exploitation moderne, vous n'avez rien d'autre à installer avant d'exécuter l'agent, car toutes les exigences sont statiquement intégrées dans le fichier exécutable. Cela vous donne la flexibilité d'exécuter l'agent sur le terminal en tant que service ou dans un conteneur.
Lorsque vous avez l'agent, commencez par créer un fichier de configuration JSON. Spécifiez les paires clé/valeur suivantes :
-
sagemaker_edge_core_device_name
: nom de l'appareil. Ce nom d'appareil doit être enregistré avec le parc d'appareils dans la console SageMaker Edge Manager. -
sagemaker_edge_core_device_fleet_name
: le nom de la flotte à laquelle appartient le dispositif. -
sagemaker_edge_core_region
: AWS Région associée à l'appareil, au parc et aux compartiments Amazon S3. Cela correspond à la région où l'appareil est enregistré et à celle où le compartiment Amazon S3 est créé (elles sont censées être les mêmes). Les modèles eux-mêmes peuvent être compilés avec SageMaker Neo dans une région différente, cette configuration n'est pas liée à la région de compilation de modèles. -
sagemaker_edge_core_root_certs_path
: le chemin absolu du dossier vers les certificats racine. Ceci est utilisé pour valider l'appareil avec le AWS compte correspondant. -
sagemaker_edge_provider_aws_ca_cert_file
: chemin absolu vers le certificat Amazon Root CA (AmazonRootCA1.pem). Ceci est utilisé pour valider l'appareil avec le AWS compte correspondant.AmazonCA
est un certificat détenu par AWS. -
sagemaker_edge_provider_aws_cert_file
: chemin absolu pour AWS IoT signer le certificat racine (*.pem.crt
). -
sagemaker_edge_provider_aws_cert_pk_file
: chemin absolu vers la clé AWS IoT privée. (*.pem.key
). -
sagemaker_edge_provider_aws_iot_cred_endpoint
: le point de terminaison AWS IoT des informations d'identification (identifier
.iot.region
.amazonaws.com). Ce point de terminaison est utilisé pour la validation des informations d'identification. Pour de plus amples informations, veuillez consulter Connecting devices to AWS IoT(Connecter des dispositifs à IoT). -
sagemaker_edge_provider_provider
: indique l'implémentation de l'interface fournisseur utilisée. L'interface fournisseur communique avec les services réseau finaux pour les chargements, les pulsations et la validation de l'enregistrement. La valeur par défaut est"Aws"
. Nous autorisons des implémentations personnalisées de l'interface fournisseur. Peut être défini surNone
pour aucun fournisseur ou surCustom
pour une implémentation personnalisée avec le chemin d'objet partagé approprié fourni. -
sagemaker_edge_provider_provider_path
: fournit le chemin d'accès absolu à l'objet partagé d'implémentation du fournisseur (fichier .so ou .dll). Le fichier .dll ou .so du fournisseur"Aws"
est fourni avec la version de l'agent. Ce champ est obligatoire. -
sagemaker_edge_provider_s3_bucket_name
: le nom de votre compartiment Amazon S3 (pas l'URI du compartiment Amazon S3). Le nom du compartiment doit contenir une chaînesagemaker
. -
sagemaker_edge_log_verbose
(booléen) : facultatif. Cela définit le journal de débogage. SélectionnezTrue
ouFalse
. -
sagemaker_edge_telemetry_libsystemd_path
: pour Linux uniquement,systemd
implémente la métrique du compteur d'incidents de l'agent. Définissez le chemin absolu de libsystemd pour activer la métrique du compteur d'incidents. Vous pouvez trouver le chemin par défaut de libsystemd en exécutantwhereis libsystemd
dans le terminal de l'appareil. -
sagemaker_edge_core_capture_data_destination
: la destination pour le téléchargement des données de capture. Choisissez"Cloud"
ou"Disk"
. La valeur par défaut est définie sur"Disk"
. Lui attribuer la valeur"Disk"
entraîne l'écriture des données du ou des tenseurs d'entrée et sortie et des données auxiliaires dans le système de fichiers local à l'emplacement de votre choix. Lors de l'écriture dans"Cloud"
, utilisez le nom de compartiment Amazon S3 fourni dans la configurationsagemaker_edge_provider_s3_bucket_name
. -
sagemaker_edge_core_capture_data_disk_path
: définissez le chemin absolu dans le système de fichiers local, dans lequel les fichiers de données de capture sont écrits quand"Disk"
est la destination. Ce champ n'est pas utilisé lorsque"Cloud"
est spécifié comme destination. -
sagemaker_edge_core_folder_prefix
: préfixe parent dans Amazon S3 où les données capturées sont stockées lorsque vous spécifiez"Cloud"
comme destination des données de capture (sagemaker_edge_core_capture_data_disk_path)
). Les données capturées sont stockées dans un sous-dossier soussagemaker_edge_core_capture_data_disk_path
si"Disk"
est défini comme destination des données. -
sagemaker_edge_core_capture_data_buffer_size
(valeur entière) : taille du tampon circulaire des données de capture. Cela indique le nombre maximal de demandes stockées dans la mémoire tampon. -
sagemaker_edge_core_capture_data_batch_size
(valeur entière) : taille du lot de données de capture. Cela indique la taille d'un lot de demandes traitées à partir de la mémoire tampon. Elle doit être inférieure ou égale àsagemaker_edge_core_capture_data_buffer_size
. La moitié de la taille du tampon au maximum est recommandé pour la taille du lot. -
sagemaker_edge_core_capture_data_push_period_seconds
(valeur entière) : période de transmission des données de capture, en secondes. Un lot de demandes dans la mémoire tampon est traité lorsqu'il y a des demandes de taille de lot dans la mémoire tampon, ou lorsque cette période se termine (selon la première éventualité). Cette configuration définit cette période. -
sagemaker_edge_core_capture_data_base64_embed_limit
: la limite de téléchargement des données de capture, en octets. Valeur d'entier
Votre fichier de configuration doit ressembler à l'exemple suivant (avec vos valeurs spécifiques indiquées). Cet exemple utilise le AWS fournisseur par défaut ("Aws"
) et ne spécifie pas de téléchargement périodique.
{ "sagemaker_edge_core_device_name":
"device-name"
, "sagemaker_edge_core_device_fleet_name":"fleet-name"
, "sagemaker_edge_core_region":"region"
, "sagemaker_edge_core_root_certs_path": "<Absolute path to root certificates>
", "sagemaker_edge_provider_provider": "Aws", "sagemaker_edge_provider_provider_path" : "/path/to/
libprovider_aws.so", "sagemaker_edge_provider_aws_ca_cert_file": "<Absolute path to Amazon Root CA certificate>
/AmazonRootCA1.pem", "sagemaker_edge_provider_aws_cert_file": "<Absolute path to AWS IoT signing root certificate>
/device.pem.crt", "sagemaker_edge_provider_aws_cert_pk_file": "<Absolute path to AWS IoT private key.>
/private.pem.key", "sagemaker_edge_provider_aws_iot_cred_endpoint": "https://<AWS IoT Endpoint Address>
", "sagemaker_edge_core_capture_data_destination": "Cloud", "sagemaker_edge_provider_s3_bucket_name": "sagemaker-bucket-name
", "sagemaker_edge_core_folder_prefix":"Amazon S3 folder prefix"
, "sagemaker_edge_core_capture_data_buffer_size": 30, "sagemaker_edge_core_capture_data_batch_size": 10, "sagemaker_edge_core_capture_data_push_period_seconds": 4000, "sagemaker_edge_core_capture_data_base64_embed_limit": 2, "sagemaker_edge_log_verbose": false }
L'artefact de version inclut un fichier binaire exécutable appelé sagemaker_edge_agent_binary
dans le répertoire /bin
. Pour exécuter le fichier binaire, utilisez le fanion -a
pour créer un descripteur de fichier socket (.sock) dans un répertoire de votre choix, et spécifiez le chemin d'accès du fichier de configuration JSON de l'agent que vous avez créé avec le fanion -c
.
./sagemaker_edge_agent_binary -a
<ADDRESS_TO_SOCKET>
-c<PATH_TO_CONFIG_FILE>
L'exemple suivant montre l'extrait de code avec un répertoire et un chemin de fichier spécifiés :
./sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json
Dans cet exemple, un descripteur de fichier socket nommé sagemaker_edge_agent_example.sock
est créé dans le répertoire /tmp
et pointe vers un fichier de configuration situé dans le même répertoire de travail que l'agent appelé sagemaker_edge_config.json
.