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.
Accédez à un conteneur de formation AWS Systems Manager pour le débogage à distance
Vous pouvez vous connecter en toute sécurité aux conteneurs de SageMaker formation via AWS Systems Manager (SSM). Cela vous donne un accès au niveau du shell pour les tâches de formation au débogage qui s'exécutent dans le conteneur. Vous pouvez également enregistrer les commandes et les réponses qui sont diffusées sur Amazon CloudWatch. Si vous utilisez votre propre Amazon Virtual Private Cloud (VPC) pour entraîner un modèle, vous pouvez l'utiliser pour configurer un point de terminaison VPC AWS PrivateLink pour SSM et vous connecter à des conteneurs en privé via SSM.
Vous pouvez vous connecter à SageMaker Framework Containers
Configurer les autorisations IAM
Pour activer SSM dans votre conteneur de SageMaker formation, vous devez configurer un rôle IAM pour le conteneur. Pour que vous ou les utilisateurs de votre AWS compte puissiez accéder aux conteneurs de formation via SSM, vous devez configurer les utilisateurs IAM autorisés à utiliser SSM.
Rôle IAM
Pour qu'un conteneur de SageMaker formation commence par l'agent SSM, fournissez un rôle IAM avec des autorisations SSM.
Pour activer le débogage à distance pour votre tâche de formation, vous SageMaker devez démarrer l'agent SSM dans le conteneur de formation au début de la tâche de formation. Pour permettre à l'agent SSM de communiquer avec le service SSM, ajoutez la politique suivante au rôle IAM que vous utilisez pour exécuter votre tâche de formation.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }
Utilisateur IAM
Ajoutez la politique suivante pour fournir à un utilisateur IAM des autorisations de session SSM lui permettant de se connecter à une cible SSM. Dans ce cas, la cible SSM est un conteneur d' SageMaker entraînement.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
Vous pouvez empêcher les utilisateurs IAM de se connecter uniquement à des conteneurs pour des tâches de formation spécifiques en ajoutant la Condition
clé, comme indiqué dans l'exemple de politique suivant.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "sagemaker-training-job:*" ] } } } ] }
Vous pouvez également utiliser explicitement la clé de sagemaker:EnableRemoteDebug
condition pour restreindre le débogage à distance. Voici un exemple de politique permettant aux utilisateurs IAM de restreindre le débogage à distance.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyRemoteDebugInTrainingJob", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:UpdateTrainingJob" ], "Resource": "*", "Condition": { "BoolIfExists": { "sagemaker:EnableRemoteDebug": false } } } ] }
Pour plus d'informations, consultez la section Clés de condition pour Amazon SageMaker dans le AWS Service Authorization Reference.
Comment activer le débogage à distance pour une tâche de SageMaker formation
Dans cette section, découvrez comment activer le débogage à distance lors du démarrage ou de la mise à jour d'une tâche de formation sur Amazon SageMaker.
Accédez à votre conteneur de formation
Vous pouvez accéder à un conteneur de formation lorsque le poste SecondaryStatus
de formation correspondant estTraining
. Les exemples de code suivants montrent comment vérifier le statut de votre tâche de formation à l'aide de l'DescribeTrainingJob
API, comment vérifier les connexions de la tâche de formation et comment vous connecter au conteneur de formation. CloudWatch
Pour vérifier le statut d'un poste de formation
Pour trouver le nom d'hôte d'un conteneur de formation
Pour vous connecter au conteneur de formation via SSM, utilisez ce format pour l'ID cible :sagemaker-training-job:<training-job-name>_algo-<n>
, où algo-<n>
est le nom de l'hôte du conteneur. Si votre tâche s'exécute sur une seule instance, l'hôte l'est toujoursalgo-1
. Si vous exécutez une tâche de formation distribuée sur plusieurs instances, vous SageMaker créez un nombre égal d'hôtes et de flux de journaux. Par exemple, si vous utilisez 4 instances, SageMaker crée algo-1
algo-2
,algo-3
, etalgo-4
. Vous devez déterminer le flux de journal que vous souhaitez déboguer, ainsi que son numéro d'hôte. Pour accéder aux flux de journaux associés à une tâche de formation, procédez comme suit.
Ouvrez la SageMaker console Amazon à l'adresse https://console.aws.amazon.com/sagemaker/
. -
Dans le volet de navigation de gauche, choisissez Training, puis Training jobs.
-
Dans la liste des tâches de formation, choisissez la tâche de formation que vous souhaitez déboguer. La page des détails du poste de formation s'ouvre.
-
Dans la section Moniteur, choisissez Afficher les journaux. La liste des flux du journal des tâches de formation associées s'ouvre dans la CloudWatch console.
-
Les noms des flux de journaux apparaissent au
<training-job-name>/algo-<n>-<time-stamp>
format,algo-<n>
représentant le nom d'hôte.
Pour en savoir plus sur la gestion des SageMaker informations de configuration pour la formation distribuée multi-instances, consultez la section Configuration de la formation distribuée.
Pour accéder au conteneur de formation
Utilisez la commande suivante dans le terminal pour démarrer la session SSM (aws ssm start-session
) et vous connecter au conteneur d'entraînement.
aws ssm start-session --target sagemaker-training-job:
<training-job-name>
_algo-<n>
Par exemple, si le nom de la tâche de formation est training-job-test-remote-debug
et le nom d'hôte l'estalgo-1
, l'ID cible devientsagemaker-training-job:training-job-test-remote-debug_algo-1
. Si le résultat de cette commande est similaire àStarting session with SessionId:xxxxx
, la connexion est réussie.
Accès SSM avec AWS PrivateLink
Si vos conteneurs de formation s'exécutent dans un Amazon Virtual Private Cloud qui n'est pas connecté à l'Internet public, vous pouvez les utiliser AWS PrivateLink pour activer le SSM. AWS PrivateLink restreint tout le trafic réseau entre vos instances de point de terminaison, SSM et Amazon EC2 vers le réseau Amazon. Pour plus d'informations sur la configuration de l'accès SSM avec AWS PrivateLink, consultez Configurer un point de terminaison Amazon VPC pour Session Manager.
Enregistrer les commandes et les résultats des sessions SSM
Après avoir suivi les instructions de la section Créer un document de préférences du gestionnaire de session (ligne de commande), vous pouvez créer des documents SSM qui définissent vos préférences pour les sessions SSM. Vous pouvez utiliser les documents SSM pour configurer les options de session, notamment le chiffrement des données, la durée de session et la journalisation. Par exemple, vous pouvez spécifier si vous souhaitez stocker les données du journal de session dans un bucket Amazon Simple Storage Service (Amazon S3) ou dans un groupe CloudWatch Amazon Logs. Vous pouvez créer des documents qui définissent les préférences générales pour toutes les sessions d'un AWS compte Région AWS et/ou des documents qui définissent les préférences pour des sessions individuelles.
Résolution des problèmes en vérifiant les journaux d'erreurs de SSM
Amazon SageMaker télécharge les erreurs de l'agent SSM vers vos CloudWatch journaux dans le groupe de /aws/sagemaker/TrainingJobs
journaux. Les flux de journaux de l'agent SSM sont nommés dans ce format :<job-name>/algo-<n>-<timestamp>/ssm
. Par exemple, si vous créez une tâche de formation à deux nœuds nomméetraining-job-test-remote-debug
, le journal des tâches de formation training-job-test-remote-debug/algo-<n>-<timestamp>
et plusieurs journaux d'erreurs de l'agent SSM training-job-test-remote-debug/algo-<n>-<timestamp>/ssm
sont téléchargés dans vos CloudWatch journaux. Dans cet exemple, vous pouvez consulter les flux de */ssm
journaux pour résoudre les problèmes liés au SSM.
training-job-test-remote-debug/algo-1-1680535238 training-job-test-remote-debug/algo-2-1680535238 training-job-test-remote-debug/algo-1-1680535238/ssm training-job-test-remote-debug/algo-2-1680535238/ssm
Considérations
Tenez compte des points suivants lorsque vous utilisez le débogage SageMaker à distance.
-
Le débogage à distance n'est pas pris en charge pour les conteneurs d'SageMaker algorithmes ou les conteneurs à partir de maintenant SageMaker . AWS Marketplace
-
Vous ne pouvez pas démarrer une session SSM pour les conteneurs sur lesquels l'isolation réseau est activée car cette isolation empêche les appels réseau sortants.