Pipelines Amazon SageMaker est un service AWS entièrement géré pour créer et orchestrer des flux de travail d'apprentissage automatique (ML). SageMaker Pipelines offre aux développeurs d'applications ML la possibilité d'orchestrer différentes étapes du flux de travail ML, notamment le chargement et la transformation des données, la formation, le réglage et le déploiement. Vous pouvez utiliser SageMaker Pipelines pour orchestrer des tâches ML dans SageMaker, et ses intégration avec l'écosystème AWS plus large vous permet également d'utiliser des ressources comme AWS Lambda fonctions, Amazon DME des emplois, et plus encore. Cela vous permet de créer un pipeline personnalisé et reproductible pour des exigences spécifiques dans vos flux de travail ML.
Dans cet article, nous proposons quelques bonnes pratiques pour maximiser la valeur de SageMaker Pipelines et rendre l'expérience de développement transparente. Nous discutons également de certains scénarios et modèles de conception courants lors de la création de pipelines SageMaker et fournissons des exemples pour les résoudre.
Meilleures pratiques pour les pipelines SageMaker
Dans cette section, nous discutons de certaines bonnes pratiques qui peuvent être suivies lors de la conception de flux de travail à l'aide de SageMaker Pipelines. Leur adoption peut améliorer le processus de développement et rationaliser la gestion opérationnelle de SageMaker Pipelines.
Utiliser Pipeline Session pour un chargement paresseux du pipeline
Séance de pipeline permet l'initialisation paresseuse des ressources du pipeline (les tâches ne sont démarrées qu'au moment de l'exécution du pipeline). Le PipelineSession
le contexte hérite de Séance SageMaker et implémente des méthodes pratiques pour interagir avec d'autres entités et ressources SageMaker, telles que des tâches de formation, des points de terminaison, des ensembles de données d'entrée dans Service de stockage simple Amazon (Amazon S3), etc. Lors de la définition des pipelines SageMaker, vous devez utiliser PipelineSession
au cours de la session SageMaker régulière :
Exécutez des pipelines en mode local pour des itérations rentables et rapides pendant le développement
Vous pouvez exécuter un pipeline en mode local utilisant l' LocalPipelineSession
contexte. Dans ce mode, le pipeline et les tâches sont exécutés localement en utilisant les ressources de la machine locale, au lieu des ressources gérées par SageMaker. Le mode local offre un moyen rentable d’itérer sur le code du pipeline avec un sous-ensemble de données plus petit. Une fois le pipeline testé localement, il peut être mis à l'échelle pour s'exécuter à l'aide du Session Pipeline contexte
Gérer un pipeline SageMaker via le contrôle de version
La gestion des versions des artefacts et des définitions de pipeline est une exigence courante dans le cycle de vie de développement. Vous pouvez créer plusieurs versions du pipeline en nommant les objets du pipeline avec un préfixe ou un suffixe unique, le plus courant étant un horodatage, comme indiqué dans le code suivant :
Organisez et suivez les exécutions du pipeline SageMaker en intégrant SageMaker Experiments
SageMaker Pipelines peut être facilement intégré à Expériences SageMaker pour organiser et suivi des exécutions de pipelines. Ceci est réalisé en spécifiant PipelineExperimentConfig au moment de créer un objet pipeline. Avec cet objet de configuration, vous pouvez spécifier un nom d'expérience et un nom d'essai. Les détails d'exécution d'un pipeline SageMaker sont organisés selon l'expérience et l'essai spécifiés. Si vous ne spécifiez pas explicitement un nom d'expérience, un nom de pipeline est utilisé pour le nom de l'expérience. De même, si vous ne spécifiez pas explicitement un nom d'essai, un ID d'exécution de pipeline est utilisé pour l'essai ou le nom du groupe d'exécution. Voir le code suivant :
Exécutez en toute sécurité des pipelines SageMaker dans un VPC privé
Pour sécuriser les charges de travail ML, il est recommandé de déployer les tâches orchestrées par SageMaker Pipelines dans une configuration réseau sécurisée au sein d'un VPC privé, de sous-réseaux privés et de groupes de sécurité. Pour garantir et imposer l'utilisation de cet environnement sécurisé, vous pouvez mettre en œuvre les éléments suivants Gestion des identités et des accès AWS (IAM) pour le Rôle d'exécution de SageMaker (c'est le rôle assumé par le pipeline lors de son exécution). Vous pouvez également ajouter la stratégie pour exécuter les tâches orchestrées par SageMaker Pipelines en mode d'isolation réseau.
Pour un exemple de mise en œuvre d'un pipeline avec ces contrôles de sécurité en place, reportez-vous à Orchestration des tâches, de l'enregistrement des modèles et du déploiement continu avec Amazon SageMaker dans un environnement sécurisé.
Surveiller le coût des exécutions de pipelines à l'aide de balises
L'utilisation des pipelines SageMaker en elle-même est gratuite ; vous payez pour les ressources de calcul et de stockage que vous activez dans le cadre des étapes individuelles du pipeline telles que le traitement, la formation et l'inférence par lots. Pour regrouper les coûts par exécution de pipeline, vous pouvez inclure étiquettes à chaque étape du pipeline qui crée une ressource. Ces balises peuvent ensuite être référencées dans l'explorateur de coûts pour filtrer et agréger le coût total d'exécution du pipeline, comme le montre l'exemple suivant :
Depuis l'explorateur de coûts, vous pouvez désormais obtenir le coût filtré par la balise :
Modèles de conception pour certains scénarios courants
Dans cette section, nous discutons des modèles de conception pour certains cas d'utilisation courants avec SageMaker Pipelines.
Exécutez une fonction Python légère à l'aide d'une étape Lambda
Les fonctions Python sont omniprésentes dans les workflows ML ; ils sont utilisés dans le prétraitement, le post-traitement, l'évaluation, etc. Lambda est un service de calcul sans serveur qui vous permet d'exécuter du code sans provisionner ni gérer de serveurs. Avec Lambda, vous pouvez exécuter du code dans votre langage préféré qui inclut Python. Vous pouvez l'utiliser pour exécuter du code Python personnalisé dans le cadre de votre pipeline. Une étape Lambda vous permet d'exécuter des fonctions Lambda dans le cadre de votre pipeline SageMaker. Commencez par le code suivant :
Créez la fonction Lambda à l'aide de Assistant Lambda du SDK SageMaker Python:
Appelez l'étape Lambda :
Transmettre des données entre les étapes
Les données d'entrée pour une étape du pipeline sont soit un emplacement de données accessible, soit des données générées par l'une des étapes précédentes du pipeline. Vous pouvez fournir ces informations comme ProcessingInput
paramètre. Examinons quelques scénarios sur la façon dont vous pouvez utiliser ProcessingInput.
Scénario 1 : transmettre la sortie (types de données primitifs) d'une étape Lambda à une étape de traitement
Les types de données primitifs font référence aux types de données scalaires tels que chaîne, entier, booléen et flottant.
L'extrait de code suivant définit une fonction Lambda qui renvoie un dictionnaire de variables avec des types de données primitifs. Le code de votre fonction Lambda renverra un JSON de paires clé-valeur lorsqu'il sera invoqué à partir de l'étape Lambda dans le pipeline SageMaker.
Dans la définition du pipeline, vous pouvez ensuite définir les paramètres du pipeline SageMaker qui sont d'un type de données spécifique et définir la variable sur la sortie de la fonction Lambda :
Scénario 2 : transmettre la sortie (types de données non primitifs) d'une étape Lambda à une étape de traitement
Les types de données non primitifs font référence à des types de données non scalaires (par exemple, NamedTuple
). Vous pouvez avoir un scénario dans lequel vous devez renvoyer un type de données non primitif à partir d'une fonction Lambda. Pour ce faire, vous devez convertir votre type de données non primitif en chaîne :
Vous pouvez ensuite utiliser cette chaîne comme entrée pour une étape ultérieure du pipeline. Pour utiliser le tuple nommé dans le code, utilisez eval()
pour analyser l'expression Python dans la chaîne :
Scénario 3 : transmettre la sortie d'une étape via un fichier de propriétés
Vous pouvez également stocker le résultat d'une étape de traitement dans un fichier JSON de propriété pour la consommation en aval dans un ConditionStep
ou un autre ProcessingStep
. Vous pouvez utiliser le Fonction JSONGet pour interroger un fichier de propriété. Voir le code suivant:
Supposons que le contenu du fichier de propriétés soit le suivant :
Dans ce cas, il peut être interrogé pour une valeur spécifique et utilisé dans les étapes suivantes à l'aide de la fonction JsonGet :
Paramétrer une variable dans la définition du pipeline
Paramétrer les variables afin qu'elles puissent être utilisées au moment de l'exécution est souvent souhaitable, par exemple pour construire un URI S3. Vous pouvez paramétrer une chaîne de telle sorte qu'elle soit évaluée au moment de l'exécution à l'aide de l'option Join
fonction. L'extrait de code suivant montre comment définir la variable à l'aide du Join
fonction et utilisez-la pour définir l'emplacement de sortie dans une étape de traitement :
Exécuter du code parallèle sur un itérable
Certains workflows ML exécutent du code en boucles for parallèles sur un ensemble statique d'éléments (un itérable). Il peut s'agir soit du même code exécuté sur des données différentes, soit d'un morceau de code différent qui doit être exécuté pour chaque élément. Par exemple, si vous avez un très grand nombre de lignes dans un fichier et que vous souhaitez accélérer le temps de traitement, vous pouvez vous appuyer sur l'ancien modèle. Si vous souhaitez effectuer différentes transformations sur des sous-groupes spécifiques des données, vous devrez peut-être exécuter un morceau de code différent pour chaque sous-groupe des données. Les deux scénarios suivants illustrent comment concevoir des pipelines SageMaker à cet effet.
Scénario 1 : Implémenter une logique de traitement sur différentes portions de données
Vous pouvez exécuter une tâche de traitement avec plusieurs instances (en définissant instance_count
à une valeur supérieure à 1). Cela distribue les données d'entrée d'Amazon S3 dans toutes les instances de traitement. Vous pouvez ensuite utiliser un script (process.py) pour travailler sur une partie spécifique des données en fonction du numéro d'instance et de l'élément correspondant dans la liste des éléments. La logique de programmation dans process.py peut être écrite de telle sorte qu'un module ou un morceau de code différent soit exécuté en fonction de la liste des éléments qu'il traite. L'exemple suivant définit un processeur qui peut être utilisé dans un ProcessingStep :
Scénario 2 : Exécuter une séquence d'étapes
Lorsque vous disposez d'une séquence d'étapes qui doivent être exécutées en parallèle, vous pouvez définir chaque séquence comme un pipeline SageMaker indépendant. L'exécution de ces pipelines SageMaker peut ensuite être déclenchée à partir d'une fonction Lambda faisant partie d'un LambdaStep
dans le pipeline parent. Le morceau de code suivant illustre le scénario dans lequel deux exécutions de pipeline SageMaker différentes sont déclenchées :
Conclusion
Dans cet article, nous avons discuté de quelques bonnes pratiques pour une utilisation et une maintenance efficaces des pipelines SageMaker. Nous avons également fourni certains modèles que vous pouvez adopter lors de la conception de flux de travail avec SageMaker Pipelines, que vous créiez de nouveaux pipelines ou migrez des flux de travail ML à partir d'autres outils d'orchestration. Pour démarrer avec l'orchestration de flux de travail SageMaker Pipelines for ML, reportez-vous au exemples de code sur GitHub et de Pipelines de création de modèles Amazon SageMaker.
À propos des auteurs
Pinak Panigrahi travaille avec les clients pour créer des solutions basées sur l'apprentissage automatique afin de résoudre les problèmes commerciaux stratégiques sur AWS. Lorsqu’il n’est pas occupé par l’apprentissage automatique, on peut le trouver en train de faire une randonnée, de lire un livre ou de regarder du sport.
Meenakshisundaram Thandavarayan travaille pour AWS en tant que spécialiste IA/ML. Il est passionné par la conception, la création et la promotion d'expériences de données et d'analyse centrées sur l'humain. Meena se concentre sur le développement de systèmes durables qui offrent des avantages compétitifs mesurables aux clients stratégiques d'AWS. Meena est un connecteur, un penseur du design et s'efforce de conduire les entreprises vers de nouvelles façons de travailler grâce à l'innovation, l'incubation et la démocratisation.
- 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. Automobile / VE, Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- GraphiquePrime. Élevez votre jeu de trading avec ChartPrime. Accéder ici.
- Décalages de bloc. Modernisation de la propriété des compensations environnementales. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- capacité
- accès
- accessible
- atteint
- Action
- ajouter
- adresser
- adopter
- L'adoption d'
- avantages
- Après
- agrégat
- Tous
- permet
- aussi
- Amazon
- Amazon Sage Maker
- Pipelines Amazon SageMaker
- Amazon Web Services
- an
- analytique
- et de
- Une autre
- api
- Application
- approprié
- SONT
- AS
- assumer
- assumé
- At
- création
- disponibles
- AWS
- basé
- BE
- va
- LES MEILLEURS
- les meilleures pratiques
- jusqu'à XNUMX fois
- livre
- construire
- Développement
- la performance des entreprises
- by
- CAN
- maisons
- cas
- certaines
- client
- code
- collections
- Commun
- compétitif
- calcul
- condition
- configuration
- construire
- consommation
- contenu
- contexte
- continu
- contrôles
- Pratique
- convertir
- Correspondant
- Prix
- rentable
- Costs
- engendrent
- crée des
- La création
- Customiser
- Clients
- sont adaptées
- données
- ensembles de données
- Déchiffrer
- Vous permet de définir
- Définit
- définir
- définition
- définitions
- livrer
- démocratisation
- Selon
- déployer
- déploiement
- Conception
- modèles de conception
- conception
- détails
- mobiles
- développement
- Développement
- différent
- dimensions
- discuter
- discuté
- do
- Ne pas
- motivation
- entraîné
- pendant
- chacun
- même
- effet
- efficace
- non plus
- élément
- permet
- fin
- imposer
- assurer
- entités
- Environment
- évalué
- évaluation
- événement
- Chaque
- exemple
- exemples
- exécution
- d'experience
- Expériences
- expérience
- explorateur
- expression
- extrait
- few
- Déposez votre dernière attestation
- une fonction filtre
- flotteur
- suivi
- Abonnement
- Pour
- Ancien
- trouvé
- gratuitement ici
- De
- d’étiquettes électroniques entièrement
- fonction
- fonctions
- généré
- obtenez
- plus grand
- Réservation de groupe
- Groupes
- Vous avez
- he
- Promenades
- Comment
- How To
- HTML
- http
- HTTPS
- ID
- Identite
- if
- illustre
- Mettre en oeuvre
- la mise en oeuvre
- met en oeuvre
- importer
- améliorer
- in
- comprendre
- inclut
- Y compris
- INCUBATION
- indépendant
- individuel
- d'information
- Innovation
- contribution
- instance
- plutôt ;
- des services
- Intégration
- interagissant
- développement
- invoqué
- seul
- IT
- articles
- itérations
- SES
- lui-même
- Emploi
- Emplois
- json
- ACTIVITES
- langue
- gros
- plus importantes
- apprentissage
- Allons-y
- vos produits
- léger
- comme
- Liste
- chargement
- locales
- localement
- emplacement
- logique
- Style
- click
- machine learning
- facile
- a prendre une
- gérés
- gestion
- les gérer
- Maximisez
- Mai..
- méthodes
- pourrait
- migrer
- ML
- Mode
- modèle
- Module
- mensuel
- PLUS
- (en fait, presque toutes)
- plusieurs
- prénom
- Nommé
- nommage
- Besoin
- Besoins
- réseau et
- Nouveauté
- maintenant
- nombre
- objet
- objets
- obtenir
- of
- Offres Speciales
- souvent
- on
- ONE
- opérationnel
- or
- orchestrée
- orchestration
- Organisé
- l'organisation
- Autre
- sortie
- plus de
- paires
- Parallèle
- paramètre
- paramètres
- partie
- pass
- passion
- Patron de Couture
- motifs
- Payer
- /
- Effectuer
- pièce
- pipeline
- Place
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politique
- partieInvestir dans des appareils économes en énergie et passer à l'éclairage
- Post
- pratique
- pratiques
- préféré
- précédent
- primitif
- Privé
- d'ouvrabilité
- processus
- les process
- traitement
- Processeur
- Programmation
- promouvoir
- propriétés
- propriété
- fournir
- à condition de
- fournit
- but
- Python
- Rapide
- en cours
- reportez-vous
- Inscription
- Standard
- compter
- exigence
- Exigences
- ressource
- Resources
- réponse
- retourner
- retour
- Retours
- Rôle
- Courir
- fonctionne
- s
- sagemaker
- Pipelines SageMaker
- même
- scénario
- scénarios
- scénario
- fluide
- Section
- sécurisé
- sécurité
- sur le lien
- Séquence
- Sans serveur
- Serveurs
- service
- Services
- Session
- set
- mise
- devrait
- montré
- Spectacles
- De même
- étapes
- faibles
- Fragment
- So
- Solutions
- RÉSOUDRE
- quelques
- spécialiste
- groupe de neurones
- spécifié
- vitesse
- Spin
- Sports
- Commencer
- j'ai commencé
- Déclaration
- étapes
- Étapes
- storage
- Boutique
- Stratégique
- entreprise stratégique
- rationaliser
- Chaîne
- s'efforce
- structure
- sous-réseaux
- ultérieur
- tel
- durable
- Système
- TAG
- prise
- examiné
- que
- qui
- La
- Les
- puis
- Là.
- Ces
- l'ont
- penseur
- this
- Avec
- fiable
- horodatage
- à
- les outils
- Total
- suivre
- Train
- Formation
- De La Carrosserie
- transformations
- procès
- déclencher
- déclenché
- oui
- deux
- type
- types
- sous
- expérience unique et authentique
- jusqu'à
- Utilisation
- utilisé
- d'utiliser
- Usages
- en utilisant
- Plus-value
- Valeurs
- variable
- version
- versions
- très
- souhaitez
- personne(s) regarde(nt) cette fiche produit
- Façon..
- façons
- we
- web
- services Web
- ont été
- quand
- que
- tout en
- sera
- comprenant
- dans les
- sans
- activités principales
- workflow
- workflows
- de travail
- vos contrats
- world
- code écrit
- Vous n'avez
- Votre
- zéphyrnet