Créez un flux de travail MLOps à l'aide d'Amazon SageMaker et Azure DevOps - Recommandations AWS

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.

Créez un flux de travail MLOps à l'aide d'Amazon SageMaker et Azure DevOps

Créée par Deepika Kumar (AWS) et Sara van de Moosdijk (AWS)

Environnement : Production

Technologies : apprentissage automatique et intelligence artificielle DevOps ; opérations

Charge de travail : Microsoft

Services AWS : Amazon API Gateway ; Amazon ECR ; Amazon EventBridge ; AWS Lambda ; Amazon SageMaker

Récapitulatif

Les opérations d'apprentissage automatique (MLops) sont un ensemble de pratiques qui automatisent et simplifient les flux de travail et les déploiements d'apprentissage automatique (ML). MLops se concentre sur l'automatisation du cycle de vie du machine learning. Cela permet de garantir que les modèles ne sont pas seulement développés, mais également déployés, surveillés et réentraînés de manière systématique et répétée. Il apporte DevOps des principes au ML. Les MLOps se traduisent par un déploiement plus rapide des modèles de machine learning, une meilleure précision au fil du temps et une meilleure assurance qu'ils apportent une réelle valeur commerciale.

Organisations disposent souvent d' DevOps outils et de solutions de stockage de données existants avant de commencer leur parcours MLOP. Ce modèle montre comment exploiter les points forts de Microsoft Azure et d'AWS. Il vous aide à intégrer Azure DevOps SageMaker à Amazon pour créer un flux de travail MLOps.

La solution simplifie le travail entre Azure et AWS. Vous pouvez utiliser Azure pour le développement et AWS pour le machine learning. Il promeut un processus efficace de création de modèles d'apprentissage automatique du début à la fin, y compris le traitement des données, la formation et le déploiement sur AWS. Pour plus d'efficacité, vous gérez ces processus par le biais de DevOps pipelines Azure.

Conditions préalables et limitations

Prérequis

  • Abonnement Azure : accès aux services Azure, tels qu'Azure DevOps, pour configurer les pipelines d'intégration continue et de déploiement continu (CI/CD).

  • Compte AWS actif : autorisations d'utilisation des services AWS utilisés dans ce modèle.

  • Données — Accès aux données historiques pour l'entraînement du modèle d'apprentissage automatique.

  • Connaissance des concepts de machine learning — Compréhension de Python, des blocs-notes Jupyter et du développement de modèles d'apprentissage automatique.

  • Configuration de sécurité : configuration appropriée des rôles, des politiques et des autorisations dans Azure et AWS afin de garantir un transfert et un accès sécurisés aux données.

Limites

  • Ce guide ne fournit pas de conseils sur les transferts de données sécurisés entre clouds. Pour plus d'informations sur les transferts de données entre clouds, consultez la section Solutions AWS pour le cloud hybride et multicloud.

  • Les solutions multicloud peuvent augmenter la latence pour le traitement des données en temps réel et l'inférence de modèles.

  • Ce guide fournit un exemple d'architecture MLOPS multi-comptes. Des ajustements sont nécessaires en fonction de votre stratégie d'apprentissage automatique et d'AWS.

Architecture

Architecture cible

L'architecture cible intègre Azure DevOps à Amazon SageMaker, créant ainsi un flux de travail ML multicloud. Il utilise Azure pour les processus CI/CD ainsi que SageMaker pour la formation et le déploiement de modèles ML. Il décrit le processus d'obtention de données (à partir de sources telles qu'Amazon S3, Snowflake et Azure Data Lake) par le biais de la création et du déploiement de modèles. Les composants clés incluent les pipelines CI/CD pour la création et le déploiement de modèles, la préparation des données, la gestion de l'infrastructure, et Amazon SageMaker pour la formation, l'évaluation et le déploiement de modèles ML. Cette architecture est conçue pour fournir des flux de travail ML efficaces, automatisés et évolutifs sur les plateformes cloud.

Schéma d'architecture d'un flux de travail MLops utilisant Azure Devops et SageMaker

L'architecture comprend les composants suivants :

  1. Les data scientists réalisent des expériences de machine learning dans le compte de développement afin d'explorer différentes approches pour les cas d'utilisation du machine learning en utilisant différentes sources de données. Les data scientists réalisent des tests unitaires et des essais. À la suite de l'évaluation du modèle, les data scientists transmettent et fusionnent le code dans le référentiel Model Build, qui est hébergé sur Azure DevOps. Ce référentiel contient le code d'un pipeline de création de modèles en plusieurs étapes.

  2. Sur Azure DevOps, le Model Build Pipeline, qui fournit une intégration continue (CI), peut être activé automatiquement ou manuellement lors de la fusion du code avec la branche principale. Dans le compte Automation, cela active le SageMaker pipeline pour le prétraitement des données, la formation et l'évaluation des modèles, ainsi que l'enregistrement conditionnel des modèles en fonction de leur précision.

  3. Le compte Automation est un compte central sur toutes les plateformes de ML qui héberge des environnements ML (Amazon ECR), des modèles (Amazon S3), des métadonnées de modèles (SageMaker Model Registry), des SageMaker fonctionnalités (Feature Store), des pipelines automatisés (SageMaker Pipelines) et des informations sur les journaux ML (CloudWatch et OpenSearch Service). Ce compte permet la réutilisation des actifs de ML et applique les meilleures pratiques pour accélérer la livraison des cas d'utilisation du ML.

  4. La dernière version du modèle est ajoutée au registre des SageMaker modèles pour examen. Il suit les versions des modèles et les artefacts respectifs (lignage et métadonnées). Il gère également le statut du modèle (approbation, rejet ou en attente) et gère la version pour le déploiement en aval.

  5. Une fois qu'un modèle entraîné dans Model Registry a été approuvé via l'interface du studio ou un appel d'API, un événement peut être envoyé à Amazon EventBridge. EventBridge démarre le pipeline Model Deploy sur Azure DevOps.

  6. Le pipeline Model Deploy, qui fournit un déploiement continu (CD), extrait la source du référentiel Model Deploy. La source contient le code, la configuration pour le déploiement du modèle et des scripts de test pour les tests de qualité. Le pipeline Model Deploy peut être adapté à votre type d'inférence.

  7. Après des contrôles de qualité, le pipeline Model Deploy déploie le modèle sur le compte Staging. Le compte Staging est une copie du compte Production, et il est utilisé pour les tests et évaluations d'intégration. Pour une transformation par lots, le pipeline Model Deploy peut automatiquement mettre à jour le processus d'inférence par lots afin d'utiliser la dernière version approuvée du modèle. Pour une inférence en temps réel, sans serveur ou asynchrone, il configure ou met à jour le point de terminaison du modèle correspondant.

  8. Après un test réussi dans le compte Staging, un modèle peut être déployé sur le compte Production par approbation manuelle via le pipeline Model Deploy. Ce pipeline fournit un point de terminaison de production lors de l'étape Déploiement vers la production, y compris la surveillance du modèle et un mécanisme de retour des données.

  9. Une fois le modèle en production, utilisez des outils tels que SageMaker Model Monitor et SageMaker Clarify pour identifier les biais, détecter les dérives et surveiller en permanence les performances du modèle.

Automatisation et mise à l'échelle

Utilisez l'infrastructure en tant que code (IaC) pour le déployer automatiquement sur plusieurs comptes et environnements. En automatisant le processus de configuration d'un flux de travail MLOps, il est possible de séparer les environnements utilisés par les équipes de ML travaillant sur différents projets. AWS vous CloudFormation aide à modéliser, à approvisionner et à gérer les ressources AWS en traitant l'infrastructure comme du code.

Outils

Services AWS

  • Amazon SageMaker est un service de machine learning géré qui vous aide à créer et à former des modèles de machine learning, puis à les déployer dans un environnement hébergé prêt pour la production.

  • AWS Glue est un service d'extraction, de transformation et de chargement (ETL) entièrement géré. Il vous aide à classer, nettoyer, enrichir et déplacer les données de manière fiable entre les magasins de données et les flux de données.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données. Dans ce modèle, Amazon S3 est utilisé pour le stockage des données et intégré à l'entraînement SageMaker des modèles et aux objets du modèle.

  • AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à approvisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez. Dans ce modèle, Lamdba est utilisé pour les tâches de prétraitement et de post-traitement des données.

  • Amazon Elastic Container Registry (Amazon ECR) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable. Dans ce modèle, il stocke des conteneurs Docker SageMaker utilisés comme environnements de formation et de déploiement.

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Dans ce modèle, EventBridge orchestre des flux de travail basés sur des événements ou basés sur le temps qui initient le réentraînement ou le déploiement automatiques des modèles.

  • Amazon API Gateway vous aide à créer, publier, gérer, surveiller et sécuriser REST, HTTP et les WebSocket API à n'importe quelle échelle.  Dans ce modèle, il est utilisé pour créer un point d'entrée unique orienté vers l'extérieur pour les points de terminaison Amazon SageMaker .

Autres outils

  • Azure vous DevOps aide à gérer les pipelines CI/CD et à faciliter la création, les tests et le déploiement de code.

  • Azure Data Lake Storage ou Snowflake sont des sources tierces possibles de données de formation pour les modèles de machine learning.

Bonnes pratiques

Avant de mettre en œuvre un composant de ce flux de travail MLOps multicloud, effectuez les activités suivantes :

  • Définissez et comprenez le flux de travail d'apprentissage automatique et les outils nécessaires pour le soutenir. Les différents cas d'utilisation nécessitent des flux de travail et des composants différents. Par exemple, un feature store peut être nécessaire pour la réutilisation des fonctionnalités et l'inférence à faible latence dans un cas d'utilisation de personnalisation, mais il peut ne pas être nécessaire pour les autres cas d'utilisation. Il est nécessaire de comprendre le flux de travail cible, les exigences des cas d'utilisation et les méthodes de collaboration préférées de l'équipe de science des données pour personnaliser correctement l'architecture.

  • Créez une séparation claire des responsabilités pour chaque composant de l'architecture. La répartition du stockage des données entre Azure Data Lake Storage, Snowflake et Amazon S3 peut accroître la complexité et les coûts. Si possible, choisissez un mécanisme de stockage cohérent. De même, évitez d'utiliser une combinaison de DevOps services Azure et AWS, ou une combinaison de services Azure et AWS ML.

  • Choisissez un ou plusieurs modèles et ensembles de données existants pour end-to-end tester le flux de travail MLops. Les artefacts de test doivent refléter des cas d'utilisation réels développés par les équipes de data science lorsque la plateforme entre en production.

Épopées

TâcheDescriptionCompétences requises

Identifiez les sources de données.

Sur la base des cas d'utilisation actuels et futurs, des sources de données disponibles et des types de données (tels que les données confidentielles), documentez les sources de données qui doivent être intégrées à la plateforme mLOps. Les données peuvent être stockées dans Amazon S3, Azure Data Lake Storage, Snowflake ou d'autres sources. Créez un plan pour intégrer ces sources à votre plateforme et sécuriser l'accès aux bonnes ressources.

Ingénieur de données, data scientist, architecte cloud

Choisissez les services applicables.

Personnalisez l'architecture en ajoutant ou en supprimant des services en fonction du flux de travail souhaité par l'équipe de data science, des sources de données applicables et de l'architecture cloud existante. Par exemple, les ingénieurs de données et les scientifiques des données peuvent effectuer le prétraitement des données et l'ingénierie des fonctionnalités dans SageMaker AWS Glue ou Amazon EMR. Il est peu probable que les trois services soient nécessaires.

Administrateur AWS, ingénieur de données, scientifique des données, ingénieur ML

Analysez les exigences en matière de sécurité.

Rassemblez et documentez les exigences de sécurité. Il s'agit notamment de déterminer :

  • Quelles équipes ou quels ingénieurs peuvent accéder à des sources de données spécifiques

  • Si les équipes sont autorisées à accéder au code et aux modèles des autres équipes

  • Quelles autorisations (le cas échéant) les membres de l'équipe devraient avoir pour les comptes non liés au développement

  • Quelles mesures de sécurité doivent être mises en œuvre pour le transfert de données entre clouds

Administrateur AWS, architecte du cloud
TâcheDescriptionCompétences requises

Configurez AWS Organizations.

Configurez AWS Organizations sur le compte AWS racine. Cela vous permet de gérer les comptes suivants que vous créez dans le cadre d'une stratégie MLOps multi-comptes. Pour plus d'informations, consultez la documentation AWS Organizations.

Administrateur AWS
TâcheDescriptionCompétences requises

Créez un compte de développement AWS.

Créez un compte AWS dans lequel les ingénieurs de données et les scientifiques des données sont autorisés à expérimenter et à créer des modèles de machine learning. Pour obtenir des instructions, consultez la section Création d'un compte membre dans votre organisation dans la documentation AWS Organizations.

Administrateur AWS

Créer un référentiel Model Build.

Créez un référentiel Git dans Azure dans lequel les data scientists pourront transférer le code de création et de déploiement de leur modèle une fois la phase d'expérimentation terminée. Pour obtenir des instructions, consultez la section Configurer un référentiel Git dans la DevOps documentation Azure.

DevOps ingénieur, ingénieur ML

Créer un référentiel Model Deploy.

Créez un référentiel Git dans Azure qui stocke le code de déploiement standard et les modèles. Il doit inclure du code pour chaque option de déploiement utilisée par l'organisation, telle qu'identifiée lors de la phase de conception. Par exemple, il doit inclure des points de terminaison en temps réel, des points de terminaison asynchrones, une inférence sans serveur ou des transformations par lots. Pour obtenir des instructions, consultez la section Configurer un référentiel Git dans la DevOps documentation Azure.

DevOps ingénieur, ingénieur ML

Créez un référentiel Amazon ECR.

Configurez un référentiel Amazon ECR qui stocke les environnements ML approuvés sous forme d'images Docker. Permettez aux data scientists et aux ingénieurs ML de définir de nouveaux environnements. Pour obtenir des instructions, consultez la section Création d'un référentiel privé dans la documentation Amazon ECR.

Ingénieur ML

Configurez SageMaker Studio.

Configurez SageMaker Studio sur le compte de développement conformément aux exigences de sécurité définies précédemment et aux outils de science des données préférés, tels que l'environnement de développement intégré (IDE) de votre choix. Utilisez les configurations du cycle de vie pour automatiser l'installation des fonctionnalités clés et créer un environnement de développement uniforme pour les data scientists. Pour plus d'informations, consultez Amazon SageMaker Studio dans la SageMaker documentation.

Ingénieur ML, data scientist
TâcheDescriptionCompétences requises

Créez un compte Automation.

Créez un compte AWS sur lequel s'exécutent les pipelines et les tâches automatisés. Vous pouvez donner aux équipes de data science un accès en lecture à ce compte. Pour obtenir des instructions, consultez la section Création d'un compte membre dans votre organisation dans la documentation AWS Organizations.

Administrateur AWS

Configurez un registre de modèles.

Configurez le registre des SageMaker modèles dans le compte Automation. Ce registre stocke les métadonnées des modèles de machine learning et aide certains data scientists ou chefs d'équipe à approuver ou rejeter les modèles. Pour plus d'informations, consultez la section Enregistrer et déployer des modèles avec Model Registry dans la SageMaker documentation.

Ingénieur ML

Créez un Model Build pipeline.

Créez un pipeline CI/CD dans Azure qui démarre manuellement ou automatiquement lorsque le code est transféré vers le Model Build référentiel. Le pipeline doit extraire le code source et créer ou mettre à jour un SageMaker pipeline dans le compte Automation. Le pipeline doit ajouter un nouveau modèle au registre des modèles. Pour plus d'informations sur la création d'un pipeline, consultez la documentation Azure Pipelines.

DevOps ingénieur, ingénieur ML
TâcheDescriptionCompétences requises

Créez des comptes de préparation et de déploiement AWS.

Créez des comptes AWS pour la préparation et le déploiement de modèles de machine learning. Ces comptes doivent être identiques pour permettre de tester avec précision les modèles lors de la mise en scène avant de passer à la production. Vous pouvez donner aux équipes de data science un accès en lecture au compte de mise en scène. Pour obtenir des instructions, consultez la section Création d'un compte membre dans votre organisation dans la documentation AWS Organizations.

Administrateur AWS

Configurez des compartiments S3 pour la surveillance des modèles.

Effectuez cette étape si vous souhaitez activer la surveillance des modèles pour les modèles déployés créés par le Model Deploy pipeline. Créez des compartiments Amazon S3 pour stocker les données d'entrée et de sortie. Pour plus d'informations sur la création de compartiments S3, consultez la section Création d'un compartiment dans la documentation Amazon S3. Configurez des autorisations entre comptes afin que les tâches de surveillance automatique des modèles s'exécutent dans le compte Automation. Pour plus d'informations, consultez la section Surveillance des données et de la qualité du modèle dans la SageMaker documentation.

Ingénieur ML

Créez un Model Deploy pipeline.

Créez un pipeline CI/CD dans Azure qui démarre lorsqu'un modèle est approuvé dans le registre des modèles. Le pipeline doit vérifier le code source et l'artefact du modèle, créer les modèles d'infrastructure pour déployer le modèle dans les comptes de test et de production, déployer le modèle dans le compte de test, exécuter des tests automatisés, attendre l'approbation manuelle et déployer le modèle approuvé dans le compte de production. Pour plus d'informations sur la création d'un pipeline, consultez la documentation Azure Pipelines.

DevOps ingénieur, ingénieur ML
TâcheDescriptionCompétences requises

Créez un CDK ou des CloudFormation modèles AWS.

Définissez AWS Cloud Development Kit (AWS CDK) ou des CloudFormation modèles AWS pour tous les environnements devant être déployés automatiquement. Cela peut inclure l'environnement de développement, l'environnement d'automatisation et les environnements de préparation et de déploiement. Pour plus d'informations, consultez le kit de développement logiciel (CDK) et CloudFormationla documentation AWS.

AWS DevOps

Créez un Infrastructure pipeline.

Créez un pipeline CI/CD dans Azure pour le déploiement de l'infrastructure. Un administrateur peut lancer ce pipeline pour créer de nouveaux comptes AWS et configurer les environnements requis par l'équipe de ML.

DevOps ingénieur

Résolution des problèmes

ProblèmeSolution

Surveillance et détection de la dérive insuffisantes — Une surveillance inadéquate peut entraîner la non-détection des problèmes de performance du modèle ou une dérive des données.

Renforcez les cadres de surveillance avec des outils tels qu'Amazon CloudWatch, SageMaker Model Monitor et SageMaker Clarify. Configurez des alertes pour une action immédiate en cas de problèmes identifiés.

Erreurs de déclenchement du pipeline CI Le pipeline CI dans Azure DevOps peut ne pas être déclenché lors de la fusion de code en raison d'une mauvaise configuration.

Vérifiez les paramètres du DevOps projet Azure pour vous assurer que les webhooks sont correctement configurés et pointent vers les points de SageMaker terminaison appropriés.

Gouvernance Le compte d'automatisation central risque de ne pas appliquer les meilleures pratiques sur les plateformes d'apprentissage automatique, ce qui entraîne des flux de travail incohérents.

Auditez les paramètres du compte Automation, en vous assurant que tous les environnements et modèles de ML sont conformes aux meilleures pratiques et politiques prédéfinies.

Retards d'approbation du registre des modèles : cela se produit lorsque la vérification et l'approbation du modèle sont retardées, soit parce que les utilisateurs mettent du temps à l'examiner, soit en raison de problèmes techniques.

Mettez en œuvre un système de notification pour avertir les parties prenantes des modèles en attente d'approbation et rationaliser le processus de révision.

Défaillances liées aux événements de déploiement de modèles : les événements envoyés pour démarrer les pipelines de déploiement de modèles peuvent échouer, ce qui entraîne des retards de déploiement.

Vérifiez qu'Amazon EventBridge dispose des autorisations et des modèles d'événements appropriés pour appeler correctement les DevOps pipelines Azure.

Goulets d'étranglement liés au déploiement de la production — Les processus d'approbation manuels peuvent créer des goulets d'étranglement et retarder le déploiement des modèles en production.

Optimisez le flux de travail d'approbation au sein du pipeline de déploiement des modèles, en promouvant des révisions rapides et des canaux de communication clairs.

Ressources connexes

Documentation AWS

Autres ressources AWS

Documentation Azure