Alors que l'apprentissage automatique (ML) devient de plus en plus répandu dans un large éventail d'industries, les organisations constatent le besoin de former et de servir un grand nombre de modèles ML pour répondre aux divers besoins de leurs clients. Pour les fournisseurs de logiciels en tant que service (SaaS) en particulier, la capacité de former et de servir des milliers de modèles de manière efficace et rentable est cruciale pour rester compétitif sur un marché en évolution rapide.
La formation et le service de milliers de modèles nécessitent une infrastructure robuste et évolutive, où Amazon Sage Maker peut aider. SageMaker est une plate-forme entièrement gérée qui permet aux développeurs et aux scientifiques des données de créer, former et déployer rapidement des modèles ML, tout en offrant les avantages économiques de l'utilisation de l'infrastructure AWS Cloud.
Dans cet article, nous explorons comment vous pouvez utiliser les fonctionnalités de SageMaker, y compris Traitement d'Amazon SageMaker, les tâches de formation SageMaker et les points de terminaison multi-modèles (MME) SageMaker, pour former et servir des milliers de modèles de manière rentable. Pour commencer avec la solution décrite, vous pouvez vous référer au cahier d'accompagnement sur GitHub.
Cas d'utilisation : prévision énergétique
Pour ce poste, nous assumons le rôle d'une entreprise ISV qui aide ses clients à devenir plus durables en suivant leur consommation d'énergie et en fournissant des prévisions. Notre entreprise compte 1,000 XNUMX clients qui souhaitent mieux comprendre leur consommation d'énergie et prendre des décisions éclairées sur la manière de réduire leur impact environnemental. Pour ce faire, nous utilisons un ensemble de données synthétiques et entraînons un modèle ML basé sur Prophète pour chaque client de faire des prévisions de consommation d'énergie. Avec SageMaker, nous pouvons former et servir efficacement ces 1,000 XNUMX modèles, en fournissant à nos clients des informations précises et exploitables sur leur consommation d'énergie.
Il y a trois fonctionnalités dans l'ensemble de données généré :
- customer_id – Il s'agit d'un identifiant entier pour chaque client, compris entre 0 et 999.
- horodatage – Il s'agit d'une valeur de date/heure qui indique l'heure à laquelle la consommation d'énergie a été mesurée. Les horodatages sont générés de manière aléatoire entre les dates de début et de fin spécifiées dans le code.
- consommation – Il s'agit d'une valeur flottante qui indique la consommation d'énergie, mesurée dans une unité arbitraire. Les valeurs de consommation sont générées aléatoirement entre 0 et 1,000 XNUMX avec une saisonnalité sinusoïdale.
Vue d'ensemble de la solution
Pour former et servir efficacement des milliers de modèles ML, nous pouvons utiliser les fonctionnalités SageMaker suivantes :
- Traitement SageMaker – SageMaker Processing est un service de préparation de données entièrement géré qui vous permet d'effectuer des tâches de traitement de données et d'évaluation de modèle sur vos données d'entrée. Vous pouvez utiliser SageMaker Processing pour transformer les données brutes dans le format nécessaire à la formation et à l'inférence, ainsi que pour exécuter des évaluations par lots et en ligne de vos modèles.
- Emplois de formation SageMaker – Vous pouvez utiliser les tâches de formation SageMaker pour former des modèles sur une variété d'algorithmes et de types de données d'entrée, et spécifier les ressources de calcul nécessaires à la formation.
- MME SageMaker – Les points de terminaison multimodèles vous permettent d'héberger plusieurs modèles sur un seul point de terminaison, ce qui facilite la diffusion de prédictions à partir de plusieurs modèles à l'aide d'une seule API. Les MME SageMaker peuvent économiser du temps et des ressources en réduisant le nombre de points de terminaison nécessaires pour servir les prédictions de plusieurs modèles. Les MME prennent en charge l'hébergement de modèles basés sur CPU et GPU. Notez que dans notre scénario, nous utilisons 1,000 XNUMX modèles, mais ce n'est pas une limitation du service lui-même.
Le diagramme suivant illustre l'architecture de la solution.
Le workflow comprend les étapes suivantes:
- Nous utilisons SageMaker Processing pour prétraiter les données et créer un seul fichier CSV par client et le stocker dans Service de stockage simple Amazon (Amazon S3).
- La tâche de formation SageMaker est configurée pour lire la sortie de la tâche de traitement SageMaker et la distribuer de manière circulaire aux instances de formation. Notez que cela peut également être réalisé avec Pipelines Amazon SageMaker.
- Les artefacts de modèle sont stockés dans Amazon S3 par la tâche de formation et sont servis directement à partir de SageMaker MME.
Adaptez la formation à des milliers de modèles
La mise à l'échelle de la formation de milliers de modèles est possible via le distribution
paramètre de la FormationEntrée classe dans le SDK SageMaker Python, qui vous permet de spécifier la manière dont les données sont distribuées sur plusieurs instances de formation pour une tâche de formation. Il existe trois options pour le distribution
paramètre: FullyReplicated
, ShardedByS3Key
et une ShardedByRecord
L’ ShardedByS3Key
L'option signifie que les données de formation sont partagées par clé d'objet S3, chaque instance de formation recevant un sous-ensemble unique de données, évitant ainsi la duplication. Une fois les données copiées par SageMaker dans les conteneurs de formation, nous pouvons lire la structure des dossiers et des fichiers pour former un modèle unique par fichier client. Voici un exemple d'extrait de code :
Chaque tâche de formation SageMaker stocke le modèle enregistré dans le /opt/ml/model
dossier du conteneur de formation avant de l'archiver dans un model.tar.gz
fichier, puis le télécharge sur Amazon S3 une fois la tâche de formation terminée. Les utilisateurs expérimentés peuvent également automatiser ce processus avec SageMaker Pipelines. Lors du stockage de plusieurs modèles via la même tâche de formation, SageMaker crée un seul model.tar.gz
fichier contenant tous les modèles entraînés. Cela signifierait alors que, pour servir le modèle, nous devrions d'abord décompresser l'archive. Pour éviter cela, nous utilisons les points de contrôle pour enregistrer l'état des modèles individuels. SageMaker fournit la fonctionnalité permettant de copier les points de contrôle créés pendant la tâche de formation vers Amazon S3. Ici, les points de contrôle doivent être enregistrés dans un emplacement prédéfini, la valeur par défaut étant /opt/ml/checkpoints
. Ces points de contrôle peuvent être utilisés pour reprendre la formation ultérieurement ou comme modèle à déployer sur un point de terminaison. Pour un résumé de haut niveau de la façon dont la plateforme de formation SageMaker gère les chemins de stockage pour les ensembles de données de formation, les artefacts de modèle, les points de contrôle et les sorties entre le stockage AWS Cloud et les tâches de formation dans SageMaker, reportez-vous à Dossiers de stockage de formation Amazon SageMaker pour les ensembles de données de formation, les points de contrôle, les artefacts de modèle et les sorties.
Le code suivant utilise un fictif model.save()
fonctionner à l'intérieur du train.py
script contenant la logique d'entraînement :
Adaptez l'inférence à des milliers de modèles avec les MME SageMaker
Les MME SageMaker vous permettent de servir plusieurs modèles en même temps en créant une configuration de point de terminaison qui inclut une liste de tous les modèles à servir, puis en créant un point de terminaison à l'aide de cette configuration de point de terminaison. Il n'est pas nécessaire de redéployer le point de terminaison chaque fois que vous ajoutez un nouveau modèle, car le point de terminaison servira automatiquement tous les modèles stockés dans les chemins S3 spécifiés. Ceci est réalisé avec Serveur multimodèle (MMS), un framework open source pour servir des modèles ML qui peuvent être installés dans des conteneurs pour fournir le frontal qui répond aux exigences des nouvelles API de conteneur MME. De plus, vous pouvez utiliser d'autres modèles de serveurs, notamment TorcheServe ainsi que Triton. MMS peut être installé dans votre conteneur personnalisé via le Boîte à outils d'inférence SageMaker. Pour en savoir plus sur la configuration de votre Dockerfile pour inclure MMS et l'utiliser pour servir vos modèles, reportez-vous à Créez votre propre conteneur pour les points de terminaison multimodèles SageMaker.
L'extrait de code suivant montre comment créer un MME à l'aide du SDK Python SageMaker :
Lorsque le MME est en direct, nous pouvons l'invoquer pour générer des prédictions. Les appels peuvent être effectués dans n'importe quel kit SDK AWS ainsi qu'avec le kit SDK Python SageMaker, comme indiqué dans l'extrait de code suivant :
Lors de l'appel d'un modèle, le modèle est initialement chargé à partir d'Amazon S3 sur l'instance, ce qui peut entraîner un démarrage à froid lors de l'appel d'un nouveau modèle. Les modèles fréquemment utilisés sont mis en cache dans la mémoire et sur le disque pour fournir une inférence à faible latence.
Conclusion
SageMaker est une plate-forme puissante et rentable pour former et servir des milliers de modèles ML. Ses fonctionnalités, notamment le traitement SageMaker, les tâches de formation et les MME, permettent aux organisations de former et de servir efficacement des milliers de modèles à grande échelle, tout en bénéficiant des avantages économiques de l'utilisation de l'infrastructure AWS Cloud. Pour en savoir plus sur l'utilisation de SageMaker pour former et servir des milliers de modèles, reportez-vous à Données de processus, Former un modèle avec Amazon SageMaker ainsi que Hébergez plusieurs modèles dans un conteneur derrière un point de terminaison.
À propos des auteurs
David Gallitelli est un architecte de solutions spécialisé pour l'IA/ML dans la région EMEA. Il est basé à Bruxelles et travaille en étroite collaboration avec des clients dans tout le Benelux. Il est développeur depuis qu'il est très jeune et a commencé à coder à l'âge de 7 ans. Il a commencé à apprendre l'IA/ML à l'université et en est tombé amoureux depuis.
Maurice de Groot est un architecte de solutions chez Amazon Web Services, basé à Amsterdam. Il aime travailler sur des sujets liés au machine learning et a une prédilection pour les startups. Dans ses temps libres, il aime skier et jouer au squash.
- 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.
- Décalages de bloc. Modernisation de la propriété des compensations environnementales. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/scale-training-and-inference-of-thousands-of-ml-models-with-amazon-sagemaker/
- :possède
- :est
- :ne pas
- :où
- 000
- Clients 000
- 1
- 10
- 100
- 12
- 15%
- 20
- 7
- a
- capacité
- A Propos
- Avec cette connaissance vient le pouvoir de prendre
- atteint
- à travers
- ajouter
- ajout
- avantages
- Après
- âge
- AI / ML
- algorithmes
- Tous
- permettre
- permet
- déjà
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- amsterdam
- an
- ainsi que
- tous
- api
- Apis
- architecture
- Archive
- SONT
- argument
- AS
- assumer
- At
- automatiser
- automatiquement
- éviter
- en évitant
- AWS
- basé
- BE
- car
- devenez
- devient
- était
- before
- derrière
- va
- bénéficier
- avantages.
- Améliorée
- jusqu'à XNUMX fois
- tous les deux
- Bruxelles
- construire
- mais
- by
- appel
- CAN
- maisons
- classe
- étroitement
- le cloud
- infrastructure de cloud
- stockage cloud
- code
- du froid
- Société
- compétitif
- achèvement
- calcul
- configuration
- configurée
- consommation
- Contenant
- Conteneurs
- rentable
- engendrent
- créée
- crée des
- La création
- crucial
- Customiser
- des clients
- Clients
- données
- Préparation des données
- informatique
- ensembles de données
- Dates
- décisions
- Réglage par défaut
- Vous permet de définir
- définition
- déployer
- décrit
- Développeur
- mobiles
- directement
- affiche
- distribuer
- distribué
- plusieurs
- do
- fait
- pendant
- chacun
- Easy
- efficacement
- EMEA
- permettre
- permet
- fin
- Endpoint
- énergie
- Consommation d'énergie
- environnementales
- évaluation
- évaluations
- Chaque
- évolution
- exemple
- explorez
- Déchu
- Mode
- Fonctionnalités:
- Déposez votre dernière attestation
- Fichiers
- trouver
- Prénom
- flotteur
- Abonnement
- Pour
- Pour les startups
- prévisions
- le format
- Framework
- fréquemment
- De
- avant
- L'extrémité avant
- d’étiquettes électroniques entièrement
- fonction
- générer
- généré
- obtenez
- GitHub
- he
- vous aider
- aide
- ici
- de haut niveau
- sa
- hôte
- hébergement
- Comment
- How To
- HTML
- http
- HTTPS
- identifiant
- illustre
- Impact
- importer
- in
- comprendre
- inclut
- Y compris
- de plus en plus
- indique
- individuel
- secteurs
- Actualités
- Infrastructure
- possible
- contribution
- entrées
- à l'intérieur
- idées.
- Installé
- instance
- développement
- IT
- SES
- lui-même
- Emploi
- Emplois
- jpg
- json
- ACTIVITES
- gros
- plus tard
- APPRENTISSAGE
- apprentissage
- aime
- limitation
- Liste
- le travail
- localement
- emplacement
- logique
- love
- click
- machine learning
- a prendre une
- FAIT DU
- gérés
- gère
- Marché
- signifier
- veux dire
- Découvrez
- Mémoire
- ML
- modèle
- numériques jumeaux (digital twin models)
- moment
- PLUS
- plusieurs
- prénom
- Besoin
- nécessaire
- Besoins
- Nouveauté
- aucune
- cahier
- nombre
- numéros
- objet
- of
- offrant
- on
- ONE
- en ligne
- open source
- Option
- Options
- or
- de commander
- organisations
- OS
- Autre
- nos
- Notre Entreprise
- ande
- sortie
- propre
- paramètre
- particulier
- pass
- chemin
- /
- Effectuer
- période
- image
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- possible
- Post
- power
- solide
- Prédictions
- Predictor
- préparation
- répandue
- processus
- traitement
- fournir
- fournisseurs
- fournit
- aportando
- Python
- vite.
- généré aléatoirement
- gamme
- allant
- rapidement
- raw
- Lire
- en temps réel
- recevoir
- réduire
- réduire
- région
- Exigences
- a besoin
- Resources
- résultat
- CV
- robuste
- Rôle
- Courir
- SaaS.
- sagemaker
- Pipelines SageMaker
- même
- Épargnez
- évolutive
- Escaliers intérieurs
- scénario
- scientifiques
- Sdk
- besoin
- Serveurs
- service
- Services
- service
- set
- fragmenté
- montré
- Spectacles
- étapes
- depuis
- unique
- Fragment
- Logiciels
- logiciel en tant que service
- sur mesure
- Solutions
- quelques
- spécialiste
- spécifié
- Commencer
- j'ai commencé
- Commencez
- Startups
- Région
- Étapes
- storage
- Boutique
- stockée
- STORES
- stockage
- structure
- RÉSUMÉ
- Support
- durable
- haute
- Target
- tâches
- qui
- La
- L'État
- leur
- puis
- Là.
- Ces
- this
- milliers
- trois
- tout au long de
- fiable
- à
- Les sujets
- Tracking
- Train
- qualifié
- Formation
- Transformer
- types
- comprendre
- expérience unique et authentique
- unité
- université
- sur
- Utilisation
- utilisé
- d'utiliser
- utilisateurs
- Usages
- en utilisant
- Plus-value
- Valeurs
- variété
- très
- via
- W
- souhaitez
- était
- Façon..
- we
- web
- services Web
- WELL
- quand
- qui
- tout en
- WHO
- large
- Large gamme
- sera
- comprenant
- dans les
- activités principales
- workflow
- vos contrats
- pourra
- Vous n'avez
- jeune
- Votre
- zéphyrnet