Logo Zéphyrnet

Déploiement de modèle multicompte avec Amazon SageMaker Pipelines

Date :

Pipelines Amazon SageMaker est le premier spécialement conçu CI/CD service pour l'apprentissage automatique (ML). Il vous aide à créer, automatiser, gérer et mettre à l'échelle des flux de travail ML de bout en bout et appliquer les meilleures pratiques DevOps de CI / CD à ML (également appelées MLOps).

Créer plusieurs comptes pour organiser toutes les ressources de votre organisation est un bonne pratique DevOps. Une stratégie multicompte est importante non seulement pour améliorer la gouvernance, mais également pour accroître la sécurité et le contrôle des ressources qui soutiennent les activités de votre organisation. Cette stratégie permet à de nombreuses équipes différentes au sein de votre organisation d'expérimenter, d'innover et de s'intégrer plus rapidement, tout en gardant l'environnement de production sûr et disponible pour vos clients.

Pipelines facilite l'application de la même stratégie au déploiement de modèles ML. Imaginez un cas d'utilisation dans lequel vous disposez de trois comptes AWS différents, un pour chaque environnement: la science des données, la préparation et la production. Le data scientist a la liberté de mener des expériences et de former et d'optimiser différents modèles à tout moment pour son propre compte. Lorsqu'un modèle est suffisamment performant pour être déployé en production, le data scientist doit simplement basculer le statut d'approbation du modèle sur Approved. Après cela, un processus automatisé déploie le modèle sur le compte intermédiaire. Ici, vous pouvez automatiser les tests du modèle avec des tests unitaires ou des tests d'intégration ou tester le modèle manuellement. Après une approbation manuelle ou automatisée, le modèle est déployé sur le compte de production, qui est un environnement contrôlé plus étroitement utilisé pour servir des inférences sur des données réelles. Avec Pipelines, vous pouvez implémenter un environnement multi-comptes prêt à l'emploi.

Dans cet article, vous apprendrez à utiliser Pipelines pour implémenter votre propre pipeline ML multi-comptes. Tout d'abord, vous apprenez à configurer votre environnement et à le préparer à utiliser un modèle prédéfini comme Projet SageMaker pour la formation et le déploiement d'un modèle dans deux comptes différents: la mise en scène et la production. Ensuite, vous voyez en détail comment ce modèle personnalisé a été créé et comment créer et personnaliser des modèles pour vos propres projets SageMaker.

Préparer l'environnement

Dans cette section, vous configurez trois comptes AWS différents et utilisez Studio SageMaker pour créer un projet qui intègre un pipeline CI / CD avec le pipeline ML créé par un data scientist. Le diagramme suivant montre l'architecture de référence de l'environnement créé par le projet personnalisé SageMaker et comment Organisations AWS intègre les différents comptes.

Le diagramme suivant montre l'architecture de référence de l'environnement créé par le projet personnalisé SageMaker et comment AWS Organizations intègre les différents comptes.

Le diagramme contient trois comptes différents, gérés par des organisations. En outre, trois rôles d'utilisateur différents (qui peuvent être la même personne) exploitent cet environnement:

  • Ingénieur ML - Responsable du provisionnement du projet SageMaker Studio qui crée le pipeline CI / CD, le registre de modèles et d'autres ressources
  • Data Scientist - Responsable de la création du pipeline ML qui se termine par un modèle entraîné enregistré dans le groupe de modèles (également appelé groupe de packages de modèles)
  • Approbateur - Responsable de tester le modèle déployé sur le compte intermédiaire et d'approuver le déploiement de production

Il est possible d'exécuter une solution similaire sans organisations, si vous préférez (bien que non recommandé). Mais vous devez préparer manuellement les autorisations et la relation d'approbation entre vos comptes et modifier le modèle pour supprimer la dépendance Organisations. De plus, si vous êtes une entreprise avec plusieurs comptes et équipes AWS, il est fortement recommandé d'utiliser Tour de contrôle AWS pour l'approvisionnement des comptes et des organisations. AWS Control Tower offre le moyen le plus simple de configurer et de gérer un nouvel environnement AWS multicompte sécurisé. Pour cet article, nous ne discutons de la mise en œuvre de la solution qu'avec les organisations.

Mais avant de continuer, vous devez suivre les étapes suivantes, qui sont détaillées dans les sections suivantes:

  1. Créez un compte AWS à utiliser par les data scientists (compte data science).
  2. Créer et configurer un Domaine SageMaker Studio dans le compte Data Science.
  3. Créez deux comptes supplémentaires pour la production et la préparation.
  4. Créez une structure organisationnelle à l'aide d'organisations, puis invitez et intégrez les comptes supplémentaires.
  5. Configurez les autorisations requises pour exécuter les pipelines et déployer des modèles sur des comptes externes.
  6. Importez le modèle de projet SageMaker pour déployer des modèles dans plusieurs comptes et rendez-le disponible pour SageMaker Studio.

Configuration de SageMaker Studio dans votre compte

Pipelines fournit une prise en charge intégrée pour Modèles MLOps pour vous faciliter l'utilisation de CI / CD pour vos projets ML. Ces modèles MLOps sont définis comme Amazon CloudFormation modèles et publiés via Catalogue de services AWS. Ceux-ci sont mis à la disposition des scientifiques des données via SageMaker Studio, un IDE pour le ML. Pour configurer Studio dans votre compte, procédez comme suit:

  1. Préparez votre domaine SageMaker Studio.
  2. Activer les modèles de projet SageMaker et SageMaker JumpStart pour ce compte et les utilisateurs de Studio.

Si vous disposez d'un domaine existant, vous pouvez simplement modifier les paramètres du domaine ou des utilisateurs individuels pour activer cette option. L'activation de cette option crée deux Gestion des identités et des comptes AWS (IAM) rôles dans votre compte AWS:

  • AmazonSageMakerServiceCatalogueProduitsLancementRôle - Utilisé par SageMaker pour exécuter les modèles de projet et créer les ressources d'infrastructure requises
  • AmazonSageMakerServiceCatalogProduitsUtilisationRôle - Utilisé par le pipeline CI / CD pour exécuter un travail et déployer les modèles sur les comptes cibles

Si vous avez créé votre domaine SageMaker Studio avant re: Invent 2020, il est recommandé d'actualiser votre environnement en enregistrant tout le travail en cours. Sur le Déposez votre dernière attestation menu, choisissez fermetureet confirmez votre choix.

  1. Créez et préparez deux autres comptes AWS pour la préparation et la production, si vous ne les avez pas encore.

Configurer les organisations

Vous devez ajouter le compte Data Science et les deux comptes supplémentaires à une structure dans Organisations. Les organisations vous aident à gérer et à gouverner de manière centralisée votre environnement à mesure que vous développez et faites évoluer vos ressources AWS. C'est gratuit et profite à votre stratégie de gouvernance.

Chaque compte doit être ajouté à un autre unité organisationnelle (UO).

  1. Dans la console Organisations, créez une structure d'unités d'organisation comme suit:
  • Traitement
    • multi-account-deployment (UO)
      • 111111111111 (compte Data Science — SageMaker Studio)
      • production (OU)
        • 222222222222 (compte AWS)
      • staging (OU)
        • 333333333333 (compte AWS)

Après avoir configuré l'organisation, chaque propriétaire de compte reçoit une invitation. Les propriétaires doivent accepter les invitations, sinon les comptes ne sont pas inclus dans l'organisation.

  1. Maintenant, vous devez activer l'accès de confiance avec les organisations AWS («Activer toutes les fonctionnalités» et «Activer l'accès de confiance dans les StackSets»).

Ce processus permet à votre compte Data Science de provisionner des ressources dans les comptes cibles. Si vous ne le faites pas, le processus de déploiement échoue. En outre, cet ensemble de fonctionnalités est le moyen privilégié de travailler avec les organisations et comprend la consolidation des fonctionnalités de facturation.

  1. Ensuite, sur la console Organisations, choisissez Organiser les comptes.
  2. Selectionnez mise en scène.
  3. Notez l'ID de l'unité d'organisation.
  4. Répétez ce processus pour le production UO.

Répétez ce processus pour l'unité d'organisation de production.

Configurer les permissions

Vous devez créer un rôle d'exécution SageMaker dans chaque compte supplémentaire. Ces rôles sont assumés par AmazonSageMakerServiceCatalogProductsUseRole dans le compte de science des données pour déployer les points de terminaison dans les comptes cibles et les tester.

  1. Connectez-vous à la Console de gestion AWS avec le compte intermédiaire.
  2. Exécutez ce qui suit Modèle CloudFormation.

Ce modèle crée un nouveau rôle SageMaker pour vous.

  1. Fournissez les paramètres suivants:
    1. SageMakerRôleSuffix - Une chaîne courte (maximum 10 minuscules sans espaces ni caractères alphanumériques) qui est ajoutée au nom du rôle après le préfixe suivant: sagemaker-role-. Le nom final du rôle est sagemaker-role-<<sagemaker_role_suffix>>.
    2. PipelineExecutionRoleArn - L'ARN du rôle du compte de science des données qui assume le rôle SageMaker que vous créez. Pour trouver l'ARN, connectez-vous à la console avec le compte Data Science. Sur la console IAM, choisissez Rôles et ensuite cherchez AmazonSageMakerServiceCatalogProductsUseRole. Choisissez ce rôle et copiez l'ARN (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. Après avoir créé ce rôle dans le compte intermédiaire, répétez ce processus pour le compte de production.

Dans le compte Data Science, vous configurez maintenant la stratégie du Service de stockage simple Amazon (Amazon S3) compartiment utilisé pour stocker le modèle entraîné. Pour cet article, nous utilisons le bucket SageMaker par défaut de la région actuelle. Il a le format de nom suivant: sagemaker-<<region>>-<<aws_account_id>>.

  1. Sur la console Amazon S3, recherchez ce compartiment, en indiquant la région que vous utilisez et l'ID du compte de science des données.

Si vous ne le trouvez pas, créez un nouveau compartiment en suivant ce format de nom.

  1. Sur le Permissions onglet, ajoutez la stratégie suivante:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. Enregistrez vos paramètres.

Les comptes cibles sont désormais autorisés à lire le modèle entraîné pendant le déploiement.

La prochaine étape consiste à ajouter de nouvelles autorisations aux rôles AmazonSageMakerServiceCatalogProductsUseRole et AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. Dans le compte Data Science, sur la console IAM, choisissez Rôles.
  2. Trouvez le AmazonSageMakerServiceCatalogProductsUseRole rôle et choisissez-le.
  3. Ajoutez une nouvelle politique et entrez ce qui suit Code JSON.
  4. Sauvegardez vos modifications
  5. Maintenant, trouvez le AmazonSageMakerServiceCatalogProductsLaunchRole rôle, choisissez-le et ajoutez une nouvelle stratégie avec le contenu suivant:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. Sauvegardez vos modifications

C'est ça! Votre environnement est presque prêt. Vous n'avez besoin que d'une étape supplémentaire et vous pouvez commencer à entraîner et à déployer des modèles dans différents comptes.

Importation du modèle de projet SageMaker Studio personnalisé

Dans cette étape, vous importez votre modèle de projet personnalisé.

  1. Connectez-vous à la console avec le compte Data Science.
  2. Sur la console AWS Service Catalog, sous Administration, choisissez Portfolios.
  3. Selectionnez Créer un nouveau portfolio.
  4. Nommez le portfolio SageMaker Organization Templates.
  5. Téléchargez ce qui suit modèle à votre ordinateur.
  6. Choisissez le nouveau portefeuille.
  7. Selectionnez Télécharger un nouveau produit.
  8. Pour Nom du produitentrer Multi Account Deployment.
  9. Pour Description, Entrer Multi account deployment project.
  10. Pour Propriétaire, entrez votre nom.
  11. Sous Détails de la version, Pour Method , choisissez Utiliser un fichier modèle.
  12. Selectionnez Télécharger un modèle.
  13. Téléchargez le modèle que vous avez téléchargé.
  14. Pour Titre de la version, choisissez 1.0.

Les paramètres restants sont facultatifs.

  1. Selectionnez Message(s).
  2. Vérifiez vos paramètres et choisissez Créer un produit.
  3. Selectionnez Refresh pour lister le nouveau produit.
  4. Choisissez le produit que vous venez de créer.
  5. Sur le Tags onglet, ajoutez la balise suivante au produit:
    1. clés / KEY : - sagemaker:studio-visibility
    2. Valeur - True

De retour dans les détails du portefeuille, vous voyez quelque chose de similaire à la capture d'écran suivante (avec différents ID).

De retour dans les détails du portefeuille, vous voyez quelque chose de similaire à la capture d'écran suivante (avec différents ID).

  1. Sur le contraintes onglet, choisissez Créer une contrainte.
  2. Pour Produit, choisissez Déploiement multi-comptes (le produit que vous venez de créer).
  3. Pour Type de contrainte, choisissez Lancement.
  4. Sous Contrainte de lancement, Pour Method , choisissez Sélectionnez le rôle IAM.
  5. Selectionnez AmazonSageMakerServiceCatalogueProduitsLancementRôle.
  6. Selectionnez Création.
  7. Sur le Groupes, rôles et utilisateurs onglet, choisissez Ajouter des groupes, des rôles, des utilisateurs.
  8. Sur le Rôles , sélectionnez le rôle que vous avez utilisé lors de la configuration de votre domaine SageMaker Studio.
  9. Selectionnez Ajouter un accès.

Si vous ne vous souvenez pas du rôle que vous avez sélectionné, dans votre compte de science des données, accédez à la console SageMaker et choisissez Amazon SageMakerStudio. Dans le studio Résumé section, recherchez l'attribut Rôle d'exécution. Recherchez le nom de ce rôle à l'étape précédente.

Vous avez terminé! Il est maintenant temps de créer un projet à l'aide de ce modèle.

Créer votre projet

Dans les sections précédentes, vous avez préparé l'environnement multicompte. L'étape suivante consiste à créer un projet à l'aide de votre nouveau modèle.

  1. Connectez-vous à la console avec le compte Data Science.
  2. Sur la console SageMaker, ouvrez SageMaker Studio avec votre utilisateur.
  3. Choisissez le Composants et registres
  4. Dans le menu déroulant, choisissez Projets.
  5. Selectionnez Créer un projet.

Choisissez Créer un projet.

Sur le Créer un projet Page, Modèles SageMaker est choisi par défaut. Cette option répertorie les modèles intégrés. Cependant, vous souhaitez utiliser le modèle que vous avez préparé pour le déploiement multicompte.

  1. Selectionnez Modèles d'organisation.
  2. Selectionnez Déploiement multi-comptes.
  3. Selectionnez Sélectionnez un modèle de projet.

Si vous ne pouvez pas voir le modèle, assurez-vous d'avoir correctement suivi toutes les étapes de la section précédente.

Si vous ne pouvez pas voir le modèle, assurez-vous d'avoir correctement suivi toutes les étapes de la section précédente.

  1. Dans le Détails du projet section, pour Prénom, entrez iris-multi-01.

Le nom du projet doit comporter 15 caractères ou moins.

  1. Dans le Paramètres du modèle de projet, utilisez les noms des rôles que vous avez créés dans chaque compte cible (préparation et production) et indiquez les propriétés suivantes:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. Récupérez les ID d'unité d'organisation que vous avez créés précédemment pour les unités d'organisation intermédiaire et de production et fournissez les propriétés suivantes:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. Selectionnez Créer un projet.

Choisissez Créer un projet.

Le provisionnement de toutes les ressources prend quelques minutes, après quoi le projet est répertorié dans le Projets section. Lorsque vous choisissez le projet, un onglet s'ouvre avec les métadonnées du projet. le Groupes de modèles tab répertorie un groupe de modèles portant le même nom que votre projet. Il a également été créé lors du provisionnement du projet.

Le provisionnement de toutes les ressources prend quelques minutes, après quoi le projet est répertorié dans la section Projets.

L'environnement est maintenant prêt pour que le data scientist commence à entraîner le modèle.

Former un modèle

Maintenant que votre projet est prêt, il est temps de former un modèle.

  1. Télécharger exemple de cahier à utiliser pour cette procédure pas à pas.
  2. Choisissez le Dossier icône pour changer la zone de travail en gestion de fichiers.
  3. Choisissez le Créer un dossier
  4. Entrez un nom pour le dossier.
  5. Choisissez le nom du dossier.
  6. Choisissez le Envoyer le fichier
  7. Choisissez le bloc-notes Jupyter que vous avez téléchargé et téléchargez-le dans le nouveau répertoire.
  8. Choisissez le bloc-notes pour ouvrir un nouvel onglet.

Choisissez le bloc-notes pour ouvrir un nouvel onglet.

Vous êtes invité à choisir un noyau.

  1. Selectionnez Python3 (Science des données).
  2. Selectionnez Sélectionnez.

Choisissez Select.

  1. Dans la deuxième cellule du notebook, remplacez le project_name variable avec le nom que vous avez donné à votre projet (pour cet article, iris-multi-01).

Vous pouvez maintenant exécuter le notebook Jupyter. Ce cahier crée un pipeline très simple avec seulement deux étapes: former et enregistrer le modèle. Il utilise le jeu de données iris les nouveautés Conteneur intégré XGBoost comme algorithme.

  1. Exécutez tout le cahier.

Le processus prend un certain temps après l'exécution de la cellule contenant le code suivant:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

Cela démarre le travail de formation, qui dure environ 3 minutes. Une fois la formation terminée, la cellule suivante du notebook Jupyter obtient la dernière version du modèle dans le registre des modèles et la marque comme Approved. Vous pouvez également approuver un modèle à partir de l'interface utilisateur de SageMaker Studio. Sur le Groupes de modèles onglet, choisissez le groupe de modèles et la version souhaitée. Choisir État de mise à jour et Approuver avant de sauvegarder.

Choisissez Mettre à jour l'état et Approuver avant d'enregistrer

C'est la fin du travail du data scientist mais le début de l'exécution du pipeline CI / CD.

Amazon Event Bridge surveille le registre des modèles. L'écouteur démarre un nouveau travail de déploiement avec le AWS CodePipeline workflow (créé avec vous lors du lancement du projet SageMaker Studio).

  1. Sur la console CodePipeline, choisissez le pipeline commençant par le préfixe sagemaker-, suivi du nom de votre projet.

Sur la console CodePipeline, choisissez le pipeline commençant par le préfixe sagemaker-, suivi du nom de votre projet.

Peu de temps après avoir approuvé votre modèle, le pipeline de déploiement démarre. Attendez que le pipeline atteigne l'état DeployStaging. Cette étape peut durer environ 10 minutes. Après avoir déployé le premier point de terminaison dans le compte intermédiaire, le pipeline est testé, puis passe à l'étape suivante, ApproveDeployment. Dans cette étape, il attend l'approbation manuelle.

  1. Selectionnez Message(s).
  2. Saisissez un motif d'approbation dans la zone de texte.
  3. Selectionnez Approuver.

Le modèle est maintenant déployé dans le compte de production.

Vous pouvez également surveiller le pipeline sur la console AWS CloudFormation, pour voir les piles et les ensembles de piles que le pipeline crée pour déployer des points de terminaison dans les comptes cibles. Pour voir les points de terminaison déployés pour chaque compte, connectez-vous à la console SageMaker en tant que compte intermédiaire ou compte de production et choisissez Endpoints dans le volet de navigation.

Nettoyer

Pour nettoyer toutes les ressources que vous avez provisionnées dans cet exemple, procédez comme suit:

  1. Connectez-vous à la console avec votre compte principal.
  2. Sur la console AWS CloudFormation, cliquez sur StackSets et supprimer les éléments suivants (points de terminaison):
    1. Prod - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. Staging - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. Dans votre ordinateur portable ou votre poste de travail, utilisez le Interface de ligne de commande AWS (AWS CLI) et entrez le code suivant pour supprimer votre projet:
    aws sagemaker delete-project --project-name iris-multi-01

Assurez-vous que vous utilisez le dernière version de l'AWS CLI.

Création et personnalisation d'un modèle pour votre propre projet SageMaker

Projets SageMaker et Modèles de projet SageMaker MLOps sont des fonctionnalités puissantes que vous pouvez utiliser pour créer et configurer automatiquement toute l'infrastructure requise pour former, optimiser, évaluer et déployer des modèles de ML. Un projet SageMaker est un produit provisionné AWS Service Catalog qui vous permet de créer facilement une solution ML de bout en bout. Pour plus d'informations, consultez le Guide de l'administrateur AWS Service Catalog.

Un produit est un modèle CloudFormation géré par AWS Service Catalog. Pour plus d'informations sur les modèles et leurs exigences, voir Formats de modèle AWS CloudFormation.

Les ingénieurs ML peuvent concevoir plusieurs environnements et exprimer tous les détails de cette configuration sous forme de modèle CloudFormation, en utilisant le concept d'infrastructure en tant que code (IaC). Vous pouvez également intégrer ces différents environnements et tâches à l'aide d'un pipeline CI / CD. Les projets SageMaker offrent un moyen simple, sécurisé et direct de regrouper la complexité de l'infrastructure dans le format d'un projet simple, qui peut être lancé plusieurs fois par les autres ingénieurs ML et data scientists.

Le diagramme suivant illustre les principales étapes à effectuer pour créer et publier votre modèle de projet SageMaker personnalisé.

Le diagramme suivant illustre les principales étapes à effectuer pour créer et publier votre modèle de projet SageMaker personnalisé.

Nous avons décrit ces étapes plus en détail dans les sections Importation du modèle de projet SageMaker Studio personnalisé et Créer votre projet.

En tant qu'ingénieur ML, vous pouvez concevoir et créer un nouveau modèle CloudFormation pour le projet, préparez un portefeuille AWS Service Catalog et ajoutez-y un nouveau produit.

Les data scientists et les ingénieurs ML peuvent utiliser SageMaker Studio pour créer un nouveau projet avec le modèle personnalisé. SageMaker appelle AWS Service Catalog et commence à provisionner l'infrastructure décrite dans le modèle CloudFormation.

En tant que data scientist, vous pouvez maintenant commencer à entraîner le modèle. Une fois que vous l'avez inscrit dans le registre de modèles, le pipeline CI / CD s'exécute automatiquement et déploie le modèle sur les comptes cibles.

Si vous regardez le modèle CloudFormation de cet article dans un éditeur de texte, vous pouvez voir qu'il implémente l'architecture que nous décrivons dans cet article.

Le code suivant est un extrait du modèle:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

Le modèle comporte deux sections clés: Parameters (paramètres d'entrée du modèle) et Resources. Les modèles de projet SageMaker nécessitent que vous ajoutiez deux paramètres d'entrée à votre modèle: SageMakerProjectName et SageMakerProjectId. Ces paramètres sont utilisés en interne par SageMaker Studio. Vous pouvez ajouter d'autres paramètres si nécessaire.

Dans la section Ressources de l'extrait de code, vous pouvez voir qu'il crée les éléments suivants:

  • Un nouveau compartiment S3 utilisé par le pipeline CI / CD pour stocker les artefacts intermédiaires passés d'une étape à l'autre.
  • An Code AWSCommit référentiel pour stocker les artefacts utilisés lors des étapes de déploiement et de test.
  • An Création de code AWS project pour obtenir les artefacts, puis les valider et les configurer pour le projet. Dans le modèle multicompte, ce projet crée également un nouveau registre de modèles, utilisé par le pipeline CI / CD pour déployer de nouveaux modèles.
  • Un flux de travail CodePipeline qui orchestre toutes les étapes des pipelines CI / CD.

Chaque fois que vous enregistrez un nouveau modèle dans le registre de modèles ou que vous poussez un nouvel artefact vers le référentiel CodeCommit, ce flux de travail CodePipeline démarre. Ces événements sont capturés par un Règle EventBridge, provisionné par le même modèle. Le pipeline CI / CD contient les étapes suivantes:

  • Identifier - Lit les artefacts du référentiel CodeCommit et les partage avec les autres étapes.
  • Développer - Exécute le projet CodeBuild pour effectuer les opérations suivantes:
    • Vérifiez si un registre de modèles est déjà créé et créez-en un si nécessaire.
    • Préparez un nouveau modèle CloudFormation qui sera utilisé par les deux prochaines étapes de déploiement.
  • Déployer la mise en scène - Contient les composants suivants:
    • DéployerRessourcesStaging - Obtient le modèle CloudFormation préparé dans le Build step et déploie une nouvelle pile. Cette pile déploie un nouveau point de terminaison SageMaker dans le compte cible.
    • Mise en scène des tests - Appelle un deuxième projet CodeBuild qui exécute un script Python personnalisé qui teste le point de terminaison déployé.
    • ApprouverDéploiement - Une étape d'approbation manuelle. S'il est approuvé, il passe à l'étape suivante pour déployer un point de terminaison en production, ou met fin au flux de travail s'il n'est pas approuvé.
  • DéployerProd - Semblable à DeployStaging, il utilise le même modèle CloudFormation mais avec des paramètres d'entrée différents. Il déploie un nouveau point de terminaison SageMaker dans le compte de production. 

Vous pouvez démarrer un nouveau processus de formation et enregistrer votre modèle dans le registre de modèles associé au projet SageMaker. Utilisez le bloc-notes Jupyter fourni dans cet article et personnalisez le vôtre Pipeline ML pour préparer votre jeu de données et former, optimiser et tester vos modèles avant de les déployer. Pour plus d'informations sur ces fonctionnalités, consultez Automatisez les MLOps avec les projets SageMaker. Pour plus d'exemples de pipelines, consultez le GitHub repo.

Conclusions et prochaines étapes

Dans cet article, vous avez vu comment préparer votre propre environnement pour former et déployer des modèles ML dans plusieurs comptes AWS à l'aide de SageMaker Pipelines.

Avec les projets SageMaker, la gouvernance et la sécurité de votre environnement peuvent être considérablement améliorées si vous commencez à gérer vos projets ML comme une bibliothèque de modèles de projet SageMaker.

À l'étape suivante, essayez de modifier le modèle de projet SageMaker et de le personnaliser pour répondre aux besoins de votre organisation. Ajoutez autant d'étapes que vous le souhaitez et gardez à l'esprit que vous pouvez capturer les événements CI / CD et notifier les utilisateurs ou appeler d'autres services pour créer des solutions complètes.


À propos de l’auteur

Samir Araújo est un architecte de solutions AI / ML chez AWS. Il aide les clients à créer des solutions AI / ML à résoudre leurs défis commerciaux à l'aide de la plate-forme AWS. Il a travaillé sur plusieurs projets d'IA / ML liés à la vision par ordinateur, au traitement du langage naturel, à la prévision, au ML à la périphérie, etc. Il aime jouer avec des projets de matériel et d'automatisation pendant son temps libre, et il a un intérêt particulier pour la robotique.

Source : https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

spot_img

Dernières informations

spot_img