

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
<a name="getting-started-sagemaker"></a>

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.

**Contents**
+ [Présentation de](#getting-started-sagemaker-context)
+ [Conditions préalables](#getting-started-sagemaker-prerequisites)
+ [Étape 1 : Création d'un rôle d'exécution SageMaker AI](#getting-started-sagemaker-step-1)
+ [Étape 2 : Création de votre environnement de service](#getting-started-sagemaker-step-2)
+ [Étape 3 : Créez votre file SageMaker d'attente de tâches](#getting-started-sagemaker-step-3)
+ [Étape 4 : Création et soumission d'un poste de formation](#getting-started-sagemaker-step-4)
+ [Étape 5 : Surveiller l'état du travail](#getting-started-sagemaker-step-5)
+ [Étape 6 : Afficher le résultat de la tâche](#getting-started-sagemaker-step-6)
+ [Étape 7 : Nettoyez les ressources de votre didacticiel](#getting-started-sagemaker-step-7)
+ [Ressources supplémentaires](#getting-started-sagemaker-additional-resources)

## Présentation de
<a name="getting-started-sagemaker-context"></a>

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 :      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/batch/latest/userguide/getting-started-sagemaker.html)

## Conditions préalables
<a name="getting-started-sagemaker-prerequisites"></a>

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) *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`](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) dans le *Guide de AWS Command Line Interface l'utilisateur*.

## Étape 1 : Création d'un rôle d'exécution SageMaker AI
<a name="getting-started-sagemaker-step-1"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) de l'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*.

1. 

**Création du rôle IAM**

   Créez un fichier JSON nommé `sagemaker-trust-policy.json` avec la politique de confiance suivante :

------
#### [ JSON ]

****  

   ```
   {
       "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"
   ```

1. 

**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
   ```

1. 

**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
<a name="getting-started-sagemaker-step-2"></a>

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](using-service-linked-roles-batch-sagemaker.md)

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, consultez[Environnements de service pour AWS Batch](service-environments.md).

## Étape 3 : Créez votre file SageMaker d'attente de tâches
<a name="getting-started-sagemaker-step-3"></a>

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, consultez[Créez une file d'attente SageMaker de tâches de formation dans AWS Batch](create-sagemaker-job-queue.md).

## Étape 4 : Création et soumission d'un poste de formation
<a name="getting-started-sagemaker-step-4"></a>

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é `my_training_job.json` avec le contenu suivant. Remplacez *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'[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)API :

```
aws batch submit-service-job \
    --job-queue my-sm-training-fifo-jq \
    --job-name my-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, consultez[Charges utiles des tâches de maintenance dans AWS Batch](service-job-payload.md). Pour plus d'informations sur la soumission de tâches de service, consultez[Soumettre une offre d'emploi dans le secteur des services AWS Batch](service-job-submit.md).

## Étape 5 : Surveiller l'état du travail
<a name="getting-started-sagemaker-step-5"></a>

Vous pouvez suivre vos tâches de formation à l'aide des AWS Batch APIs méthodes suivantes : [DescribeServiceJob[ListServiceJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListServiceJobs.html)](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html), et [GetJobQueueSnapshot](https://docs.aws.amazon.com/batch/latest/APIReference/API_GetJobQueueSnapshot.html). 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, consultez[Mappage AWS Batch de l'état de la tâche du service avec SageMaker le statut de](service-job-status.md).

## Étape 6 : Afficher le résultat de la tâche
<a name="getting-started-sagemaker-step-6"></a>

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 AWSBatchmy-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
<a name="getting-started-sagemaker-step-7"></a>

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
<a name="getting-started-sagemaker-additional-resources"></a>

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](https://github.com/aws/amazon-sagemaker-examples) sur. GitHub
+ En savoir plus sur [Emplois de service à AWS Batch](service-jobs.md).
+ Découvrez [Charges utiles des tâches de maintenance dans AWS Batch](service-job-payload.md) 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](service-job-submit.md) l'`SubmitServiceJob`API.
+ Passez [Mappage AWS Batch de l'état de la tâche du service avec SageMaker le statut de](service-job-status.md) en revue pour comprendre les transitions entre les emplois et les états.
+ Consultez la [documentation du SDK SageMaker AI Python](https://sagemaker.readthedocs.io/en/stable/) 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](https://github.com/aws/amazon-sagemaker-examples) pour des flux de travail de machine learning plus complexes.