Construire une plate-forme d'opérations d'apprentissage automatique (MLOps) dans le paysage en évolution rapide de l'intelligence artificielle (IA) et de l'apprentissage automatique (ML) pour les organisations est essentiel pour combler de manière transparente le fossé entre l'expérimentation et le déploiement de la science des données tout en répondant aux exigences relatives aux performances des modèles, sécurité et conformité.
Afin de répondre aux exigences réglementaires et de conformité, les principales exigences lors de la conception d'une telle plateforme sont :
- Corriger la dérive des données
- Surveiller les performances du modèle
- Faciliter le recyclage automatique des modèles
- Fournir un processus d’approbation du modèle
- Conservez les modèles dans un environnement sécurisé
Dans cet article, nous montrons comment créer un cadre MLOps pour répondre à ces besoins tout en utilisant une combinaison de services AWS et d'ensembles d'outils tiers. La solution implique une configuration multi-environnement avec un recyclage automatisé du modèle, une inférence par lots et une surveillance avec Moniteur de modèle Amazon SageMaker, versionnage du modèle avec Registre de modèles SageMaker, et un pipeline CI/CD pour faciliter la promotion du code ML et des pipelines dans tous les environnements en utilisant Amazon Sage Maker, Amazon Event Bridge, Service de notification simple d'Amazon (Amazon S3), Terraforme HashiCorp, GitHubet une Jenkins CI/CD. Nous construisons un modèle pour prédire la gravité (bénigne ou maligne) d'une lésion massive mammographique entraînée avec le Algorithme XGBoost en utilisant le service accessible au public Masse de mammographie UCI ensemble de données et déployez-le à l’aide du framework MLOps. Les instructions complètes avec le code sont disponibles dans le GitHub référentiel.
Vue d'ensemble de la solution
Le diagramme d'architecture suivant montre une présentation du framework MLOps avec les composants clés suivants :
- Stratégie multi-comptes – Deux environnements différents (dev et prod) sont configurés dans deux comptes AWS différents conformément aux bonnes pratiques AWS Well-Architected, et un troisième compte est configuré dans le registre central des modèles :
- Environnement de développement – Où un Domaine Amazon SageMaker Studio est configuré pour permettre le développement de modèles, la formation de modèles et les tests de pipelines ML (entraînement et inférence), avant qu'un modèle ne soit prêt à être promu dans des environnements supérieurs.
- Environnement de production – Où les pipelines ML du développement sont promus dans un premier temps, puis planifiés et surveillés au fil du temps.
- Registre central des modèles - Registre de modèles Amazon SageMaker est configuré dans un compte AWS distinct pour suivre les versions de modèle générées dans les environnements de développement et de production.
- CI/CD et contrôle de source – Le déploiement de pipelines ML dans les environnements est géré via la configuration CI/CD avec Jenkins, ainsi que le contrôle de version géré via GitHub. Les modifications de code fusionnées dans la branche git de l'environnement correspondante déclenchent un workflow CI/CD pour apporter les modifications appropriées à l'environnement cible donné.
- Prédictions par lots avec surveillance du modèle – Le pipeline d’inférence construit avec Pipelines Amazon SageMaker s'exécute de manière planifiée pour générer des prédictions ainsi qu'une surveillance du modèle à l'aide de SageMaker Model Monitor pour détecter la dérive des données.
- Mécanisme de reconversion automatisé – Le pipeline de formation construit avec SageMaker Pipelines est déclenché chaque fois qu'une dérive de données est détectée dans le pipeline d'inférence. Une fois formé, le modèle est enregistré dans le registre central des modèles pour être approuvé par un approbateur de modèle. Une fois approuvée, la version mise à jour du modèle est utilisée pour générer des prédictions via le pipeline d'inférence.
- L'infrastructure comme code – L’infrastructure as code (IaC), créée à l’aide Terraforme HashiCorp, prend en charge la planification du pipeline d'inférence avec EventBridge, le déclenchement du pipeline de train basé sur un Règle EventBridge et envoyer des notifications en utilisant Service de notification simple d'Amazon (Amazon SNS) sujets.
Le flux de travail MLOps comprend les étapes suivantes :
- Accédez au domaine SageMaker Studio dans le compte de développement, clonez le référentiel GitHub, suivez le processus de développement du modèle à l'aide de l'exemple de modèle fourni et générez les pipelines d'entraînement et d'inférence.
- Exécutez le pipeline de train dans le compte de développement, qui génère les artefacts de modèle pour la version du modèle entraîné et enregistre le modèle dans SageMaker Model Registry dans le compte de registre central des modèles.
- Approuvez le modèle dans SageMaker Model Registry dans le compte de registre central des modèles.
- Poussez le code (pipelines d'entraînement et d'inférence, ainsi que le code Terraform IaC pour créer la planification EventBridge, la règle EventBridge et la rubrique SNS) dans une branche de fonctionnalités du référentiel GitHub. Créez une pull request pour fusionner le code dans la branche principale du référentiel GitHub.
- Déclenchez le pipeline Jenkins CI/CD, qui est configuré avec le référentiel GitHub. Le pipeline CI/CD déploie le code dans le compte de production pour créer les pipelines d'entraînement et d'inférence ainsi que le code Terraform pour provisionner la planification EventBridge, la règle EventBridge et la rubrique SNS.
- Le pipeline d'inférence est programmé pour s'exécuter quotidiennement, tandis que le pipeline de train est configuré pour s'exécuter chaque fois qu'une dérive des données est détectée à partir du pipeline d'inférence.
- Des notifications sont envoyées via le sujet SNS chaque fois qu'il y a une panne avec le pipeline de train ou d'inférence.
Pré-requis
Pour cette solution, vous devez avoir les prérequis suivants :
- Trois comptes AWS (comptes de développement, de production et de registre de modèles central)
- Un domaine SageMaker Studio configuré dans chacun des trois comptes AWS (voir Intégration à Amazon SageMaker Studio ou regardez la vidéo Intégrez rapidement Amazon SageMaker Studio pour les instructions de configuration)
- Jenkins (nous utilisons Jenkins 2.401.1) avec des privilèges administratifs installés sur AWS
- Terraform version 1.5.5 ou ultérieure installée sur le serveur Jenkins
Pour ce poste, nous travaillons dans le us-east-1
Région pour déployer la solution.
Provisionner les clés KMS dans les comptes de développement et de production
Notre première étape consiste à créer Service de gestion des clés AWS (AWS KMS) dans les comptes dev et prod.
Créez une clé KMS dans le compte dev et donnez accès au compte prod
Suivez les étapes suivantes pour créer une clé KMS dans le compte de développement :
- Sur la console AWS KMS, choisissez Clés gérées par le client dans le volet de navigation.
- Selectionnez Créer une clé.
- Pour Type de clé, sélectionnez Symétrique.
- Pour Utilisation des clés, sélectionnez Crypter et déchiffrer.
- Selectionnez Suivant.
- Entrez le numéro de compte de production pour donner au compte de production l'accès à la clé KMS fournie dans le compte de développement. Il s'agit d'une étape obligatoire, car la première fois que le modèle est entraîné dans le compte de développement, les artefacts du modèle sont chiffrés avec la clé KMS avant d'être écrits dans le compartiment S3 du compte de registre central des modèles. Le compte de production doit accéder à la clé KMS pour déchiffrer les artefacts du modèle et exécuter le pipeline d'inférence.
- Selectionnez Suivant et terminez la création de votre clé.
Une fois la clé provisionnée, elle doit être visible sur la console AWS KMS.
Créer une clé KMS dans le compte prod
Suivez les mêmes étapes que dans la section précédente pour créer une clé KMS gérée par le client dans le compte prod. Vous pouvez ignorer l'étape pour partager la clé KMS avec un autre compte.
Configurer un compartiment S3 d'artefacts de modèle dans le compte de registre central des modèles
Créez un compartiment S3 de votre choix avec la chaîne sagemaker
dans la convention de dénomination dans le cadre du nom du compartiment dans le compte de registre central des modèles, et mettez à jour la stratégie du compartiment sur le compartiment S3 pour accorder aux comptes de développement et de production les autorisations nécessaires pour lire et écrire des artefacts de modèle dans le compartiment S3.
Le code suivant est la stratégie de compartiment à mettre à jour sur le compartiment S3 :
Configurer des rôles IAM dans vos comptes AWS
L'étape suivante consiste à configurer Gestion des identités et des accès AWS (IAM) dans vos comptes AWS avec des autorisations pour AWS Lambda, SageMaker et Jenkins.
Rôle d'exécution Lambda
Mettre en place Rôles d'exécution Lambda dans les comptes dev et prod, qui seront utilisés par la fonction Lambda exécutée dans le cadre du Étape Lambda de SageMaker Pipelines. Cette étape s'exécutera à partir du pipeline d'inférence pour récupérer le dernier modèle approuvé, à l'aide duquel les inférences sont générées. Créez des rôles IAM dans les comptes dev et prod avec la convention de dénomination arn:aws:iam::<account-id>:role/lambda-sagemaker-role
et joignez les stratégies IAM suivantes :
- Politique 1 – Créez une politique en ligne nommée
cross-account-model-registry-access
, qui donne accès au package de modèles configuré dans le registre de modèles du compte central : - Politique 2 - Attacher AmazonSageMakerFullAccess, qui est un Politique gérée par AWS qui accorde un accès complet à SageMaker. Il fournit également un accès sélectionné à des services connexes, tels que Mise à l'échelle automatique des applications AWS, Amazon S3, Registre des conteneurs élastiques Amazon (Amazon ECR), et Journaux Amazon CloudWatch.
- Politique 3 - Attacher AWSLambda_FullAccess, qui est une stratégie gérée par AWS qui accorde un accès complet à Lambda, aux fonctionnalités de la console Lambda et à d'autres services AWS associés.
- Politique 4 – Utilisez la stratégie de confiance IAM suivante pour le rôle IAM :
Rôle d'exécution de SageMaker
Les domaines SageMaker Studio configurés dans les comptes dev et prod doivent chacun avoir un rôle d'exécution associé, qui peut être trouvé sur le Paramètres du domaine sur la page de détails du domaine, comme indiqué dans la capture d'écran suivante. Ce rôle est utilisé pour exécuter des tâches de formation, des tâches de traitement, etc. dans le domaine SageMaker Studio.
Ajoutez les stratégies suivantes au rôle d'exécution SageMaker dans les deux comptes :
- Politique 1 – Créez une politique en ligne nommée
cross-account-model-artifacts-s3-bucket-access
, qui donne accès au compartiment S3 dans le compte de registre central des modèles, qui stocke les artefacts du modèle : - Politique 2 – Créez une politique en ligne nommée
cross-account-model-registry-access
, qui donne accès au package de modèles dans le registre de modèles dans le compte de registre de modèles central : - Politique 3 – Créez une politique en ligne nommée
kms-key-access-policy
, qui donne accès à la clé KMS créée à l'étape précédente. Fournissez l'ID de compte dans lequel la stratégie est créée et l'ID de clé KMS créé dans ce compte. - Politique 4 - Attacher AmazonSageMakerFullAccess, qui est un Politique gérée par AWS qui accorde un accès complet à SageMaker et sélectionne l'accès aux services associés.
- Politique 5 - Attacher AWSLambda_FullAccess, qui est une stratégie gérée par AWS qui accorde un accès complet à Lambda, aux fonctionnalités de la console Lambda et à d'autres services AWS associés.
- Politique 6 - Attacher CloudWatchEventsFullAccess, qui est une stratégie gérée par AWS qui accorde un accès complet à CloudWatch Events.
- Politique 7 – Ajoutez la stratégie de confiance IAM suivante pour le rôle IAM d'exécution SageMaker :
- Politique 8 (spécifique au rôle d'exécution SageMaker dans le compte prod) – Créez une politique en ligne nommée
cross-account-kms-key-access-policy
, qui donne accès à la clé KMS créée dans le compte de développement. Cela est requis pour que le pipeline d'inférence lise les artefacts de modèle stockés dans le compte de registre central des modèles où les artefacts de modèle sont chiffrés à l'aide de la clé KMS du compte de développement lorsque la première version du modèle est créée à partir du compte de développement.
Rôle Jenkins entre comptes
Configurez un rôle IAM appelé cross-account-jenkins-role
dans le compte prod, dont Jenkins se chargera de déployer les pipelines ML et l'infrastructure correspondante dans le compte prod.
Ajoutez les stratégies IAM gérées suivantes au rôle :
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
Mettez à jour la relation d'approbation sur le rôle pour accorder des autorisations au compte AWS hébergeant le serveur Jenkins :
Mettre à jour les autorisations sur le rôle IAM associé au serveur Jenkins
En supposant que Jenkins a été configuré sur AWS, mettez à jour le rôle IAM associé à Jenkins pour ajouter les stratégies suivantes, qui donneront à Jenkins l'accès pour déployer les ressources dans le compte prod :
- Politique 1 – Créez la stratégie en ligne suivante nommée
assume-production-role-policy
: - Politique 2 – Attachez le
CloudWatchFullAccess
stratégie IAM gérée.
Configurer le groupe de packages de modèles dans le compte de registre central des modèles
À partir du domaine SageMaker Studio dans le compte de registre central des modèles, créez un groupe de packages de modèles appelé mammo-severity-model-package
en utilisant l'extrait de code suivant (que vous pouvez exécuter à l'aide d'un notebook Jupyter) :
Configurer l'accès au package de modèles pour les rôles IAM dans les comptes dev et prod
Offrez l'accès aux rôles d'exécution SageMaker créés dans les comptes de développement et de production afin que vous puissiez enregistrer les versions de modèle dans le package de modèles. mammo-severity-model-package
dans le registre central des modèles à partir des deux comptes. À partir du domaine SageMaker Studio dans le compte de registre central des modèles, exécutez le code suivant dans un notebook Jupyter :
Configurer Jenkins
Dans cette section, nous configurons Jenkins pour créer les pipelines ML et l'infrastructure Terraform correspondante dans le compte prod via le pipeline Jenkins CI/CD.
- Sur la console CloudWatch, créez un groupe de journaux nommé
jenkins-log
au sein du compte de production vers lequel Jenkins transmettra les journaux du pipeline CI/CD. Le groupe de journaux doit être créé dans la même région que celle où le serveur Jenkins est configuré. - Installez les plugins suivants sur votre serveur Jenkins :
- Configurez les informations d'identification AWS dans Jenkins à l'aide du rôle IAM entre comptes (
cross-account-jenkins-role
) provisionné dans le compte prod. - Pour Configuration du système, choisissez AWS.
- Fournissez les informations d'identification et le groupe de journaux CloudWatch que vous avez créé précédemment.
- Configurez les informations d'identification GitHub dans Jenkins.
- Créez un nouveau projet dans Jenkins.
- Entrez un nom de projet et choisissez Pipeline.
- Sur le Général onglet, sélectionnez Projet GitHub et entrez dans le fourchu GitHub référentiel URL.
- Sélectionnez Ce projet est paramétré.
- Sur le Ajouter un paramètre menu, choisissez Paramètre de chaîne.
- Pour Nom, Entrer
prodAccount
. - Pour Valeur par défaut, saisissez l'ID du compte prod.
- Sous Options de projet avancées, Pour Définition, sélectionnez Script de pipeline de SCM.
- Pour SMC, choisissez Git.
- Pour URL du référentiel, entrez le forked GitHub référentiel URL.
- Pour Lettres de créance, saisissez les informations d'identification GitHub enregistrées dans Jenkins.
- Entrer
main
dans le Branches à construire section, sur la base de laquelle le pipeline CI/CD sera déclenché. - Pour Chemin du script, Entrer
Jenkinsfile
. - Selectionnez Épargnez.
Le pipeline Jenkins doit être créé et visible sur votre tableau de bord.
Provisionner des buckets S3, collecter et préparer des données
Effectuez les étapes suivantes pour configurer vos compartiments et données S3 :
- Créez un compartiment S3 de votre choix avec la chaîne
sagemaker
dans la convention de dénomination dans le cadre du nom du compartiment dans les comptes de développement et de production pour stocker les ensembles de données et les artefacts de modèle. - Configurez un compartiment S3 pour conserver l'état Terraform dans le compte prod.
- Téléchargez et enregistrez le fichier accessible au public Masse de mammographie UCI ensemble de données dans le compartiment S3 que vous avez créé précédemment dans le compte de développement.
- Forkez et clonez le GitHub référentiel dans le domaine SageMaker Studio dans le compte de développement. Le dépôt a la structure de dossiers suivante :
- /environments – Script de configuration pour l'environnement de production
- /mlops-infra – Code de déploiement des services AWS à l'aide du code Terraform
- /conduites – Code pour les composants du pipeline SageMaker
- Fichier Jenkins – Script à déployer via le pipeline Jenkins CI/CD
- configuration.py – Nécessaire pour installer les modules Python requis et créer la commande run-pipeline
- mammographie-sévérité-modeling.ipynb – Vous permet de créer et d'exécuter le workflow ML
- Créez un dossier appelé data dans le dossier du référentiel GitHub cloné et enregistrez une copie du fichier accessible au public. Masse de mammographie UCI jeu de données.
- Suivez le notebook Jupyter
mammography-severity-modeling.ipynb
. - Exécutez le code suivant dans le notebook pour prétraiter l'ensemble de données et téléchargez-le dans le compartiment S3 du compte de développement :
Le code générera les ensembles de données suivants :
-
- données/ mammo-train-dataset-part1.csv – Sera utilisé pour entraîner la première version du modèle.
- données/ mammo-train-dataset-part2.csv – Sera utilisé pour entraîner la deuxième version du modèle avec l'ensemble de données mammo-train-dataset-part1.csv.
- data/mammo-batch-dataset.csv – Sera utilisé pour générer des inférences.
- data/mammo-batch-dataset-outliers.csv – Introduira des valeurs aberrantes dans l’ensemble de données pour faire échouer le pipeline d’inférence. Cela nous permettra de tester le modèle pour déclencher un recyclage automatisé du modèle.
- Charger le jeu de données
mammo-train-dataset-part1.csv
sous le préfixemammography-severity-model/train-dataset
, et téléchargez les ensembles de donnéesmammo-batch-dataset.csv
ainsi que lemammo-batch-dataset-outliers.csv
au préfixemammography-severity-model/batch-dataset
du bucket S3 créé dans le compte de développement : - Téléchargez les ensembles de données
mammo-train-dataset-part1.csv
ainsi que lemammo-train-dataset-part2.csv
sous le préfixemammography-severity-model/train-dataset
dans le compartiment S3 créé dans le compte prod via la console Amazon S3. - Téléchargez les ensembles de données
mammo-batch-dataset.csv
ainsi que lemammo-batch-dataset-outliers.csv
au préfixemammography-severity-model/batch-dataset
du bucket S3 dans le compte prod.
Faites fonctionner le pipeline ferroviaire
Sous <project-name>/pipelines/train
, vous pouvez voir les scripts Python suivants :
- scripts/raw_preprocess.py – S'intègre à SageMaker Processing pour l'ingénierie des fonctionnalités
- scripts/evaluate_model.py – Permet le calcul des métriques du modèle, dans ce cas
auc_score
- train_pipeline.py – Contient le code du pipeline de formation du modèle
Effectuez les étapes suivantes:
- Téléchargez les scripts dans Amazon S3 :
- Obtenez l'instance de pipeline de train :
- Soumettez le pipeline de train et exécutez-le :
La figure suivante montre une exécution réussie du pipeline de formation. La dernière étape du pipeline enregistre le modèle dans le compte de registre central des modèles.
Approuver le modèle dans le registre central des modèles
Connectez-vous au compte de registre de modèles central et accédez au registre de modèles SageMaker dans le domaine SageMaker Studio. Modifiez le statut de la version du modèle sur Approuvé.
Une fois approuvé, le statut doit être modifié sur la version modèle.
Exécuter le pipeline d'inférence (facultatif)
Cette étape n'est pas obligatoire, mais vous pouvez toujours exécuter le pipeline d'inférence pour générer des prédictions dans le compte de développement.
Sous <project-name>/pipelines/inference
, vous pouvez voir les scripts Python suivants :
- scripts/lambda_helper.py – Extrait la dernière version de modèle approuvée du compte de registre central des modèles à l'aide d'une étape Lambda de SageMaker Pipelines
- inférence_pipeline.py – Contient le code du pipeline d’inférence de modèle
Effectuez les étapes suivantes:
- Téléchargez le script dans le compartiment S3 :
- Obtenez l'instance de pipeline d'inférence à l'aide de l'ensemble de données par lots normal :
- Envoyez le pipeline d'inférence et exécutez-le :
La figure suivante montre une exécution réussie du pipeline d'inférence. La dernière étape du pipeline génère les prédictions et les stocke dans le compartiment S3. Nous utilisons MonitorBatchTransformStep pour surveiller les entrées dans le travail de transformation par lots. S’il y a des valeurs aberrantes, le pipeline d’inférence passe dans un état d’échec.
Exécutez le pipeline Jenkins
La environment/
Le dossier du référentiel GitHub contient le script de configuration du compte prod. Effectuez les étapes suivantes pour déclencher le pipeline Jenkins :
- Mettre à jour le script de configuration
prod.tfvars.json
en fonction des ressources créées lors des étapes précédentes : - Une fois mis à jour, transférez le code dans le référentiel GitHub forké et fusionnez le code dans la branche principale.
- Accédez à l'interface utilisateur de Jenkins, choisissez Construire avec des paramètreset déclenchez le pipeline CI/CD créé lors des étapes précédentes.
Une fois la construction terminée et réussie, vous pouvez vous connecter au compte prod et voir les pipelines d'entraînement et d'inférence dans le domaine SageMaker Studio.
De plus, vous verrez trois règles EventBridge sur la console EventBridge dans le compte prod :
- Planifier le pipeline d'inférence
- Envoyer une notification de panne sur le pipeline ferroviaire
- Lorsque le pipeline d'inférence ne parvient pas à déclencher le pipeline de train, envoyez une notification
Enfin, vous verrez un sujet de notification SNS sur la console Amazon SNS qui envoie des notifications par e-mail. Vous recevrez un e-mail vous demandant de confirmer l'acceptation de ces e-mails de notification.
Testez le pipeline d'inférence à l'aide d'un ensemble de données par lots sans valeurs aberrantes
Pour tester si le pipeline d'inférence fonctionne comme prévu dans le compte prod, nous pouvons nous connecter au compte prod et déclencher le pipeline d'inférence en utilisant l'ensemble de données par lots sans valeurs aberrantes.
Exécutez le pipeline via la console SageMaker Pipelines dans le domaine SageMaker Studio du compte prod, où le transform_input
sera l'URI S3 de l'ensemble de données sans valeurs aberrantes (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
Le pipeline d'inférence réussit et réécrit les prédictions dans le compartiment S3.
Testez le pipeline d'inférence à l'aide d'un ensemble de données par lots avec des valeurs aberrantes
Vous pouvez exécuter le pipeline d'inférence à l'aide de l'ensemble de données par lots avec des valeurs aberrantes pour vérifier si le mécanisme de recyclage automatisé fonctionne comme prévu.
Exécutez le pipeline via la console SageMaker Pipelines dans le domaine SageMaker Studio du compte prod, où le transform_input
sera l'URI S3 de l'ensemble de données avec des valeurs aberrantes (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
Le pipeline d'inférence échoue comme prévu, ce qui déclenche la règle EventBridge, qui à son tour déclenche le pipeline de train.
Après quelques instants, vous devriez voir une nouvelle exécution du pipeline de train sur la console SageMaker Pipelines, qui récupère les deux ensembles de données de train différents (mammo-train-dataset-part1.csv
ainsi que le mammo-train-dataset-part2.csv
) téléchargé dans le compartiment S3 pour recycler le modèle.
Vous verrez également une notification envoyée à l'e-mail abonné au sujet SNS.
Pour utiliser la version du modèle mise à jour, connectez-vous au compte de registre central des modèles et approuvez la version du modèle, qui sera récupérée lors de la prochaine exécution du pipeline d'inférence déclenchée via la règle EventBridge planifiée.
Bien que les pipelines d'entraînement et d'inférence utilisent une URL d'ensemble de données statique, vous pouvez transmettre l'URL de l'ensemble de données aux pipelines d'entraînement et d'inférence en tant que variables dynamiques afin d'utiliser des ensembles de données mis à jour pour recycler le modèle et générer des prédictions dans un scénario réel.
Nettoyer
Pour éviter d'encourir des frais futurs, procédez comme suit :
- Supprimez le domaine SageMaker Studio sur tous les comptes AWS.
- Supprimez toutes les ressources créées en dehors de SageMaker, y compris les compartiments S3, les rôles IAM, les règles EventBridge et la rubrique SNS configurées via Terraform dans le compte prod.
- Supprimez les pipelines SageMaker créés entre les comptes à l'aide de l'outil Interface de ligne de commande AWS (AWS CLI).
Conclusion
Les organisations doivent souvent s'aligner sur des ensembles d'outils à l'échelle de l'entreprise pour permettre la collaboration entre différents domaines fonctionnels et équipes. Cette collaboration garantit que votre plateforme MLOps peut s'adapter à l'évolution des besoins de l'entreprise et accélère l'adoption du ML au sein des équipes. Cet article explique comment créer un framework MLOps dans une configuration multi-environnements pour permettre le recyclage automatisé des modèles, l'inférence par lots et la surveillance avec Amazon SageMaker Model Monitor, la gestion des versions de modèles avec SageMaker Model Registry et la promotion du code ML et des pipelines dans les environnements avec un Pipeline CI/CD. Nous avons présenté cette solution en utilisant une combinaison de services AWS et d'ensembles d'outils tiers. Pour obtenir des instructions sur la mise en œuvre de cette solution, consultez le GitHub référentiel. Vous pouvez également étendre cette solution en apportant vos propres sources de données et cadres de modélisation.
À propos des auteurs
Gayatri Ghanakota est un ingénieur principal en apprentissage machine chez AWS Professional Services. Elle est passionnée par le développement, le déploiement et l'explication de solutions d'IA/ML dans divers domaines. Avant d'occuper ce poste, elle a dirigé plusieurs initiatives en tant que data scientist et ingénieur ML avec les plus grandes entreprises mondiales dans le domaine de la finance et de la vente au détail. Elle est titulaire d'une maîtrise en informatique spécialisée en science des données de l'Université du Colorado à Boulder.
Sunita Koppar est un architecte senior de Data Lake chez AWS Professional Services. Elle est passionnée par la résolution des problèmes des clients en traitant le Big Data et en fournissant des solutions évolutives à long terme. Avant d'occuper ce poste, elle a développé des produits dans les domaines de l'Internet, des télécommunications et de l'automobile, et a été cliente d'AWS. Elle est titulaire d'une maîtrise en science des données de l'Université de Californie à Riverside.
Saswata Dash est un consultant DevOps chez AWS Professional Services. Elle a travaillé avec des clients dans les domaines de la santé et des sciences de la vie, de l'aviation et de l'industrie manufacturière. Elle est passionnée par tout ce qui concerne l'automatisation et possède une expérience complète dans la conception et la création de solutions client à l'échelle de l'entreprise dans AWS. En dehors du travail, elle poursuit sa passion pour la photographie et les levers de soleil.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- A Propos
- accélère
- acceptation
- accès
- Compte
- hybrides
- à travers
- Action
- adapter
- ajouter
- propos
- administratif
- Adoption
- Après
- âge
- AI
- aligner
- Tous
- permettre
- permet
- le long de
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ainsi que le
- Une autre
- tous
- Application
- approprié
- approuver
- ,
- architecture
- SONT
- domaines
- autour
- artificiel
- intelligence artificielle
- Intelligence artificielle (AI)
- AS
- demandant
- associé
- assumer
- joindre
- auto
- Automatisation
- Automatique
- Automation
- l'automobile
- disponibles
- aviation
- éviter
- AWS
- Client AWS
- Services professionnels AWS
- RETOUR
- basé
- base
- BE
- car
- était
- before
- va
- LES MEILLEURS
- les meilleures pratiques
- jusqu'à XNUMX fois
- Big
- Big Data
- tous les deux
- Branche
- combler
- Apporter
- construire
- Développement
- construit
- la performance des entreprises
- mais
- by
- calcul
- Californie
- appelé
- CAN
- maisons
- central
- Change
- modifié
- Modifications
- des charges
- vérifier
- le choix
- Selectionnez
- code
- collaboration
- recueillir
- Colorado
- Colonne
- Colonnes
- COM
- combinaison
- complet
- conformité
- composants électriques
- complet
- ordinateur
- Informatique
- condition
- configuration
- Confirmer
- Console
- consultant
- Contenant
- contient
- des bactéries
- Convention
- convertir
- Correspondant
- engendrent
- créée
- La création
- Lettres de créance
- Cross
- des clients
- Solutions clients
- Clients
- Tous les jours
- tableau de bord
- données
- Lac de données
- science des données
- Data Scientist
- ensembles de données
- Décrypter
- Réglage par défaut
- Degré
- déployer
- déployer
- déploiement
- déploie
- conception
- détails
- détecter
- détecté
- dev
- développé
- développement
- Développement
- DICT
- différent
- domaine
- domaines
- pendant
- Dynamic
- chacun
- Plus tôt
- effet
- non plus
- emails
- permettre
- crypté
- ingénieur
- Assure
- Entrer
- Environment
- environnements
- essential
- événements
- évolution
- exécution
- attendu
- d'experience
- expliqué
- expliquant
- étendre
- faciliter
- FAIL
- Échoué
- échoue
- Échec
- Fonctionnalité
- Fonctionnalités:
- few
- Figure
- Déposez votre dernière attestation
- finale
- la traduction de documents financiers
- finition
- entreprises
- Prénom
- première fois
- Abonnement
- Pour
- trouvé
- Framework
- cadres
- De
- Remplir
- plein
- fonction
- fonctionnel
- avenir
- écart
- générer
- généré
- génère
- obtenez
- Git
- GitHub
- Donner
- donné
- donne
- Global
- Go
- Goes
- subventions
- Réservation de groupe
- Vous avez
- la médecine
- ici
- augmentation
- détient
- hébergement
- Comment
- How To
- HTML
- http
- HTTPS
- ID
- Identite
- if
- la mise en œuvre
- importer
- in
- inclut
- Y compris
- indice
- Infrastructure
- possible
- les initiatives
- entrées
- installer
- Installé
- instance
- Des instructions
- Intègre
- Intelligence
- Internet
- développement
- introduire
- IT
- Emploi
- Emplois
- jpg
- json
- ACTIVITES
- clés
- Libellé
- lac
- paysage d'été
- plus tard
- Nouveautés
- apprentissage
- LED
- à effet de levier
- VIE
- Life Sciences
- Gamme
- enregistrer
- long-term
- click
- machine learning
- Entrée
- maintenir
- a prendre une
- gérés
- gestion
- fabrication
- Marge
- Masse
- maîtrise
- mécanisme
- réunion
- Menu
- aller
- Métrique
- manquant
- ML
- MLOps
- modèle
- modélisation statistique
- numériques jumeaux (digital twin models)
- modifier
- Modules
- Des moments
- Surveiller
- surveillé
- Stack monitoring
- PLUS
- plusieurs
- prénom
- Nommé
- nommage
- Navigation
- Besoin
- nécessaire
- Besoins
- Nouveauté
- next
- Ordinaire
- cahier
- déclaration
- Notifications
- nombre
- numpy
- of
- souvent
- on
- ONE
- Opérations
- or
- de commander
- organisations
- Autre
- ande
- au contrôle
- plus de
- vue d'ensemble
- propre
- paquet
- page
- Pain
- pandas
- pain
- partie
- les pièces
- passé
- passion
- passionné
- Patron de Couture
- performant
- autorisations
- photographie
- choisi
- Choix
- pipeline
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- des notes bonus
- politiques
- politique
- Post
- pratiques
- prévoir
- Prédictions
- Préparer
- conditions préalables
- précédent
- Directeur
- Avant
- privilèges
- processus
- traitement
- Vidéo
- Produits
- professionels
- Projet
- promouvoir
- Promu
- promotion
- fournir
- à condition de
- fournit
- aportando
- disposition
- publiquement
- RÉSERVES
- poursuit
- Push
- Python
- vite.
- rapidement
- raw
- Lire
- solutions
- monde réel
- région
- vous inscrire
- inscrit
- registres
- enregistrement
- régulateurs
- en relation
- relation amoureuse
- supprimez
- dépôt
- nécessaire
- conditions
- Exigences
- ressource
- Resources
- réponse
- détail
- retourner
- Bord de l'eau
- Rôle
- rôle
- racine
- Règle
- Courir
- fonctionne
- sagemaker
- Pipelines SageMaker
- même
- Épargnez
- sauvé
- évolutive
- scénario
- calendrier
- prévu
- ordonnancement
- Sciences
- STARFLEET SCIENCES
- Scientifique
- scénario
- scripts
- de façon transparente
- Deuxièmement
- Section
- sécurisé
- sécurité
- sur le lien
- envoyer
- envoi
- envoie
- envoyé
- séparé
- serveur
- service
- Services
- set
- Paramétres
- installation
- Forme
- Partager
- elle
- devrait
- montrer
- présenté
- montré
- Spectacles
- étapes
- Fragment
- So
- sur mesure
- Solutions
- Résoudre
- Identifier
- Sources
- Space
- spécialisé
- groupe de neurones
- scission
- Région
- Déclaration
- statique
- Statut
- étapes
- Étapes
- Encore
- Boutique
- stockée
- STORES
- Chaîne
- structure
- studio
- réussi
- tel
- Les soutiens
- Target
- équipes
- télécommunications
- Terraform
- tester
- Essais
- qui
- La
- Les
- puis
- Là.
- Ces
- des choses
- Troisièmement
- des tiers.
- this
- trois
- Avec
- fiable
- à
- ensembles d'outils
- top
- sujet
- suivre
- Train
- qualifié
- Formation
- Transformer
- déclencher
- déclenché
- déclenchement
- oui
- La confiance
- TOUR
- deux
- ui
- sous
- université
- Université de la Californie
- Mises à jour
- a actualisé
- téléchargé
- URL
- us
- utilisé
- d'utiliser
- en utilisant
- utilitaire
- Valeurs
- divers
- version
- versions
- via
- Vidéo
- visible
- Montres
- we
- web
- services Web
- quand
- chaque fois que
- Les
- qui
- tout en
- sera
- comprenant
- dans les
- sans
- activités principales
- travaillé
- workflow
- de travail
- vos contrats
- écrire
- code écrit
- Vous n'avez
- Votre
- Youtube
- zéphyrnet