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.
Rationalisez les flux de travail d'apprentissage automatique, du développement local aux expériences évolutives en utilisant l' SageMaker IA et Hydra
Créée par David Sauerwein (AWS), Julian Ferdinand Grueber (AWS) et Marco Geiger (AWS)
Récapitulatif
Ce modèle fournit une approche unifiée pour configurer et exécuter des algorithmes d'apprentissage automatique (ML), des tests locaux à la production sur Amazon SageMaker AI. Les algorithmes ML sont au centre de ce modèle, mais son approche s'étend à l'ingénierie des fonctionnalités, à l'inférence et aux pipelines ML complets. Ce modèle illustre la transition entre le développement de scripts locaux et les tâches de formation à l' SageMaker IA à travers un exemple de cas d'utilisation.
Un flux de travail ML typique consiste à développer et tester des solutions sur une machine locale, à exécuter des expériences à grande échelle (par exemple, avec différents paramètres) dans le cloud et à déployer la solution approuvée dans le cloud. Ensuite, la solution déployée doit être surveillée et maintenue. Sans approche unifiée de ce flux de travail, les développeurs doivent souvent refactoriser leur code à chaque étape. Si la solution dépend d'un grand nombre de paramètres susceptibles de changer à n'importe quel stade de ce flux de travail, il peut devenir de plus en plus difficile de rester organisé et cohérent.
Ce modèle répond à ces défis. Tout d'abord, il élimine le besoin de refactoriser le code entre les environnements en fournissant un flux de travail unifié qui reste cohérent, qu'il s'exécute sur des machines locales, dans des conteneurs ou sur SageMaker l'IA. Ensuite, il simplifie la gestion des paramètres grâce au système de configuration d'Hydra, où les paramètres sont définis dans des fichiers de configuration distincts qui peuvent être facilement modifiés et combinés, avec enregistrement automatique de la configuration de chaque exécution. Pour plus de détails sur la manière dont ce modèle permet de relever ces défis, voir Informations supplémentaires.
Conditions préalables et limitations
Prérequis
Un actif Compte AWS
Un rôle d'utilisateur AWS Identity and Access Management (IAM) pour le déploiement et le démarrage des tâches de formation à l' SageMaker IA
AWS Command Line Interface (AWS CLI) version 2.0 ou ultérieure installée et configurée
Poetry
version 1.8 ou ultérieure, mais antérieure à 2.0, installée Version 3.10.x
de Python
Limites
Le code cible actuellement uniquement les postes de formation SageMaker liés à l'IA. Il est simple de l'étendre aux tâches de traitement et à l'ensemble des pipelines d' SageMaker IA.
Pour une configuration d' SageMaker IA entièrement productive, des détails supplémentaires doivent être mis en place. Il peut s'agir de clés custom AWS Key Management Service (AWS KMS) pour le calcul et le stockage, ou de configurations réseau. Vous pouvez également configurer ces options supplémentaires en utilisant Hydra dans un sous-dossier dédié du
config
dossier.Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section AWS Services par région
. Pour des points de terminaison spécifiques, consultez Points de terminaison de service et quotas, puis choisissez le lien correspondant au service.
Architecture
Le schéma suivant décrit l'architecture de la solution.

Le schéma suivant illustre le flux de travail suivant :
Le data scientist peut itérer l'algorithme à petite échelle dans un environnement local, ajuster les paramètres et tester rapidement le script d'apprentissage sans avoir besoin de Docker ou SageMaker d'IA. (Pour plus de détails, consultez la tâche « Exécuter localement pour des tests rapides » dans Epics.)
Une fois satisfait de l'algorithme, le data scientist crée et envoie l'image Docker vers le référentiel Amazon Elastic Container Registry (Amazon ECR) nommé.
hydra-sm-artifact
(Pour plus de détails, consultez « Exécuter des flux de travail sur l' SageMaker IA » dans Epics.)Le data scientist lance des tâches d'entraînement basées sur l' SageMaker IA ou des tâches d'optimisation des hyperparamètres (HPO) à l'aide de scripts Python. Pour les tâches de formation régulières, la configuration ajustée est écrite dans le bucket Amazon Simple Storage Service (Amazon S3) nommé.
hydra-sample-config
Pour les tâches HPO, le jeu de configuration par défaut situé dans leconfig
dossier est appliqué.La tâche de formation basée sur l' SageMaker IA extrait l'image Docker, lit les données d'entrée depuis le compartiment
hydra-sample-data
Amazon S3 et récupère la configuration depuis le compartiment Amazon S3hydra-sample-config
ou utilise la configuration par défaut. Après l'entraînement, la tâche enregistre les données de sortie dans le compartiment Amazon S3hydra-sample-data
.
Automatisation et mise à l'échelle
Pour une formation, un recyclage ou une inférence automatisés, vous pouvez intégrer le AWS CLI code à des services tels que AWS LambdaAWS CodePipeline, ou Amazon. EventBridge
La mise à l'échelle peut être réalisée en modifiant les configurations relatives à la taille des instances ou en ajoutant des configurations pour la formation distribuée.
Outils
Services AWS
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie à travers Comptes AWS et Régions AWS.
AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande. Pour ce modèle, le AWS CLI est utile à la fois pour la configuration initiale des ressources et pour les tests.
Amazon Elastic Container Registry (Amazon ECR) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
Amazon SageMaker AI est un service géré d'apprentissage automatique (ML) 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. SageMaker AI Training est un service de ML entièrement géré au sein de l' SageMaker IA qui permet la formation de modèles de ML à grande échelle. L'outil peut gérer efficacement les exigences informatiques des modèles de formation, en utilisant l'évolutivité intégrée et l'intégration avec d'autres modèles. Services AWS SageMaker AI Training prend également en charge des algorithmes et des conteneurs personnalisés, ce qui le rend flexible pour un large éventail de flux de travail ML.
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.
Autres outils
Docker
est un ensemble de produits PaaS (plate-forme en tant que service) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des conteneurs. Il a été utilisé dans ce modèle pour garantir des environnements cohérents à différentes étapes, du développement au déploiement, ainsi que pour garantir la fiabilité des dépendances et du code. La conteneurisation de Docker a facilité le dimensionnement et le contrôle des versions dans l'ensemble du flux de travail. Hydra est un
outil de gestion de configuration qui offre la flexibilité nécessaire pour gérer plusieurs configurations et une gestion dynamique des ressources. Il joue un rôle essentiel dans la gestion des configurations d'environnement, permettant un déploiement fluide dans différents environnements. Pour plus de détails sur Hydra, voir Informations supplémentaires. Python
est un langage de programmation informatique polyvalent. Python a été utilisé pour écrire le code ML et le flux de travail de déploiement. Poetry
est un outil de gestion des dépendances et d'empaquetage en Python.
Référentiel de code
Le code de ce modèle est disponible dans le dépôt GitHub configuring-sagemaker-training-jobs-with-hydra
Bonnes pratiques
Choisissez un rôle IAM pour le déploiement et le démarrage des tâches de formation à l' SageMaker IA qui respecte le principe du moindre privilège et accorde les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections Accorder le moindre privilège et Bonnes pratiques en matière de sécurité dans la documentation IAM.
Utilisez des informations d'identification temporaires pour accéder au rôle IAM dans le terminal.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez et activez l'environnement virtuel. | Pour créer et activer l'environnement virtuel, exécutez les commandes suivantes à la racine du référentiel :
| AWS général |
Déployez l'infrastructure. | Pour déployer l'infrastructure à l'aide de CloudFormation, exécutez la commande suivante :
| AWS général, DevOps ingénieur |
Téléchargez les exemples de données. | Pour télécharger les données d'entrée d'openml
| AWS général |
Exécutez localement pour des tests rapides. | Pour exécuter le code d'entraînement localement à des fins de test, exécutez la commande suivante :
Les journaux de toutes les exécutions sont stockés par heure d'exécution dans un dossier appelé Vous pouvez également effectuer plusieurs entraînements en parallèle, avec différents paramètres, en utilisant cette | Spécialiste des données |
Tâche | Description | Compétences requises |
---|---|---|
Définissez les variables d'environnement. | Pour exécuter votre tâche sur l' SageMaker IA, définissez les variables d'environnement suivantes, en indiquant votre identifiant Région AWS et votre Compte AWS identifiant :
| AWS général |
Créez et publiez une image Docker. | Pour créer l'image Docker et la transférer vers le référentiel Amazon ECR, exécutez la commande suivante :
Cette tâche suppose que vous disposez d'informations d'identification valides dans votre environnement. L'image Docker est envoyée vers le référentiel Amazon ECR spécifié dans la variable d'environnement de la tâche précédente et est utilisée pour activer le conteneur SageMaker AI dans lequel la tâche de formation sera exécutée. | Ingénieur ML, General AWS |
Copiez les données d'entrée sur Amazon S3. | Le poste de formation à l' SageMaker IA doit récupérer les données d'entrée. Pour copier les données d'entrée dans le compartiment Amazon S3 pour les données, exécutez la commande suivante :
| Ingénieur de données, General AWS |
Soumettez des offres de formation en SageMaker IA. | Pour simplifier l'exécution de vos scripts, spécifiez les paramètres de configuration par défaut dans le
| AWS général, ingénieur ML, scientifique des données |
Exécutez le réglage des hyperparamètres de l' SageMaker IA. | L'exécution du réglage des hyperparamètres de l' SageMaker IA est similaire à la soumission d'une tâche de formation SageMaker AII. Cependant, le script d'exécution diffère sur certains points importants, comme vous pouvez le voir dans le fichier start_sagemaker_hpo_job.py Pour démarrer la tâche d'optimisation des hyperparamètres (HPO), exécutez les commandes suivantes :
| Spécialiste des données |
Résolution des problèmes
Problème | Solution |
---|---|
Jeton expiré | Exportez de nouvelles AWS informations d'identification. |
Absence d'autorisations IAM | Assurez-vous d'exporter les informations d'identification d'un rôle IAM disposant de toutes les autorisations IAM requises pour déployer le CloudFormation modèle et démarrer les tâches de formation à l' SageMaker IA. |
Ressources connexes
Informations supplémentaires
Ce modèle permet de relever les défis suivants :
Cohérence entre le développement local et le déploiement à grande échelle : grâce à ce modèle, les développeurs peuvent utiliser le même flux de travail, qu'ils utilisent des scripts Python locaux, qu'ils exécutent des conteneurs Docker locaux, qu'ils mènent des expériences de grande envergure sur l' SageMaker IA ou qu'ils déploient en production sur SageMaker l'IA. Cette cohérence est importante pour les raisons suivantes :
Itération plus rapide — Cela permet une expérimentation locale rapide sans nécessiter d'ajustements majeurs lors de la mise à l'échelle.
Pas de refactorisation : la transition vers des expériences de plus grande envergure sur l' SageMaker IA se fait sans difficulté et ne nécessite aucune refonte de la configuration existante.
Amélioration continue — Le développement de nouvelles fonctionnalités et l'amélioration continue de l'algorithme sont simples car le code reste le même dans tous les environnements.
Gestion de la configuration : ce modèle utilise Hydra, un
Les paramètres sont définis dans des fichiers de configuration, distincts du code.
Les différents ensembles de paramètres peuvent être facilement échangés ou combinés.
Le suivi des expériences est simplifié car la configuration de chaque exécution est enregistrée automatiquement.
Les expériences dans le cloud peuvent utiliser la même structure de configuration que les exécutions locales, ce qui garantit la cohérence.
Avec Hydra, vous pouvez gérer efficacement la configuration en activant les fonctionnalités suivantes :
Divisez les configurations : divisez les configurations de votre projet en éléments plus petits et faciles à gérer qui peuvent être modifiés indépendamment. Cette approche facilite la gestion de projets complexes.
Ajustez facilement les paramètres par défaut : modifiez rapidement vos configurations de base afin de tester plus facilement de nouvelles idées.
Alignez les entrées CLI et les fichiers de configuration : combinez facilement les entrées de ligne de commande avec vos fichiers de configuration. Cette approche réduit l'encombrement et la confusion, ce qui rend votre projet plus facile à gérer au fil du temps.