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.
Commencer à utiliser AWS Batch l' SageMaker IA
AWS Batch les tâches de service vous permettent de soumettre des tâches de SageMaker formation par le biais de files AWS Batch d'attente de tâches avec des fonctionnalités de planification, de priorisation et de mise en file d'attente. Ce didacticiel explique comment configurer et exécuter une tâche de SageMaker formation simple à l'aide de tâches AWS Batch de service.
Table des matières
Présentation
Ce didacticiel explique comment configurer des tâches AWS Batch de service pour des tâches de SageMaker formation à l'aide du AWS CLI.
- Public visé
-
Ce didacticiel est destiné aux scientifiques des données et aux développeurs chargés de configurer et d'exécuter des tâches de formation en apprentissage automatique à grande échelle.
- Fonctionnalités utilisées
-
Ce didacticiel vous montre comment utiliser le AWS CLI pour :
-
Créer un environnement de service pour les emplois SageMaker de formation
-
Création d'une file d'attente SageMaker de tâches de formation
-
Soumettre des tâches de service à l'aide de l'
SubmitServiceJob
API -
Surveillez l'état des tâches et visualisez les résultats
-
CloudWatch Journaux d'accès aux offres de formation
-
- Temps requis
-
Ce didacticiel dure environ 15 minutes.
- Restrictions régionales
-
Ce didacticiel peut être suivi dans n'importe quelle AWS région où les deux AWS Batch et SageMaker l'IA sont disponibles.
- Coûts d'utilisation des ressources
-
La création d'un AWS compte est gratuite. Cependant, la mise en œuvre de cette solution peut entraîner des coûts pour les ressources suivantes :
Description Coût (dollar américain) SageMaker Instances de formation à l'IA Vous payez pour chaque instance d' SageMaker AI Training utilisée. Pour plus d'informations sur la tarification, consultez la section Tarification de l'SageMaker IA . Stockage Amazon S3 Coût minimal pour le stockage des résultats des tâches de formation. Pour plus d’informations, consultez Tarification Amazon S3 .
Prérequis
Avant de commencer ce didacticiel, vous devez installer et configurer les outils et ressources suivants dont vous avez besoin pour créer et gérer à la fois AWS Batch des ressources d' SageMaker intelligence artificielle.
-
AWS CLI— Un outil de ligne de commande pour travailler avec AWS les services, y compris AWS Batch l' SageMaker IA. Ce guide nécessite que vous utilisiez la version 2.8.6 ou ultérieure. Pour plus d'informations, consultez la section Installation, mise à jour et désinstallation du AWS CLI dans le guide de l'AWS Command Line Interface utilisateur. Après l'avoir installé AWS CLI, nous vous recommandons de le configurer également. Pour plus d'informations, consultez la section Configuration rapide avec
aws configure
dans le Guide de AWS Command Line Interface l'utilisateur.
Étape 1 : Création d'un rôle d'exécution SageMaker AI
SageMaker L'IA utilise des rôles d'exécution pour effectuer des opérations en votre nom à l'aide d'autres AWS
services. Vous devez créer un rôle d'exécution et accorder à l' SageMaker IA les autorisations nécessaires pour utiliser les services et les ressources nécessaires aux tâches de formation. Utilisez la politique AmazonSageMakerFullAccess
gérée car elle inclut des autorisations pour Amazon S3.
Note
Suivez les instructions ci-dessous pour créer le rôle d'exécution SageMaker AI pour ce didacticiel.
Avant de créer un rôle d'exécution pour votre environnement de production, nous vous recommandons de consulter le guide du développeur SageMaker AI intitulé Comment utiliser les rôles d'exécution de l'SageMaker IA.
-
Création du rôle IAM
Créez un fichier JSON nommé
sagemaker-trust-policy.json
avec la politique de confiance suivante :{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Créez le rôle IAM à l'aide de la politique de confiance :
aws iam create-role \ --role-name SageMakerExecutionRole \ --assume-role-policy-document file://sagemaker-trust-policy.json \ --description "Execution role for SageMaker training jobs"
-
Joindre des politiques gérées
Associez les politiques gérées requises au rôle :
aws iam attach-role-policy \ --role-name SageMakerExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
aws iam attach-role-policy \ --role-name SageMakerExecutionRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
-
Notez le rôle ARN
Obtenez l'ARN du rôle, dont vous aurez besoin ultérieurement :
aws iam get-role --role-name SageMakerExecutionRole --query 'Role.Arn' --output text
Enregistrez cet ARN tel que vous l'utiliserez lors de la création de la charge utile de votre tâche de formation.
Étape 2 : Création de votre environnement de service
Un environnement de service définit les contraintes de capacité pour les postes de SageMaker formation. L'environnement de service encapsule le nombre maximum d'instances de formation pouvant être exécutées simultanément.
Important
Lorsque vous créez votre premier environnement de service pour SageMaker Training, un rôle lié au service est AWS Batch
automatiquement créé AWSServiceRoleForAWSBatchWithSagemaker
dans votre compte. Ce rôle permet de AWS Batch mettre en file d'attente et de gérer les tâches de SageMaker formation en votre nom. Pour plus d'informations sur ce rôle lié à un service et ses autorisations, consultez. Utiliser les rôles pour utiliser AWS Batch l' SageMaker IA
Créez un environnement de service capable de gérer jusqu'à 5 instances :
aws batch create-service-environment \ --service-environment-name
TutorialServiceEnvironment
\ --service-environment-type SAGEMAKER_TRAINING \ --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=5
Sortie :
{ "serviceEnvironmentName": "
TutorialServiceEnvironment
", "serviceEnvironmentArn": "arn:aws:batch:your-region
:your-account-id
:service-environment/TutorialServiceEnvironment
" }
Vérifiez que votre environnement de service a bien été créé :
aws batch describe-service-environments --service-environments
TutorialServiceEnvironment
Sortie :
{ "serviceEnvironments": [ { "serviceEnvironmentName": "
TutorialServiceEnvironment
", "serviceEnvironmentArn": "arn:aws:batch:your-region
:your-account-id
:service-environment/TutorialServiceEnvironment
", "serviceEnvironmentType": "SAGEMAKER_TRAINING", "state": "ENABLED", "status": "VALID", "capacityLimits": [ { "maxCapacity": 5, "capacityUnit": "NUM_INSTANCES" } ], "tags": {} } ] }
Pour plus d'informations sur les environnements de service, consultezEnvironnements de service pour AWS Batch.
Étape 3 : Créez votre file SageMaker d'attente de tâches
Une file d'attente de SageMaker tâches gère la planification et l'exécution des tâches de service. Les tâches soumises à cette file d'attente seront envoyées à votre environnement de service en fonction de la capacité disponible.
Créez une file d'attente SageMaker de tâches de formation :
aws batch create-job-queue \ --job-queue-name
my-sm-training-fifo-jq
\ --job-queue-type SAGEMAKER_TRAINING \ --priority 1 \ --service-environment-order order=1,serviceEnvironment=TutorialServiceEnvironment
Sortie :
{ "jobQueueName": "
my-sm-training-fifo-jq
", "jobQueueArn": "arn:aws:batch:your-region
:your-account-id
:job-queue/my-sm-training-fifo-jq
" }
Vérifiez que votre file d'attente de tâches a bien été créée :
aws batch describe-job-queues --job-queues
my-sm-training-fifo-jq
Sortie :
{ "jobQueues": [ { "jobQueueName": "
my-sm-training-fifo-jq
", "jobQueueArn": "arn:aws:batch:your-region
:your-account-id
:job-queue/my-sm-training-fifo-jq
", "state": "ENABLED", "status": "VALID", "statusReason": "JobQueue Healthy", "priority": 1, "computeEnvironmentOrder": [], "serviceEnvironmentOrder": [ { "order": 1, "serviceEnvironment": "arn:aws:batch:your-region
:your-account-id
:service-environment/TutorialServiceEnvironment
" } ], "jobQueueType": "SAGEMAKER_TRAINING", "tags": {} } ] }
Pour plus d'informations sur les files SageMaker d'attente de tâches, consultezCréez une file d'attente SageMaker de tâches de formation dans AWS Batch.
Étape 4 : Création et soumission d'un poste de formation
Vous allez maintenant créer une tâche de formation simple et la soumettre à votre liste d'offres d'emploi. Cet exemple utilise une tâche de formation de base « Bonjour tout le monde » qui illustre les fonctionnalités d'une tâche de service.
Créez un fichier nommé
avec le contenu suivant. Remplacez my_training_job.json
your-account-id
par votre identifiant de AWS
compte :
Note
S3OutputPath
est nécessaire pour créer la tâche de SageMaker formation, mais les résultats de ce didacticiel ne sont pas stockés dans le compartiment Amazon S3 et vous pouvez utiliser le chemin dans le JSON suivant. Dans votre environnement de production, vous aurez besoin d'un compartiment Amazon S3 valide pour y stocker la sortie si vous le souhaitez.
{ "TrainingJobName": "
my-simple-training-job
", "RoleArn": "arn:aws:iam::your-account-id
:role/SageMakerExecutionRole", "AlgorithmSpecification": { "TrainingInputMode": "File", "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.0.0-cpu-py310", "ContainerEntrypoint": [ "echo", "hello world" ] }, "ResourceConfig": { "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "VolumeSizeInGB": 1 }, "OutputDataConfig": { "S3OutputPath": "s3://your-s3-bucket/output" }, "StoppingCondition": { "MaxRuntimeInSeconds": 30 } }
Soumettez le poste de formation à l'aide de l'SubmitServiceJobAPI :
aws batch submit-service-job \ --job-queue
my-sm-training-fifo-jq
\ --job-namemy-batch-sm-job
\ --service-job-type SAGEMAKER_TRAINING \ --retry-strategy attempts=1 \ --timeout-config attemptDurationSeconds=60 \ --service-request-payload file://my_training_job.json
Sortie :
{ "jobArn": "arn:aws:batch:
your-region
:your-account-id
:service-job/your-job-id
", "jobName": "my-batch-sm-job
", "jobId": "your-job-id
" }
Pour plus d'informations sur les charges utiles des tâches de service, consultezCharges utiles des tâches de maintenance dans AWS Batch. Pour plus d'informations sur la soumission de tâches de service, consultezSoumettre une offre d'emploi dans le secteur des services AWS Batch.
Étape 5 : Surveiller l'état du travail
Vous pouvez suivre vos tâches de formation à l'aide des AWS Batch APIs méthodes suivantes : DescribeServiceJobListServiceJobs, et GetJobQueueSnapshot. Cette section présente différentes méthodes pour vérifier l'état des tâches et les informations relatives à la file d'attente.
Consultez les tâches en cours dans votre file d'attente :
aws batch list-service-jobs \ --job-queue
my-sm-training-fifo-jq
--job-status RUNNING
Sortie :
{ "jobSummaryList": [ { "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:
your-region
:your-account-id
:training-job/AWSBatch<my-simple-training-job>
<your-attempt-id>
" } }, "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region
:your-account-id
:service-job/your-job-id
", "jobId": "your-job-id
", "jobName": "my-batch-sm-job
", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING", "startedAt": 1753718820 } ] }
Afficher les offres d'emploi disponibles dans l'RUNNABLE
État :
aws batch list-service-jobs \ --job-queue
my-sm-training-fifo-jq
--job-status RUNNABLE
Obtenez un aperçu des tâches à venir dans votre file d'attente :
aws batch get-job-queue-snapshot --job-queue
my-sm-training-fifo-jq
Sortie :
{ "frontOfQueue": { "jobs": [ { "jobArn": "arn:aws:batch:
your-region
:your-account-id
:service-job/your-job-id
", "earliestTimeAtPosition": 1753718880 }, { "jobArn": "arn:aws:batch:your-region
:your-account-id
:service-job/your-job-id-2
", "earliestTimeAtPosition": 1753718940 } ], "lastUpdatedAt": 1753718970 } }
Rechercher des offres d'emploi par nom :
aws batch list-service-jobs \ --job-queue
my-sm-training-fifo-jq
\ --filters name=JOB_NAME,values="my-batch-sm-job
"
Sortie :
{ "jobSummaryList": [ { "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:
your-region
:your-account-id
:training-job/AWSBatch<my-simple-training-job>
<your-attempt-id>
" } }, "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region
:your-account-id
:service-job/your-job-id
", "jobId": "your-job-id
", "jobName": "my-batch-sm-job
", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING" } ] }
Pour plus d'informations sur le mappage de l'état des tâches, consultezMappage AWS Batch de l'état de la tâche du service avec SageMaker le statut de.
Étape 6 : Afficher le résultat de la tâche
Une fois votre tâche terminée, vous pouvez consulter ses résultats et ses journaux grâce à l' SageMaker IA APIs. AWS Batch
Obtenez des informations détaillées sur votre travail auprès de AWS Batch :
aws batch describe-service-job \ --job-id
your-job-id
Sortie :
{ "attempts": [ { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:
your-region
:your-account-id
:training-job/AWSBatch<my-simple-training-job>
<your-attempt-id>
" }, "startedAt": 1753718820, "stoppedAt": 1753718880, "statusReason": "Received status from SageMaker: Training job completed" } ], "createdAt": 1753718760, "jobArn": "arn:aws:batch:your-region
:your-account-id
:service-job/your-job-id
", "jobId": "your-job-id
", "jobName": "my-batch-sm-job
", "jobQueue": "arn:aws:batch:your-region
:your-account-id
:job-queue/my-sm-training-fifo-jq
", "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:your-region
:your-account-id
:training-job/AWSBatch<my-simple-training-job>
<your-attempt-id>
" } }, "retryStrategy": { "attempts": 1, "evaluateOnExit": [] }, "serviceRequestPayload": "your-training-job-request-json
", "serviceJobType": "SAGEMAKER_TRAINING", "startedAt": 1753718820, "status": "SUCCEEDED", "statusReason": "Received status from SageMaker: Training job completed", "stoppedAt": 1753718880, "tags": {}, "timeoutConfig": { "attemptDurationSeconds": 60 } }
Cette commande renvoie des informations complètes sur la tâche, y compris l'ARN de la tâche de SageMaker formation, que vous pouvez utiliser pour accéder à la tâche directement via l' SageMaker IA :
aws sagemaker describe-training-job \ --training-job-name AWSBatch
<my-simple-training-job>
<your-attempt-id>
Pour consulter les CloudWatch journaux relatifs à votre tâche de formation, obtenez d'abord le nom du flux de journaux :
aws logs describe-log-streams \ --log-group-name /aws/sagemaker/TrainingJobs \ --log-stream-name-prefix AWSBatch
my-simple-training-job
Sortie :
{ "logStreams": [ { "logStreamName": "
your-log-stream-name
", "creationTime": 1753718830, "firstEventTimestamp": 1753718840, "lastEventTimestamp": 1753718850, "lastIngestionTime": 1753718860, "uploadSequenceToken":upload-sequence-token
, "arn": "arn:aws:logs:your-region
:your-account-id
:log-group:/aws/sagemaker/TrainingJobs:log-stream:AWSBatch<my-simple-training-job>
<your-attempt-id>
/algo-1-algo-id
", "storedBytes": 0 } ] }
Récupérez ensuite les journaux en utilisant le nom du flux de journaux indiqué dans la réponse précédente :
aws logs get-log-events \ --log-group-name /aws/sagemaker/TrainingJobs \ --log-stream-name
your-log-stream-name
Sortie :
{ "events": [ { "timestamp": 1753718845, "message": "hello world", "ingestionTime": 1753718865 } ], "nextForwardToken": "
next-forward-token
", "nextBackwardToken": "next-backward-token
" }
La sortie du journal affiche le message « Bonjour tout le monde » envoyé par votre tâche de formation, confirmant que la tâche a été exécutée correctement.
Étape 7 : Nettoyez les ressources de votre didacticiel
Lorsque vous avez terminé le didacticiel, nettoyez les ressources que vous avez créées pour éviter des frais récurrents.
Tout d'abord, désactivez et supprimez la file d'attente des tâches :
aws batch update-job-queue \ --job-queue
my-sm-training-fifo-jq
\ --state DISABLED
Attendez que la file d'attente des tâches soit désactivée, puis supprimez-la :
aws batch delete-job-queue \ --job-queue
my-sm-training-fifo-jq
Ensuite, désactivez et supprimez l'environnement de service :
aws batch update-service-environment \ --service-environment
TutorialServiceEnvironment
\ --state DISABLED
Attendez que l'environnement de service soit désactivé, puis supprimez-le :
aws batch delete-service-environment \ --service-environment
TutorialServiceEnvironment
Ressources supplémentaires
Une fois le didacticiel terminé, vous souhaiterez peut-être explorer les sujets suivants :
-
Nous vous recommandons d'utiliser le PySDK pour créer des tâches de service et les soumettre à votre file d'attente de tâches, car PySDK possède des classes d'assistance et des utilitaires. Pour un exemple d'utilisation de PySDK, consultez les exemples d'SageMaker IA
sur. GitHub -
En savoir plus sur Emplois de service à AWS Batch.
-
Découvrez Charges utiles des tâches de maintenance dans AWS Batch des configurations de tâches de formation plus complexes.
-
En savoir plus sur Soumettre une offre d'emploi dans le secteur des services AWS Batch l'
SubmitServiceJob
API. -
Passez Mappage AWS Batch de l'état de la tâche du service avec SageMaker le statut de en revue pour comprendre les transitions entre les emplois et les états.
-
Consultez la documentation du SDK SageMaker AI Python
pour découvrir d'autres méthodes riches en fonctionnalités pour créer et soumettre des tâches de SageMaker formation à l'aide de Python. -
Découvrez des SageMakerexemples de blocs-notes
pour des flux de travail de machine learning plus complexes.