AWS Conseils prescriptifs - Création de pipelines ML prêts pour la production sur AWS

La page est créée Stephanie Vaillant
 
CONTINUER À LIRE
AWS Conseils prescriptifs - Création de pipelines ML prêts pour la production sur AWS
Création de pipelines ML prêts pour la production sur AWS

AWS Conseils prescriptifs

Copyright © 2024 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
AWS Conseils prescriptifs                                      Création de pipelines ML prêts pour la production sur AWS

AWS Conseils prescriptifs: Création de pipelines ML prêts pour la
production sur AWS
Copyright © 2024 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Les marques et la présentation commerciale d’Amazon ne peuvent être utilisées en relation avec
un produit ou un service qui n’est pas d’Amazon, d’une manière susceptible de créer une confusion
parmi les clients, ou d’une manière qui dénigre ou discrédite Amazon. Toutes les autres marques
commerciales qui ne sont pas la propriété d’Amazon appartiennent à leurs propriétaires respectifs,
qui peuvent ou non être affiliés ou connectés à Amazon, ou sponsorisés par Amazon.
AWS Conseils prescriptifs                                                                         Création de pipelines ML prêts pour la production sur AWS

Table of Contents
Introduction ........................................................................................................................................... 1
      ......................................................................................................................................................... 1
 .............................................................................................................................................................. 4
 .............................................................................................................................................................. 5
     Utilisation des tâches de traitement ................................................................................................ 5
     Utilisation de la clause de garde principale .................................................................................... 7
     Tests d'unité ..................................................................................................................................... 7
 .............................................................................................................................................................. 9
     Utilisation du kit SDK Step Functions ............................................................................................. 9
     Extension du SDK Step Functions ................................................................................................ 10
 ............................................................................................................................................................ 12
     Implémentation avecAWS CloudFormation ................................................................................... 12
    Modification de la sortie du SDK Step Functions ......................................................................... 13
............................................................................................................................................................ 14
............................................................................................................................................................ 16
    Différents niveaux d'automatisation ............................................................................................... 16
    Différentes plateformes pour charges de travail ML ..................................................................... 17
    Différents moteurs pour l'orchestration de pipelines ..................................................................... 18
............................................................................................................................................................ 19
Ressources supplémentaires ............................................................................................................. 20
Historique du document ..................................................................................................................... 21
Glossaire ............................................................................................................................................. 22
    # ..................................................................................................................................................... 22
    A ..................................................................................................................................................... 23
    B ..................................................................................................................................................... 26
    C ..................................................................................................................................................... 28
    D ..................................................................................................................................................... 31
    E ..................................................................................................................................................... 36
    F ..................................................................................................................................................... 38
    G ..................................................................................................................................................... 39
    H ..................................................................................................................................................... 40
    I ...................................................................................................................................................... 41
    L .................................................................................................................................................... 44
    M .................................................................................................................................................... 45

                                                                                                                                                               iii
AWS Conseils prescriptifs                                                                        Création de pipelines ML prêts pour la production sur AWS

    O ..................................................................................................................................................... 49
    P ..................................................................................................................................................... 52
    Q ................................................................................................................................................... 55
    R ..................................................................................................................................................... 55
    S ................................................................................................................................................... 58
    T ..................................................................................................................................................... 62
    U ..................................................................................................................................................... 63
    V ..................................................................................................................................................... 64
    W .................................................................................................................................................... 64
    Z ..................................................................................................................................................... 66
.......................................................................................................................................................... lxvii

                                                                                                                                                              iv
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

Création de pipelines ML prêts pour la production surAWS
Josiah Davis, Verdi March, Yin Song, Baichuan Sun, Chen Wu et Wei Yih Yap, Amazon Web
Services (AWS)

Janvier 2021(historique du document)

Les projets d'apprentissage automatique (ML) nécessitent un effort important en plusieurs
étapes qui inclut la modélisation, la mise en œuvre et la production afin de générer de la valeur
commerciale et de résoudre des problèmes du monde réel. De nombreuses alternatives et options de
personnalisation sont disponibles à chaque étape, ce qui rend de plus en plus difficile la préparation
d'un modèle de machine learning pour la production dans les limites de vos ressources et de votre
budget. Ces dernières années chez Amazon Web Services (AWS), notre équipe de science des
données a travaillé avec différents secteurs industriels sur des initiatives de ML. Nous avons identifié
des points faibles communs à de nombreuses personnesAWSclients, qui proviennent à la fois de
problèmes organisationnels et de défis techniques, et nous avons développé une approche optimale
pour fournir des solutions de ML prêtes à la production.

Ce guide est destiné aux data scientists et aux ingénieurs ML impliqués dans la mise en œuvre
de pipelines de ML. Il décrit notre approche pour fournir des pipelines de ML prêts pour la
production. Le guide explique comment passer de l'exécution interactive de modèles ML (pendant
le développement) à leur déploiement dans le cadre d'un pipeline (pendant la production) pour
votre cas d'utilisation du ML. À cette fin, nous avons également développé une série d'exemples
de modèles (voir leProjet ML Max), afin d'accélérer la mise à disposition de solutions de machine
learning personnalisées en production, afin que vous puissiez démarrer rapidement sans avoir à faire
trop de choix de conception.

Présentation
Le processus de création d'un pipeline de machine virtuelle prêt pour la production comprend les
étapes suivantes :

• Étape 1. Réaliser un EDA et développer le modèle initial— Les data scientists mettent des données
  brutes à disposition dans Amazon Simple Storage Service (Amazon S3), effectuent une analyse
  exploratoire des données (EDA), développent le modèle ML initial et évaluent ses performances
  d'inférence. Vous pouvez effectuer ces activités de manière interactive via les blocs-notes Jupyter.
• Étape 2. Création des scripts d'exécution— Vous intégrez le modèle à des scripts Python
  d'exécution afin qu'il puisse être géré et approvisionné par un framework ML (dans notre cas,

                                                                                                                       1
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

   Amazon SageMaker). Il s'agit de la première étape pour passer du développement interactif d'un
   modèle autonome à la production. Plus précisément, vous définissez séparément la logique du
   prétraitement, de l'évaluation, de la formation et de l'inférence.
• Étape 3. Définition du pipeline— Vous définissez les espaces réservés d'entrée et de sortie pour
  chaque étape du pipeline. Des valeurs concrètes pour celles-ci seront fournies ultérieurement, au
  cours de l'exécution (étape 5). Vous vous concentrez sur les pipelines de formation, d'inférence, de
  validation croisée et de backtesting.

• Étape 4. Créez le pipeline— Vous créez l'infrastructure sous-jacente, y compris leAWS
  Step Functionsstate machine de manière automatisée (presque en un clic), en utilisantAWS
  CloudFormation.

• Étape 5. Exécuter le pipeline— Vous exécutez le pipeline défini à l'étape 4. Vous préparez
  également des métadonnées et des données ou des emplacements de données pour renseigner
  des valeurs concrètes pour les espaces réservés d'entrée/sortie que vous avez définis à l'étape 3.
   Cela inclut les scripts d'exécution définis à l'étape 2 ainsi que les hyperparamètres du modèle.

• Étape 6. Développez le pipeline— Vous implémentez des processus d'intégration et de
  déploiement continus (CI/CD), un recyclage automatique, une inférence planifiée et des extensions
  similaires du pipeline.

Le diagramme suivant illustre les principales étapes de ce processus.

                                                                                                                       2
AWS Conseils prescriptifs   Création de pipelines ML prêts pour la production sur AWS

                                                                                   3
AWS Conseils prescriptifs                                      Création de pipelines ML prêts pour la production sur AWS

Étape 1. Effectuez l'EDA et développez le modèle initial
Au cours de cette étape, les scientifiques des données effectuent une analyse exploratoire des
données (EDA) afin de comprendre le cas d'utilisation et les données de ML. Ils développent
ensuite les modèles ML (par exemple, les modèles de classification et de régression) pour résoudre
le problème dans un cas d'utilisation donné. Lors du développement de modèles, le spécialiste
des données émet souvent des hypothèses sur les entrées et les sorties, telles que les formats
de données, le cycle de vie des données et les emplacements des sorties intermédiaires. Ces
hypothèses doivent être documentées afin qu'elles puissent être utilisées à des fins de vérification
lors des tests unitaires de l'étape 2.

Bien que cette étape se concentre sur le développement de modèles, les scientifiques des données
doivent souvent écrire un minimum de code d'assistance pour le prétraitement, la formation,
l'évaluation et l'inférence. Le spécialiste des données devrait pouvoir exécuter ce code dans
l'environnement de développement. Nous recommandons également de fournir des arguments
d'exécution facultatifs afin que ce code d'assistance puisse être configuré dynamiquement pour être
exécuté dans d'autres environnements sans modifications manuelles importantes. Cela accélérera
l'intégration entre le modèle et le pipeline aux étapes 2 et 3. Par exemple, le code de lecture des
données brutes doit être encapsulé dans des fonctions afin que les données puissent être prétraitées
de manière cohérente.

Nous vous recommandons de commencer par utiliser un cadre tel quescikit-
learn,XGBoost,PyTorch,Keras, ouTensorFlowpour développer le modèle ML et son
code d'assistance. Par exemple, scikit-learn est une bibliothèque ML gratuite écrite en
Python. Il fournit une convention API uniforme pour les objets et comprend quatre objets
principaux :estimateur,prédicteur,transformateur, etmodèle: qui couvrent les transformations de
données légères, prennent en charge l'ingénierie des étiquettes et des fonctionnalités, et encapsulent
les étapes de prétraitement et de modélisation. Ces objets permettent d'éviter la prolifération du code
de la plaque de chaudière et d'empêcher la fuite de données de validation et de test dans le jeu de
données d'entraînement. De même, chaque infrastructure ML a sa propre implémentation d'artefacts
ML clés, et nous vous recommandons de respecter les conventions API de votre framework
sélectionné lorsque vous développez des modèles ML.

                                                                                                                      4
AWS Conseils prescriptifs                                    Création de pipelines ML prêts pour la production sur AWS

Étape 2. Création des scripts d'exécution

Au cours de cette étape, vous intégrez le modèle que vous avez développé à l'étape 1 et le code
d'assistance associé à une plateforme ML pour une formation et une inférence prêtes à la production.
Cela implique notamment le développement de scripts d'exécution afin que le modèle puisse être
intégré à SageMaker. Ces scripts Python autonomes incluent des fonctions de rappel SageMaker
prédéfinies et des variables d'environnement. Ils sont exécutés dans un conteneur SageMaker
hébergé sur une instance Amazon Elastic Compute Cloud (Amazon EC2). LeDocumentation du kit
SDK Amazon SageMaker Pythonfournit des informations détaillées sur la façon dont ces rappels
et la configuration auxiliaire fonctionnent ensemble pour la formation et l'inférence. (Pour obtenir
des exemples, consultezPréparer un script d'entraînement Scikit-LearnetDéployer un modèle scikit-
learndans la documentation SageMaker.) Les sections suivantes fournissent des recommandations
supplémentaires pour le développement de scripts d'exécution ML, en fonction de notre expérience
de travail avecAWSclients.

Utilisation des tâches de traitement
SageMaker propose deux options pour effectuer une inférence de modèle en mode lot. Vous pouvez
utiliser un SageMakertravail de traitementou untâche de transformation pas lots. Chaque option a ses
avantages et ses inconvénients.

Utilisation des tâches de traitement                                                                                5
AWS Conseils prescriptifs                                         Création de pipelines ML prêts pour la production sur AWS

Une tâche de traitement consiste en un fichier Python exécuté dans un conteneur SageMaker. Le
travail de traitement consiste en la logique que vous avez placée dans votre fichier Python. Il dispose
des avantages suivants :

• Lorsque vous comprenez la logique de base d'une tâche de formation, les tâches de traitement
  sont simples à configurer et faciles à comprendre. Ils partagent les mêmes abstractions que
  les tâches de formation (par exemple, réglage du nombre d'instances et de la distribution des
  données).

• Les scientifiques des données et les ingénieurs ML ont un contrôle total sur les options de
  manipulation des données.

• Le data scientist n'a pas à gérer la logique des composants d'E/S, sauf pour les fonctionnalités de
  lecture/écriture familières.

• Il est un peu plus facile d'exécuter les fichiers dans des environnements autres que SageMaker, ce
   qui facilite le développement rapide et les tests locaux.

• En cas d'erreur, une tâche de traitement échoue dès que le script échoue, et il n'y a pas d'attente
  inattendue de nouvelle tentative.

D'autre part, les tâches de transformation par lots sont une extension du concept de point de
terminaison SageMaker. Au moment de l'exécution, ces tâches importent des fonctions de rappel, qui
gèrent ensuite les E/S pour lire les données, charger le modèle et effectuer les prévisions. Les tâches
de transformation Batch présentent les avantages suivants :

• Ils utilisent une abstraction de distribution de données qui diffère de l'abstraction utilisée par les
  tâches de formation.
• Ils utilisent le même fichier principal et la même structure de fonction pour l'inférence par lots et
  l'inférence en temps réel, ce qui est pratique.

• Ils disposent d'un mécanisme intégré de tolérance aux pannes basé sur les essais. Par exemple,
   si une erreur se produit sur un lot d'enregistrements, elle retentera plusieurs fois avant la fin de la
   tâche en raison d'un échec.

En raison de sa transparence, de sa facilité d'utilisation dans de nombreux environnements et de
son abstraction partagée avec les tâches de formation, nous avons décidé d'utiliser le travail de
traitement au lieu du travail de transformation par lots dans l'architecture de référence présentée
dans ce guide.

Utilisation des tâches de traitement                                                                                     6
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

Vous devez exécuter des scripts d'exécution Python localement avant de les déployer dans le
cloud. Plus précisément, nous vous recommandons d'utiliser la clause principale guard lorsque vous
structurez vos scripts Python et que vous effectuez des tests unitaires.

Utilisation de la clause de garde principale
Utilisez une clause de garde principale pour prendre en charge l'importation de modules et exécuter
votre script Python. L'exécution de scripts Python individuellement est bénéfique pour déboguer et
isoler les problèmes dans le pipeline ML. Nous vous recommandons la procédure suivante :

• Utilisez un analyseur d'arguments dans les fichiers de traitement Python pour spécifier les fichiers
  d'entrée/sortie et leurs emplacements.
• Fournissez un guide principal et des fonctions de test pour chaque fichier Python.
• Après avoir testé un fichier Python, intégrez-le aux différentes étapes du pipeline ML, que vous
  utilisiez un fichierAWS Step Functionsou une tâche de traitement SageMaker.
• UtiliserAssertionsdans les sections critiques du script pour faciliter les tests et le débogage. Par
  exemple, vous pouvez utiliser unAssertionspour s'assurer que le nombre d'entités du jeu de
  données est cohérent après le chargement.

Tests d'unité
Le test unitaire des scripts d'exécution écrits pour le pipeline est une tâche importante fréquemment
ignorée dans le développement du pipeline ML. En effet, l'apprentissage automatique et la science
des données sont des domaines relativement nouveaux et ont tardé à adopter des pratiques
d'ingénierie logicielle bien établies telles que les tests unitaires. Étant donné que le pipeline ML
sera utilisé dans l'environnement de production, il est essentiel de tester le code du pipeline avant
d'appliquer le modèle ML à des applications réelles.

Le test unitaire du script d'exécution offre également les avantages uniques suivants pour les
modèles ML :

• Il empêche les transformations inattendues de données. La plupart des pipelines ML impliquent
  de nombreuses transformations de données, il est donc essentiel que ces transformations
  fonctionnent comme prévu.
• Il valide la reproductibilité du code. Tout caractère aléatoire dans le code peut être détecté par des
  tests unitaires avec différents cas d'utilisation.

Utilisation de la clause de garde principale                                                                            7
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

• Il applique la modularité du code. Les tests unitaires sont généralement associés à la mesure de
   couverture des tests, qui correspond au degré auquel une suite de tests particulière (un ensemble
   de cas de test) exécute le code source d'un programme. Pour obtenir une couverture de test
   élevée, les développeurs modularisent le code, car il est difficile d'écrire des tests unitaires pour
   une grande quantité de code sans le décomposer en fonctions ou classes.
• Il empêche l'introduction de code ou d'erreurs de mauvaise qualité dans la production.

Nous vous recommandons d'utiliser une structure de test unitaire mature, telle quepytestpour écrire
les cas de tests unitaires, car il est plus facile de gérer des tests unitaires étendus dans un cadre.

        Important
        Les tests unitaires ne peuvent pas garantir que tous les cas d'angle sont testés, mais ils
        peuvent vous aider à éviter les erreurs de manière proactive avant de déployer le modèle.
        Nous vous recommandons également de surveiller le modèle après le déploiement, afin de
        garantir l'excellence opérationnelle.

Tests d'unité                                                                                                           8
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

Étape 3. Définir le pipeline

Dans cette étape, la séquence et la logique des actions que le pipeline exécutera sont définies. Cela
inclut les étapes discrètes ainsi que leurs entrées et sorties logiques. Par exemple, quel est l'état des
données au début du pipeline ? Provient-il de plusieurs fichiers à différents niveaux de granularité ou
d'un seul fichier plat ? Si les données proviennent de plusieurs fichiers, avez-vous besoin d'une seule
étape pour tous les fichiers ou d'étapes distinctes pour chaque fichier afin de définir la logique de
prétraitement ? La décision dépend de la complexité des sources de données et de la mesure dans
laquelle elles sont prétraitées.

Dans notre implémentation de référence, nous utilisonsAWS Step Functions, qui est un orchestrateur
de fonctions sans serveur, pour définir les étapes du flux de travail. Cependant, leCadre ML
Maxprend également en charge d'autres systèmes de machines de pipeline ou d'état tels que Apache
AirFlow (voir leDifférents moteurs pour l'orchestration de pipelines) pour piloter le développement et
le déploiement de pipelines ML.

Utilisation du kit SDK Step Functions
Pour définir le pipeline ML, nous utilisons d'abord l'API Python de haut niveau fournie par leAWS
Step FunctionsKit SDK Data Science(le SDK Step Functions) pour définir deux composants clés du
pipeline :pasetdonnées. Si vous considérez un pipeline comme un graphe acyclique dirigé (DAG), les
étapes représentent les nœuds du graphique et les données sont affichées sous la forme d'arêtes

Utilisation du kit SDK Step Functions                                                                                  9
AWS Conseils prescriptifs                                      Création de pipelines ML prêts pour la production sur AWS

dirigées qui connectent un nœud (étape) à l'autre. Parmi les exemples typiques d'étapes ML, citons le
prétraitement, la formation et l'évaluation. Le SDK Step Functions fournit un certain nombre d'étapes
intégrées (telles que leÉtape de formation) que vous pouvez utiliser. Parmi les exemples de données,
citons l'entrée, la sortie et de nombreux jeux de données intermédiaires produits par certaines étapes
du pipeline. Lorsque vous concevez un pipeline ML, vous ne connaissez pas les valeurs concrètes
des éléments de données. Vous pouvez définirespaces réservés de donnéesqui servent de modèle
(similaire aux paramètres de fonction) et ne contiennent que le nom de l'élément de données et des
types de données primitifs. De cette façon, vous pouvez concevoir un plan de pipeline complet sans
connaître à l'avance les valeurs concrètes des données voyageant sur le graphique. À cette fin,
vous pouvez utiliser les classes d'espace réservé dans le kit SDK Step Functions pour modéliser
explicitement ces modèles de données.

Les pipelines ML nécessitent également des paramètres de configuration pour effectuer un contrôle
précis du comportement de chaque étape ML. Ces espaces réservés de données spéciaux sont
appelésespaces réservés de paramètres. La plupart de leurs valeurs sont inconnues lorsque vous
définissez le pipeline. Des exemples d'espaces réservés aux paramètres incluent les paramètres
liés à l'infrastructure que vous définissez lors de la conception du pipeline (par exemple, l'URL de
l'image de la région AWS ou du conteneur) et les paramètres liés à la modélisation ML (tels que des
hyperparamètres) que vous définissez lorsque vous exécutez le pipeline.

Extension du SDK Step Functions
Dans notre implémentation de référence, l'une des exigences consistait à séparer les définitions de
pipeline ML de la création et du déploiement concrets de pipeline ML en utilisant des paramètres
spécifiques. Cependant, certaines des étapes intégrées du SDK Step Functions ne nous ont pas
permis de transmettre tous ces paramètres d'espace réservé. Au lieu de cela, les valeurs des
paramètres devaient être directement obtenues pendant la conception du pipeline via les appels
d'API de configuration SageMaker. Cela fonctionne correctement si l'environnement de conception
SageMaker est identique à l'environnement d'exécution SageMaker, mais c'est rarement le cas dans
les paramètres réels. Un couplage aussi étroit entre le temps de conception du pipeline et l'exécution,
et l'hypothèse que l'infrastructure de la plate-forme ML restera constante, entrave considérablement
l'applicabilité du pipeline conçu. En fait, le pipeline ML se brise immédiatement lorsque la plate-forme
de déploiement sous-jacente subit le moindre changement.

Pour surmonter ce défi et produire un pipeline ML robuste (que nous voulions concevoir une seule
fois et exécuter n'importe où), nous avons implémenté nos propres étapes personnalisées en
étendant certaines étapes intégrées, notamment :Étape de formation,Modèle Step, etÉtape du

Extension du SDK Step Functions                                                                                      10
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

transformateur. Ces extensions sont fournies dans leProjet ML Max. Les interfaces de ces étapes
personnalisées prennent en charge beaucoup plus d'espaces réservés de paramètres pouvant
être remplis de valeurs concrètes lors de la création du pipeline ou lorsque le pipeline est en cours
d'exécution.

Extension du SDK Step Functions                                                                                       11
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

Étape 4. Crée le pipeline

Une fois que vous avez défini le pipeline de manière logique, il est temps de créer l'infrastructure pour
prendre en charge le pipeline. Cette étape nécessite au minimum les fonctionnalités suivantes :

• Stockage, pour héberger et gérer les entrées et sorties de pipeline, y compris le code, les artefacts
  de modèle et les données utilisées dans les exécutions d'entraînement et d'inférence.
• Calcul (GPU ou CPU), pour la modélisation et l'inférence ainsi que pour le prétraitement et le post-
  traitement des données.
• Orchestration, pour gérer les ressources utilisées et pour planifier les exécutions régulières.
  Par exemple, le modèle peut être recyclé périodiquement à mesure que de nouvelles données
  deviennent disponibles.
• Enregistrement et alerte, pour surveiller la précision du modèle de pipeline, l'utilisation des
   ressources et le dépannage.

Implémentation avecAWS CloudFormation
Pour créer le pipeline que nous avons utiliséAWS CloudFormation, qui est uneAWSservice de
déploiement et de gestion de l'infrastructure sous forme de code. LeAWS CloudFormationincluent
la définition Step Functions créée à l'étape précédente avec le kit SDK Step Functions. Cette étape
inclut la création de l'instance Step Functions gérées par AWS, appelée laMachine d'état Step

Implémentation avecAWS CloudFormation                                                                                  12
AWS Conseils prescriptifs                                      Création de pipelines ML prêts pour la production sur AWS

Functions. Aucune ressource pour la formation et l'inférence n'est créée à ce stade, car les tâches
de formation et d'inférence sont exécutées à la demande, uniquement lorsqu'elles sont nécessaires,
en tant que tâches SageMaker. Cette étape inclut également la créationAWS Identity and Access
Management(IAM) pour exécuter les Step Functions, exécuter SageMaker et lire et écrire à partir
d'Amazon S3.

Modification de la sortie du SDK Step Functions
Nous avons dû apporter quelques modifications mineures auAWS CloudFormationsortie de la section
précédente. Nous avons utilisé une correspondance de chaînes Python simple pour effectuer les
opérations suivantes :

• Nous avons ajouté une logique pour créer leParametersSection duAWS CloudFormationmodèle.
  En effet, nous voulons créer deux rôles et définir le nom du pipeline en tant que paramètre avec
   l'environnement de déploiement. Cette étape couvre également toutes les ressources et rôles
   supplémentaires que vous pourriez vouloir créer, comme indiqué à l'étape 6.
• Nous avons reformaté trois champs pour avoir les éléments requis!Subpréfixe et guillemets afin
  qu'ils puissent être mis à jour dynamiquement dans le cadre du processus de déploiement :
   • LeStateMachineName, qui nomme la machine d'état.
   • LeDefinitionString, qui définit la machine d'état.
   • LeRoleArn, qui est renvoyée par la machine d'état.

Modification de la sortie du SDK Step Functions                                                                      13
AWS Conseils prescriptifs                                      Création de pipelines ML prêts pour la production sur AWS

Étape 5. Exécutez le pipeline

Cette étape exécute le pipeline de formation ou d'inférence créé dans leAWS CloudFormationempilez
à l'étape 4. Le pipeline ne peut pas être exécuté tant que ses paramètres d'espace réservé internes
n'ont pas été remplis de valeurs concrètes. Cette action consistait à attribuer des valeurs à des
paramètres d'espace réservé est l'activité principale de l'étape 5. Voici des exemples de paramètres
d'espace réservé :

• Emplacement des jeux de données en entrée, en sortie et intermédiaires
• Emplacement Amazon S3 des scripts d'exécution et d'autres codes de prétraitement ou
   d'évaluation développés à l'étape 2 (par exemple,sm_submit_urlpour le pipeline de formation)
• Nom de laAWSRegion (Région)

Vous devez vous assurer que ces valeurs de chemin pointent vers des données ou du code valides
avant d'exécuter le pipeline. Par exemple, si vous renseignez le paramètre réservé qui représente
l'URL Amazon S3 des scripts d'exécution Python, vous devez charger ces scripts vers cette URL. La
personne qui gère le pipeline est responsable de la vérification de la cohérence et du chargement
des données. Les personnes qui définissent ou créent le pipeline n'ont pas à s'inquiéter de tout cela.

Selon la maturité du pipeline, cette étape peut être automatisée pour être exécutée sur une base
régulière (hebdomadaire ou mensuelle). L'automatisation nécessite également une surveillance
robuste, qui est un domaine important mais ne fait pas partie de ce guide. Pour l'exécution du

                                                                                                                     14
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

pipeline de formation, il serait approprié de surveiller les mesures d'évaluation. Pour le pipeline
d'inférence, il serait approprié de surveiller la dérive de la distribution des données en entrée et,
si possible, de collecter périodiquement les étiquettes et de mesurer la dérive dans la précision
de la prédiction. Ces enregistrements issus des essais d'entraînement et d'inférence doivent être
enregistrés dans une base de données pour analyse ultérieurement.

                                                                                                                       15
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

Étape 6. Développez le pipeline
Ce guide explique comment commencer à créer des pipelines ML surAWSrapidement, avec une
architecture concrète. Il existe d'autres considérations pour la maturation du pipeline, telles que la
gestion des métadonnées, le suivi des expériences et la surveillance. Ce sont des sujets importants
qui ne sont pas pris en compte dans le cadre de ce guide. Les sections suivantes traitent d'un autre
aspect de la gestion des pipelines, à savoir l'automatisation des pipelines.

Différents niveaux d'automatisation
Bien que vous puissiez configurer un pipeline de formation manuellement dans la console
SageMaker, dans la pratique, nous recommandons de minimiser les points de contact manuels dans
le déploiement des pipelines de formation ML pour garantir que les modèles ML sont déployés de
manière cohérente et répétée. En fonction de vos besoins et des problèmes commerciaux auxquels
vous êtes confronté, vous pouvez déterminer et mettre en œuvre une stratégie de déploiement sur
trois niveaux : semi-automatisé, entièrement automatisé et entièrement géré.

• Semi-automatisé : par défaut, les étapes décrites dans la section précédente suivent une approche
  semi-automatisée, car elles déploient le pipeline de formation et d'inférence en utilisantAWS
  CloudFormationmodèles. Cela permet d'assurer la reproductibilité du pipeline et vous aide à le
  modifier et à le mettre à jour facilement.

• Entièrement automatisé — Une option plus avancée consiste à utiliser l'intégration et le
  déploiement continus (CI/CD) dans les environnements de développement, de préparation et de
  production. L'intégration des pratiques CI/CD au déploiement du pipeline de formation peut garantir
  que l'automatisation inclut la traçabilité ainsi que des portes de qualité.

• Entièrement géré : en fin de compte, vous pouvez développer un système entièrement géré de
  sorte que vous puissiez déployer un pipeline de formation ML avec un ensemble de manifestes
  simples, et le système peut auto-configurer et coordonner les besoinsAWSServices .

Dans ce guide, nous avons choisi de présenter une architecture concrète. Cependant, vous pouvez
envisager d'autres technologies. Les deux sections suivantes discutent d'autres choix pour la
plateforme et le moteur d'orchestration.

Différents niveaux d'automatisation                                                                                   16
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

Différentes plateformes pour charges de travail ML
Amazon SageMakerest leAWSservice géré pour la formation et le service des modèles ML. De
nombreux utilisateurs apprécient sa vaste gamme de fonctionnalités intégrées et les nombreuses
options qu'il offre pour exécuter des charges de travail ML. SageMaker est particulièrement utile
si vous commencez tout juste à implémenter ML dans le cloud. Les principales fonctionnalités de
SageMaker sont les suivantes :

• Traçabilité intégrée (y compris l'étiquetage, la formation, le suivi des modèles, l'optimisation et
  l'inférence).

• Options intégrées en un clic pour l'entraînement et l'inférence avec une expérience Python et ML
  minimale.

• Réglage avancé des hyperparamètres.

• Support de tous les principaux frameworks d'intelligence artificielle et d'apprentissage automatique
  (ML/AI) et des conteneurs Docker personnalisés.

• Capacités de surveillance intégrées.

• Suivi intégré des historiques, y compris les tâches de formation, les tâches de traitement, les
  tâches de transformation par lots, les modèles, les points de terminaison et la capacité de
  recherche. Certains historiques, tels que la formation, le traitement et la transformation par lots,
  sont immuables et ajoutés uniquement.

L'une des alternatives à l'utilisation de SageMaker estAWS Batch.AWS Batchoffre un niveau de
contrôle inférieur sur le calcul et l'orchestration de votre environnement, mais il n'est pas conçu sur
mesure pour l'apprentissage automatique. Voici quelques-unes de ses principales caractéristiques :

• Mise à l'échelle automatique prête à l'emploi des ressources de calcul en fonction de la charge de
  travail.
• Prise en charge prête à l'emploi pour la priorité des tâches, les nouvelles tentatives et les
  dépendances des tâches.

• Approche basée sur la file d'attente qui prend en charge la création de tâches récurrentes et à la
  demande.

• Support des charges de travail CPU et GPU. La capacité d'utiliser le GPU pour créer des modèles
  ML est essentielle, car le GPU peut accélérer considérablement le processus de formation, en
  particulier pour les modèles de Deep Learning.

Différentes plateformes pour charges de travail ML                                                                     17
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

• Possibilité de définir une personnalisationAmazon Machine Image(AMI) pour l'environnement de
   calcul.

Différents moteurs pour l'orchestration de pipelines
Le deuxième composant principal est la couche d'orchestration du pipeline.AWSfournitStep
Functionspour une expérience d'orchestration entièrement gérée. Une alternative populaire aux
fonctions Step Functions est Apache Airflow. Lors de la prise de décision entre les deux, prenez en
considération les éléments suivants :

• Infrastructure requise —AWS Step Functionsest un service entièrement géré et sans serveur,
  alors qu'Airflow nécessite la gestion de votre propre infrastructure et repose sur des logiciels open
  source. Par conséquent, Step Functions offre une haute disponibilité prête à l'emploi, tandis que
  l'administration d'Apache Airflow nécessite des étapes supplémentaires.
• Capacités de planification — Les fonctions Step Functions et Airflow offrent des fonctionnalités
  comparables.
• Capacités de visualisation et interface utilisateur : les Step Functions et Airflow offrent des
  fonctionnalités comparables.
• Transmission de variables dans le graphique de calcul — Step Functions offre des fonctionnalités
  limitées pour l'utilisationAWS Lambda, tandis que Airflow fournit des interfaces XCom.
• Utilisation — Step Functions est très populaire parmiAWSclients, et Airflow a été largement adopté
  par la communauté de l'ingénierie des données.

Différents moteurs pour l'orchestration de pipelines                                                                   18
AWS Conseils prescriptifs                                        Création de pipelines ML prêts pour la production sur AWS

Conclusion
Alors que l'apprentissage automatique passe d'une discipline de recherche à un domaine appliqué,
nous avons enregistré une croissance annuelle de 25 % du développement, du déploiement et de
l'exploitation de pipelines ML dans divers secteurs. La valeur commerciale de ML est réalisée par
le biais d'opérations et de pipelines de ML quotidiens, qui, à leur tour, stimulent la recherche et le
développement de modèles et d'algorithmes ML. Néanmoins, le déploiement de ML en production
présente de nombreux défis, car il entremêle des activités et des artefacts significativement différents,
tels que la gestion des données, le traitement, l'analyse, la modélisation, la vérification et la sécurité.
Grâce à de nombreux engagements AI/ML avecAWSclients, notre équipe Data Science a constaté
que l'un des principaux défis est l'absence d'un flux de travail de bout en bout qui fournirait un
ensemble de modèles permettant de fusion ou de séparation optimale des différentes activités et
artefacts ML DevOps. Dans ce guide, nous avons présenté leflux de travail ML Maxpour résoudre
ce problème pressant. ML Max fournit des directives étape par étape et un ensemble de modèles
de programmation. L'objectif est de permettre une transition rapide et rentable d'une phase de
développement de modèles interactifs à une configuration complète et évolutive de pipeline ML prête
pour la production.

                                                                                                                       19
AWS Conseils prescriptifs                                       Création de pipelines ML prêts pour la production sur AWS

Ressources supplémentaires
Guides et modèles associés

• Quantifier l'incertitude dans les systèmes de Deep Learning
• Migrez les charges de travail de génération, de formation et de déploiement ML vers Amazon
   SageMaker à l'aide deAWSOutils pour développeurs
• AWSSite Web de Conseils concernant les prescriptifs

AWSservices

• AWS Batch
• AWS CloudFormation
• GIA
• Amazon SageMaker
• AWS Step Functions

AWSRessources générales

• Documentation AWS
• AWSRéférence générale
• AWSglossaire

                                                                                                                      20
AWS Conseils prescriptifs                                     Création de pipelines ML prêts pour la production sur AWS

Historique du document
Le tableau suivant décrit les modifications importantes apportées à ce guide. Si vous souhaitez être
alerté des mises à jour à future, abonnez-vous àFlux RSS.

  Modification                     Description                         Date

  Première version                 —                                   29 janvier 2021

                                                                                                                    21
AWS Conseils prescriptifs                                         Création de pipelines ML prêts pour la production sur AWS

AWS Glossaire des directives prescriptives
Les termes suivants sont couramment utilisés dans les stratégies, les guides et les modèles fournis
par les directives AWS prescriptives. Pour suggérer des entrées, veuillez utiliser le lien Faire un
commentaire à la fin du glossaire.

Nombres
7R

    Sept politiques de migration courantes pour transférer des applications vers le cloud. Ces
    politiques s'appuient sur les 5 R identifiés par Gartner en 2011 et sont les suivantes :
    • Refactorisation/réarchitecture : transférez une application et modifiez son architecture en tirant
        pleinement parti des fonctionnalités natives cloud pour améliorer l'agilité, les performances et la
        capacité de mise à l'échelle. Cela implique généralement le transfert du système d'exploitation
        et de la base de données. Exemple : migrez votre base de données Oracle sur site vers
        Amazon Aurora Édition compatible avec PostgreSQL.
    • Replateformer (déplacer et remodeler) : transférez une application vers le cloud et introduisez
      un certain niveau d'optimisation pour tirer parti des fonctionnalités du cloud. Exemple : migrez
      votre base de données Oracle sur site vers Amazon Relational Database Service (Amazon
      RDS) pour Oracle in the Cloud. AWS
    • Racheter (rachat) : optez pour un autre produit, généralement en passant d'une licence
      traditionnelle à un modèle SaaS. Exemple : migrez votre système de gestion de la relation client
      (CRM) vers Salesforce.com.
    • Réhéberger (lift and shift) : transférez une application vers le cloud sans apporter de
      modifications pour tirer parti des fonctionnalités du cloud. Exemple : migrez votre base de
      données Oracle sur site vers Oracle sur une instance EC2 dans le AWS cloud.
    • Relocaliser (lift and shift au niveau de l'hyperviseur) : transférez l'infrastructure vers le cloud
      sans acheter de nouveau matériel, réécrire des applications ou modifier vos opérations
      existantes. Ce scénario de migration est spécifique à VMware Cloud on AWS, qui prend en
      charge la compatibilité des machines virtuelles (VM) et la portabilité de la charge de travail entre
      votre environnement sur site et AWS. Vous pouvez utiliser les technologies VMware Cloud
      Foundation à partir de vos centres de données sur site lorsque vous migrez votre infrastructure
      vers VMware Cloud on AWS. Exemple : déplacez l'hyperviseur hébergeant votre base de
      données Oracle vers VMware Cloud on. AWS

#                                                                                                                       22
AWS Conseils prescriptifs                                          Création de pipelines ML prêts pour la production sur AWS

    • Retenir : conservez les applications dans votre environnement source. Il peut s'agir
        d'applications nécessitant une refactorisation majeure, que vous souhaitez retarder, et
        d'applications existantes que vous souhaitez retenir, car rien ne justifie leur migration sur le plan
        commercial.
    • Retirer : mettez hors service ou supprimez les applications dont vous n'avez plus besoin dans
      votre environnement source.

A
ABAC

    Voir contrôle d'accès basé sur les attributs.
services abstraits

    Consultez la section Services gérés.
ACIDE

    Voir atomicité, consistance, isolation, durabilité.
migration active-active

    Méthode de migration de base de données dans laquelle la synchronisation des bases de
    données source et cible est maintenue (à l'aide d'un outil de réplication bidirectionnelle ou
    d'opérations d'écriture double), tandis que les deux bases de données gèrent les transactions
    provenant de la connexion d'applications pendant la migration. Cette méthode prend en charge la
    migration par petits lots contrôlés au lieu d'exiger un basculement ponctuel. Elle est plus flexible
    mais demande plus de travail qu'une migration active-passive.
migration active-passive

    Méthode de migration de base de données dans laquelle la synchronisation des bases de
    données source et cible est maintenue, mais seule la base de données source gère les
    transactions provenant de la connexion d'applications pendant que les données sont répliquées
    vers la base de données cible. La base de données cible n'accepte aucune transaction pendant la
    migration.
fonction d'agrégation

    Fonction SQL qui agit sur un groupe de lignes et calcule une valeur de retour unique pour le
    groupe. Des exemples de fonctions d'agrégation incluent SUM etMAX.

A                                                                                                                        23
Vous pouvez aussi lire