Créez des projets Amazon SageMaker avec des pipelines CI/CD de création d'images

Nœud source: 1876821

Projets Amazon SageMaker Catalogue de services AWS des produits fournis qui vous permettent de créer facilement des solutions d'apprentissage automatique (ML) de bout en bout. Les projets SageMaker donnent aux organisations la possibilité d'utiliser des modèles qui amorcent des solutions ML pour vos utilisateurs afin d'accélérer le démarrage du développement ML.

Vous pouvez désormais utiliser des projets SageMaker pour gérer les dépendances personnalisées via un pipeline d'intégration continue et de livraison continue (CI/CD) de création d'images disponible en tant que modèle propriétaire sur Amazon SageMakerStudio. Cette nouvelle fonctionnalité donne aux développeurs la possibilité de mettre à jour les images que vous utilisez pour la formation, le traitement et l'inférence en modifiant les fichiers conteneurs dans les référentiels de contrôle de code source de votre projet, ce qui déclenche automatiquement un pipeline de création d'images. Le modèle utilise Code AWSCommit comme référentiel de code. Vous pouvez utiliser les images nouvellement créées dans un Pipeline SageMaker pour le traitement, la formation et l’inférence.

Les nouvelles options de modèle sont désormais disponibles via le SDK SageMaker Python ou dans l'IDE Studio, comme le montre la capture d'écran suivante.

Le nouveau modèle utilise AWS CodePipeline pour créer et transmettre des images vers ECR d'Amazon puis déclenchez un pipeline SageMaker qui entraîne un modèle et l'enregistre dans le Registre de modèles SageMaker. Une fois dans le registre des modèles, le statut du modèle peut être mis à jour sur approuvé, ce qui déclenche le processus de déploiement du modèle via CodePipeline.

Vue d'ensemble de la solution

Le diagramme architectural suivant n'inclut pas les référentiels CodeCommit pour le code de création et de déploiement de modèles. L'accent est mis sur les fonctionnalités de création d'images dans le nouveau modèle.

Nous utilisons le nouveau modèle de projet MLOps pour la création d'images CI/CD afin de provisionner et de configurer les ressources suivantes, qui sont abordées plus en détail plus loin dans cet article :

  • Référentiels de code SageMaker – Un ensemble de cinq référentiels CodeCommit est créé par le modèle de projet. Trois de ces référentiels contiennent le code permettant de créer des images utilisées pour le traitement, la formation et l'inférence. Ils incluent un code de départ que vous pouvez modifier pour personnaliser votre image. Il existe un référentiel pour le code de formation du modèle utilisant un pipeline SageMaker et un référentiel pour le code de déploiement du modèle utilisant AWS CloudFormation et CodePipeline. Grâce à l'interface utilisateur, vous pouvez choisir les images que vous souhaitez créer dans le cadre du pipeline CI/CD et seuls ces référentiels sont créés.
  • Référentiels Amazon ECR – Des référentiels Amazon ECR sont créés pour les images de formation, de traitement et d'inférence.
  • Créer un modèle et déployer des déclencheurs - Amazon Event Bridge des règles sont créées pour déclencher le pipeline CodePipeline de création de modèle lors des changements d'état d'Amazon ECR. Cela automatise le processus de déclenchement d'un pipeline SageMaker lorsque de nouvelles versions de conteneurs sont créées et transmises à Amazon ECR. Le pipeline CodePipeline de déploiement de modèle est configuré pour être déclenché par EventBridge lorsque l'état d'un modèle dans le registre de modèles passe à approuvé.
  • Compartiment MLOps S3 - Un Service de stockage simple Amazon (Amazon S3) pour le pipeline MLOps est utilisé pour les entrées et les artefacts de votre projet et de votre pipeline.

Tout le provisionnement et la configuration requis pour configurer le pipeline CI/CD de bout en bout à l'aide de ces ressources sont automatiquement effectués par les projets SageMaker.

Maintenant que nous avons expliqué le fonctionnement de la nouvelle fonctionnalité, passons en revue les tâches de configuration uniques suivies de l'utilisation des nouveaux modèles.

Créer un nouveau projet SageMaker

Pour créer votre projet SageMaker, procédez comme suit :

  1. Sur la console Studio, choisissez Ressources SageMaker.
  2. Dans le menu déroulant, choisissez Projets.
  3. Selectionnez Créer un projet.
  4. Pour Modèles de projet SageMaker, choisissez Modèle MLOps pour la création d'images, la création de modèles et le déploiement de modèles.
  5. Selectionnez Sélectionnez un modèle de projet.
  6. Vous devez fournir plusieurs paramètres pour configurer le processus de création d'image :
    1. Inclure un pipeline de création d'images de traitement – Cela génère une infrastructure CI/CD de création d’image pour l’image de traitement. Cela inclut un pipeline CodePipeline, une tâche CodeBuild, un référentiel Amazon ECR et une image SageMaker.
    2. Inclure un pipeline de création d'images d'inférence – Cela génère une infrastructure CI/CD de création d’image pour l’image d’inférence. Cela inclut un pipeline CodePipeline, une tâche CodeBuild, un référentiel Amazon ECR et une image SageMaker.
    3. Inclure un pipeline de création d'images de formation – Cela génère une infrastructure CI/CD de création d’image pour l’image de formation. Cela inclut un pipeline CodePipeline, une tâche CodeBuild, un référentiel Amazon ECR et une image SageMaker.
    4. Type d'environnement – Le type d'environnement utilisé par CodeBuild lors de la création de l'image.
    5. Type de calcul – La valeur du type de calcul pour l'environnement de génération utilisé par CodeBuild.
    6. Nom de la balise du conteneur – La balise de l’image du conteneur. Il s'agit d'une balise Docker, pas d'une balise AWS.
  7. Selectionnez Créer un projet.

Un message s'affiche indiquant que SageMaker provisionne et configure les ressources.

Une fois le projet terminé, vous recevez un message de réussite.

Votre projet est désormais répertorié sur le Projets liste.

  1. Clonez chaque référentiel en choisissant dépôt de clone… sur l'interface utilisateur de Studio.

Cinq référentiels CodeCommit sont créés par ce modèle de projet :

  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-processing-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-inference-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modelbuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-training-imagebuild
  • sagemaker-image-building-cicd-demo-project-p-1jrh7jnlz3lx-modeldeploy

Une fois les cinq dépôts clonés, ils sont disponibles dans l'interface utilisateur de Studio.

Référentiel de création d'images

Dans cet exemple, nous avons généré les trois référentiels de création d'images. Dans cette section, vous voyez la structure du référentiel et découvrez comment il peut être mis à jour pour répondre à vos besoins personnalisés.

Chacun des référentiels de création d'images suit la même structure, comme indiqué dans la capture d'écran suivante.

L'image créée dans ce référentiel est une simple image XGBoost, mais en suivant cette structure, le Dockerfile peut être mis à jour pour répondre au cas d'utilisation sur lequel on travaille. Le codebuild-buildspec.yml Le fichier est utilisé pour configurer CodeBuild afin que l'image puisse être créée et transmise à Amazon ECR.

Vous pouvez accéder à la console CodeBuild pour voir l'état des images générées.

Les pipelines CodePipeline associés à chaque référentiel s'exécutent automatiquement lors de la création du projet. Les nouvelles builds sont déclenchées lorsque les modifications sont transmises au référentiel. Vous pouvez voir les images sur la console Amazon ECR.

Lorsqu'un nouveau code est transmis à l'un des référentiels de création d'images, le projet CodeBuild démarre et la nouvelle version de l'image est créée et transmise à Amazon ECR. Un ensemble de règles EventBridge est créé pour automatiser chaque étape du flux de travail ML. Dans ce nouveau modèle, une règle dans EventBridge est créée pour déclencher le pipeline de création de modèle lorsqu'une nouvelle version du conteneur est transmise à Amazon ECR.

La cible du pipeline de génération de modèle commence à exécuter le pipeline SageMaker.

Mettre à jour un fichier Docker

Dans cette section, nous montrons comment une mise à jour d'un Dockerfile dans l'un des référentiels déclenche un processus CodeBuild qui crée et transmet une nouvelle version d'image vers Amazon ECR, ainsi que le pipeline ML ultérieur qui est lancé.

  1. Mettez à jour le fichier Docker.
  2. Poussez le code vers CodeCommit.
  3. Accédez à CodeBuild pour vérifier que la nouvelle version de l’image est en cours de création.

Les captures d'écran suivantes contiennent les journaux de l'étape CodeBuild qui est créée dans le conteneur à l'aide du Dockerfile mis à jour transféré vers le référentiel.

La version de l'image transmise à Amazon ECR déclenche le pipeline SageMaker dans le référentiel de génération de modèles.

Le modèle peut être visualisé et approuvé dans le registre des modèles, de la même manière que les flux de travail des autres modèles MLOps sur SageMaker Studio.

Résumé

Dans cet article, nous avons parcouru le nouveau modèle de projet SageMaker MLOps pour la création d'images CI/CD. Grâce à la structure fournie dans le modèle, vous pouvez modifier les Dockerfiles pour répondre à votre cas d'utilisation, créer un modèle personnalisé avec plus de référentiels de création d'images ou créer des règles personnalisées pour le déclenchement automatique du pipeline. Essayez-le et faites-nous savoir si vous avez des questions dans la section commentaires !


À propos de l’auteur

Kirit Thadaka est un architecte de solutions ML travaillant au sein de l'équipe Amazon SageMaker Service SA. Avant de rejoindre AWS, Kirit a travaillé dans des startups d'IA en phase de démarrage, puis a travaillé comme consultant dans divers rôles dans la recherche sur l'IA, le MLOps et la direction technique.

Source : https://aws.amazon.com/blogs/machine-learning/create-amazon-sagemaker-projects-with-image-building-ci-cd-pipelines/

Horodatage:

Plus de Blog sur l'apprentissage automatique AWS