CreateTrainingJob.
Amazon SageMaker utilise des images Docker pour exécuter les tâches d’entraînement. Les images récupérées par SageMaker doivent être stockées dans Amazon Elastic Container Registry (ECR). Autrement dit, l’image que vous utilisez pour l’entraînement doit être stockée sur ECR.
Ce guide montre comment exécuter des SageMaker Training Jobs. Pour savoir comment déployer des modèles pour l’inférence sur Amazon SageMaker, consultez cet exemple de job Launch.
Prérequis
Avant de commencer, vous devez remplir les prérequis suivants :- Déterminez si vous souhaitez que l’agent Launch génère une image Docker à votre place.
- Configurez les ressources AWS et rassemblez les informations relatives à S3, à ECR et aux rôles IAM SageMaker.
- Créez un rôle IAM pour l’agent Launch.
Déterminer si vous souhaitez que l’agent Launch crée une image Docker
Déterminez si vous souhaitez que l’agent W&B Launch crée une image Docker à votre place. Deux options s’offrent à vous :- Autoriser l’agent Launch à créer une image Docker, à la téléverser vers Amazon ECR et à soumettre des jobs SageMaker Training à votre place. Cette option peut simplifier la tâche des ingénieurs ML qui itèrent rapidement sur leur code d’entraînement.
- Utiliser une image Docker existante contenant vos scripts d’entraînement ou d’inférence. Cette option s’intègre bien aux systèmes de CI existants. Si vous la choisissez, vous devez téléverser manuellement votre image Docker vers votre registre de conteneurs sur Amazon ECR.
Configurer les ressources AWS
Les ressources AWS suivantes doivent être configurées dans la région AWS de votre choix :- Un dépôt ECR pour stocker les images de conteneur.
- Un ou plusieurs buckets S3 pour stocker les entrées et les sorties de vos tâches SageMaker Training.
- Un rôle IAM pour Amazon SageMaker qui autorise SageMaker à exécuter des tâches d’entraînement et à interagir avec Amazon ECR et Amazon S3.
Créer une politique IAM pour l’agent Launch
L’agent Launch a besoin d’une politique IAM qui accorde les autorisations nécessaires pour soumettre des tâches d’entraînement SageMaker et, éventuellement, pour téléverser des images vers ECR. Pour créer la politique, procédez comme suit :- Dans l’écran IAM d’AWS, créez une nouvelle politique.
- Basculez vers l’éditeur de politique JSON, puis collez la politique correspondant à votre cas d’usage. Remplacez les espaces réservés entre
[BRACKETS]par vos propres valeurs :
- L'agent soumet une image Docker préconstruite
- L'agent construit et soumet une image Docker
- Cliquez sur Next.
- Attribuez un nom et une description à la politique.
- Cliquez sur Create policy.
Créer un rôle IAM pour l’agent Launch
L’agent Launch doit disposer de l’autorisation de créer des tâches d’entraînement Amazon SageMaker. En joignant la politique créée dans la section précédente à un rôle dédié, vous permettez à l’agent d’assumer ces autorisations lors de l’exécution. Pour créer un rôle IAM, procédez comme suit :- Depuis l’écran IAM d’AWS, créez un nouveau rôle.
- Pour Trusted Entity, sélectionnez AWS Account (ou une autre option adaptée aux politiques de votre organisation).
- Faites défiler l’écran des autorisations et sélectionnez le nom de la politique créée dans la section précédente.
- Attribuez un nom et une description au rôle.
- Sélectionnez Create role.
- Notez l’ARN du rôle. Vous devrez le spécifier lors de la configuration de l’agent Launch.
- Si vous souhaitez que l’agent Launch génère des images, consultez la page Configuration avancée de l’agent pour connaître les autorisations supplémentaires requises.
- L’autorisation
kms:CreateGrantpour les files d’attente SageMaker n’est requise que si laResourceConfigassociée spécifie unVolumeKmsKeyIdet que le rôle associé ne dispose d’aucune politique autorisant cette action.
Configurer la file d’attente Launch pour SageMaker
Une fois les prérequis AWS en place, vous pouvez créer la file d’attente W&B Launch qui achemine les jobs vers SageMaker. Créez dans la W&B App une file d’attente qui utilise SageMaker comme ressource de calcul :- Accédez à l’application Launch.
- Cliquez sur Create Queue.
- Sélectionnez l’Entity dans laquelle vous souhaitez créer la file d’attente.
- Saisissez un nom pour votre file d’attente dans le champ Name.
- Sélectionnez SageMaker comme Resource.
- Dans le champ Configuration, fournissez les informations relatives à votre job SageMaker. Par défaut, W&B préremplit un corps de requête
CreateTrainingJobau format YAML et JSON :
RoleArn: ARN du rôle IAM d’exécution SageMaker (voir les prérequis). Ne le confondez pas avec le rôle IAM de l’agent Launch.OutputDataConfig.S3OutputPath: URI Amazon S3 indiquant l’emplacement où SageMaker stocke les sorties.ResourceConfig: spécification obligatoire de la configuration des ressources. Pour connaître les options disponibles, consultez la documentation AWSResourceConfig.StoppingCondition: spécification obligatoire des conditions d’arrêt de la tâche d’entraînement. Pour connaître les options disponibles, consultez la documentation AWSStoppingCondition.
- Cliquez sur Create Queue.
Configurer l’agent Launch
Les sections suivantes décrivent où vous pouvez déployer votre agent et comment le configurer en fonction de l’endroit où vous le déployez. Vous disposez de plusieurs options pour déployer l’agent Launch pour une file d’attente Amazon SageMaker : sur une machine locale, sur une instance EC2 ou dans un cluster EKS. Configurez votre agent Launch en fonction de l’endroit où vous le déployez.Choisir où exécuter l’agent Launch
Pour les charges de travail de production et pour les clients qui disposent déjà d’un cluster EKS, W&B recommande de déployer l’agent Launch sur le cluster EKS à l’aide de ce chart Helm. Pour les charges de travail de production sans cluster EKS existant, une instance EC2 constitue une bonne option. Même si l’instance de l’agent Launch fonctionne en permanence, l’agent n’a pas besoin de plus qu’une instance EC2 de taillet2.micro, dont le coût reste abordable.
Pour un usage expérimental ou individuel, vous pouvez exécuter l’agent Launch sur votre machine locale afin de démarrer rapidement.
Selon votre cas d’usage, suivez les instructions des onglets ci-dessous pour configurer votre agent Launch :
- EKS
- EC2
- Machine locale
W&B recommande d’utiliser le chart Helm géré par W&B pour installer l’agent dans un cluster EKS.
Configurer un agent Launch
Après avoir choisi où exécuter l’agent, configurez-le afin qu’il puisse interroger votre file d’attente SageMaker et s’authentifier auprès d’AWS. Configurez l’agent Launch à l’aide d’un fichier de configuration YAML nommélaunch-config.yaml.
Par défaut, W&B recherche le fichier de configuration dans ~/.config/wandb/launch-config.yaml. Vous pouvez aussi indiquer un autre répertoire avec l’option -c lorsque vous démarrez l’agent Launch.
L’extrait YAML suivant montre comment spécifier les principales options de configuration de l’agent :
launch-config.yaml
wandb launch-agent.
Votre agent Launch est maintenant en cours d’exécution et interroge la file d’attente SageMaker pour y récupérer des jobs.
Facultatif : téléverser l’image Docker de votre job Launch vers Amazon ECR
Cette section s’applique uniquement si votre agent Launch utilise des images Docker existantes contenant votre logique d’entraînement ou d’inférence. Votre agent Launch prend en charge deux options de comportement.