Le SDK Amazon SageMaker Python est une bibliothèque open source pour la formation et le déploiement de modèles d'apprentissage automatique (ML) sur Amazon Sage Maker. Les entreprises clientes dans des secteurs étroitement contrôlés tels que la santé et la finance ont mis en place des garde-corps de sécurité pour s'assurer que leurs données sont cryptées et que le trafic ne traverse pas Internet. Pour garantir que la formation SageMaker et le déploiement des modèles ML respectent ces garde-fous, il est courant de définir des restrictions au niveau du compte ou Organisations AWS niveau par le biais de politiques de contrôle des services et Gestion des identités et des accès AWS politiques (IAM) pour imposer l'utilisation de rôles IAM spécifiques, Cloud privé virtuel Amazon (Amazon VPC), et Service de gestion des clés AWS (AWS KMS). Dans de tels cas, les scientifiques des données doivent fournir manuellement ces paramètres à leur code de formation et de déploiement de modèle ML, en notant les sous-réseaux, les groupes de sécurité et les clés KMS. Il incombe donc aux scientifiques des données de se souvenir de spécifier ces configurations, d'exécuter leurs tâches avec succès et d'éviter d'obtenir des erreurs d'accès refusé.
À partir de la version 2.148.0 du SDK Python SageMaker, vous pouvez désormais configurer des valeurs par défaut pour des paramètres tels que les rôles IAM, les VPC et les clés KMS. Les administrateurs et les utilisateurs finaux peuvent initialiser les primitives d'infrastructure AWS avec les valeurs par défaut spécifiées dans un fichier de configuration au format YAML. Une fois configuré, le SDK Python hérite automatiquement de ces valeurs et les propage aux appels d'API SageMaker sous-jacents tels que CreateProcessingJob()
, CreateTrainingJob()
et une CreateEndpointConfig()
, sans qu'aucune action supplémentaire ne soit nécessaire. Le SDK prend également en charge plusieurs fichiers de configuration, permettant aux administrateurs de définir un fichier de configuration pour tous les utilisateurs, et les utilisateurs peuvent le remplacer via une configuration au niveau de l'utilisateur qui peut être stockée dans Service de stockage simple Amazon (Amazon S3), Système de fichiers Amazon Elastic (AmazonEFS) pour Amazon SageMakerStudio, ou le système de fichiers local de l'utilisateur.
Dans cet article, nous vous montrons comment créer et stocker le fichier de configuration par défaut dans Studio et utiliser la fonctionnalité par défaut du SDK pour créer vos ressources SageMaker.
Vue d'ensemble de la solution
Nous démontrons cette nouvelle fonctionnalité avec une solution de bout en bout AWS CloudFormation modèle qui crée l'infrastructure requise et crée un domaine Studio dans le VPC déployé. De plus, nous créons des clés KMS pour chiffrer les volumes utilisés dans les tâches de formation et de traitement. Les étapes sont les suivantes:
- Lancez la pile CloudFormation dans votre compte. Sinon, si vous souhaitez explorer cette fonctionnalité sur un domaine ou un bloc-notes SageMaker existant, ignorez cette étape.
- Peupler le
config.yaml
fichier et enregistrez le fichier à l'emplacement par défaut. - Exécutez un exemple de bloc-notes avec un cas d'utilisation de ML de bout en bout, y compris le traitement des données, la formation de modèles et l'inférence.
- Remplacez les valeurs de configuration par défaut.
Pré-requis
Avant de commencer, assurez-vous de disposer d'un compte AWS et d'un utilisateur ou d'un rôle IAM avec des privilèges d'administrateur. Si vous êtes un spécialiste des données qui transmet actuellement des paramètres d'infrastructure aux ressources de votre bloc-notes, vous pouvez ignorer l'étape suivante de configuration de votre environnement et commencer à créer le fichier de configuration.
Pour utiliser cette fonctionnalité, assurez-vous de mettre à niveau votre version SageMaker SDK en exécutant pip install --upgrade sagemaker
.
Mettre en place l'environnement
Pour déployer une infrastructure complète incluant la mise en réseau et un domaine Studio, procédez comme suit :
- Cloner le GitHub référentiel.
- Connectez-vous à votre compte AWS et ouvrez la console AWS CloudFormation.
- Pour déployer les ressources réseau, choisissez Créer une pile.
- Téléchargez le modèle sous
setup/vpc_mode/01_networking.yaml
. - Indiquez un nom pour la pile (par exemple,
networking-stack
) et effectuez les étapes restantes pour créer la pile. - Pour déployer le domaine Studio, choisissez Créer une pile nouveau.
- Téléchargez le modèle sous
setup/vpc_mode/02_sagemaker_studio.yaml
. - Indiquez un nom pour la pile (par exemple,
sagemaker-stack
), et indiquez le nom de la pile réseau lorsque vous êtes invité à saisir leCoreNetworkingStackName
paramètre. - Passez aux étapes restantes, sélectionnez les accusés de réception pour les ressources IAM et créez la pile.
Lorsque l'état des deux piles est mis à jour sur CREATE_COMPLETE, passez à l'étape suivante.
Créer le fichier de configuration
Pour utiliser la configuration par défaut du SDK Python SageMaker, vous créez un fichier config.yaml au format attendu par le SDK. Pour le format du fichier config.yaml, reportez-vous à Structure du fichier de configuration. En fonction de votre environnement de travail, tel que les blocs-notes Studio, les instances de bloc-notes SageMaker ou votre IDE local, vous pouvez soit enregistrer le fichier de configuration à l'emplacement par défaut, soit remplacer les valeurs par défaut en transmettant un emplacement de fichier de configuration. Pour connaître les emplacements par défaut des autres environnements, reportez-vous à Emplacements des fichiers de configuration. Les étapes suivantes présentent la configuration d'un environnement de bloc-notes Studio.
Pour créer facilement le config.yaml
fichier, exécutez les cellules suivantes dans votre terminal système Studio, en remplaçant les espaces réservés par les noms de pile CloudFormation de l'étape précédente :
Ce script remplit automatiquement le fichier YAML, en remplaçant les espaces réservés par les valeurs par défaut de l'infrastructure, et enregistre le fichier dans le dossier de départ. Ensuite, il copie le fichier dans l'emplacement par défaut des blocs-notes Studio. Le fichier de configuration résultant doit ressembler au format suivant :
Si vous avez déjà configuré un domaine et une configuration réseau, créez le config.yaml
fichier au format requis et enregistrez-le à l'emplacement par défaut des blocs-notes Studio.
Notez que ces valeurs par défaut remplissent simplement automatiquement les valeurs de configuration pour les appels appropriés du SDK SageMaker et n'imposent pas l'utilisateur à un VPC, un sous-réseau ou un rôle spécifique. En tant qu'administrateur, si vous souhaitez que vos utilisateurs utilisent une configuration ou un rôle spécifique, utilisez Clés de condition IAM pour appliquer les valeurs par défaut.
De plus, chaque appel d'API peut avoir ses propres configurations. Par exemple, dans l'exemple de fichier de configuration précédent, vous pouvez spécifier vpc-a
et les subnet-a
pour les emplois de formation, et précisez vpc-b
et les subnet-c
, subnet-d
pour le traitement des travaux.
Exécuter un exemple de bloc-notes
Maintenant que vous avez défini le fichier de configuration, vous pouvez commencer à exécuter vos blocs-notes de création de modèles et de formation comme d'habitude, sans avoir besoin de définir explicitement les paramètres de mise en réseau et de chiffrement, pour la plupart des fonctions du SDK. Voir API et paramètres pris en charge pour obtenir une liste complète des appels et paramètres d'API pris en charge.
Dans Studio, choisissez l'icône Explorateur de fichiers dans le volet de navigation et ouvrez 03_feature_engineering/03_feature_engineering.ipynb
, comme illustré dans la capture d'écran suivante.
Exécutez les cellules du bloc-notes une par une et notez que vous ne spécifiez aucune configuration supplémentaire. Lorsque vous créez l'objet processeur, vous verrez les sorties de cellule comme dans l'exemple suivant.
Comme vous pouvez le voir dans la sortie, la configuration par défaut est automatiquement appliquée à la tâche de traitement, sans aucune entrée supplémentaire de la part de l'utilisateur.
Lorsque vous exécutez la cellule suivante pour exécuter le processeur, vous pouvez également vérifier que les valeurs par défaut sont définies en affichant le travail sur la console SageMaker. Choisir Tâches de traitement sous En cours dans le volet de navigation, comme illustré dans la capture d'écran suivante.
Choisissez la tâche de traitement avec le préfixe end-to-end-ml-sm-proc
, et vous devriez pouvoir afficher la mise en réseau et le chiffrement déjà configurés.
Vous pouvez continuer à exécuter les blocs-notes restants pour entraîner et déployer le modèle, et vous remarquerez que les paramètres par défaut de l'infrastructure sont automatiquement appliqués aux tâches d'entraînement et aux modèles.
Remplacer le fichier de configuration par défaut
Il peut y avoir des cas où un utilisateur doit remplacer la configuration par défaut, par exemple, pour expérimenter l'accès Internet public, ou mettre à jour la configuration réseau si le sous-réseau manque d'adresses IP. Dans de tels cas, le SDK Python vous permet également de fournir un emplacement personnalisé pour le fichier de configuration, soit sur le stockage local, soit vous pouvez pointer vers un emplacement dans Amazon S3. Dans cette section, nous explorons un exemple.
Ouvrez le user-configs.yaml
fichier sur votre répertoire personnel et mettez à jour le EnableNetworkIsolation
Valeur à True
, sous la TrainingJob
.
Maintenant, ouvrez le même bloc-notes et ajoutez la cellule suivante au début du bloc-notes :
Avec cette cellule, vous pointez l'emplacement du fichier de configuration vers le SDK. Maintenant, lorsque vous créez l'objet processeur, vous remarquerez que la configuration par défaut a été remplacée pour activer l'isolation du réseau, et la tâche de traitement échouera en mode d'isolation du réseau.
Vous pouvez utiliser la même variable d'environnement de remplacement pour définir l'emplacement du fichier de configuration si vous utilisez votre environnement local tel que VSCode.
Déboguer et récupérer les valeurs par défaut
Pour un dépannage rapide si vous rencontrez des erreurs lors de l'exécution d'appels d'API à partir de votre bloc-notes, la sortie de la cellule affiche les configurations par défaut appliquées, comme indiqué dans la section précédente. Pour afficher l'appel Boto3 exact créé pour afficher les valeurs d'attribut transmises à partir du fichier de configuration par défaut, vous pouvez déboguer en activant la journalisation Boto3. Pour activer la journalisation, exécutez la cellule suivante en haut du notebook :
Tous les appels Boto3 ultérieurs seront enregistrés avec la demande complète, visible sous la section corps du journal.
Vous pouvez également afficher l'ensemble des configurations par défaut à l'aide de la session.sagemaker_config
valeur comme indiqué dans l'exemple suivant.
Enfin, si vous utilisez Boto3 pour créer vos ressources SageMaker, vous pouvez récupérer les valeurs de configuration par défaut à l'aide du sagemaker_config
variable. Par exemple, pour exécuter la tâche de traitement dans 03_feature_engineering.ipynb
à l'aide de Boto3, vous pouvez saisir le contenu de la cellule suivante dans le même cahier et exécuter la cellule :
Automatiser la création de fichiers de configuration
Pour les administrateurs, devoir créer le fichier de configuration et enregistrer le fichier dans chaque instance de bloc-notes SageMaker ou profil utilisateur Studio peut être une tâche intimidante. Bien que vous puissiez recommander aux utilisateurs d'utiliser un fichier commun stocké dans un emplacement S3 par défaut, cela impose aux scientifiques des données la charge supplémentaire de spécifier le remplacement.
Pour automatiser cela, les administrateurs peuvent utiliser SageMaker Lifecycle Configurations (LCC). Pour les profils utilisateur Studio ou les instances de bloc-notes, vous pouvez joindre l'exemple de script LCC suivant en tant que LCC par défaut pour l'application Jupyter Server par défaut de l'utilisateur :
See Utiliser les configurations de cycle de vie pour Amazon SageMaker Studio or Personnaliser une instance de notebook pour obtenir des instructions sur la création et la définition d'un script de cycle de vie par défaut.
Nettoyer
Lorsque vous avez fini d'expérimenter cette fonctionnalité, nettoyez vos ressources pour éviter de payer des coûts supplémentaires. Si vous avez provisionné de nouvelles ressources comme indiqué dans cet article, procédez comme suit pour nettoyer vos ressources :
- Fermez vos applications Studio pour le profil utilisateur. Voir Arrêter et mettre à jour SageMaker Studio et les applications Studio pour les consignes. Assurez-vous que toutes les applications sont supprimées avant de supprimer la pile.
- Supprimez le volume EFS créé pour le domaine Studio. Vous pouvez afficher le volume EFS attaché au domaine en utilisant un DécrireDomaine Appel API.
- Supprimez la pile de domaines Studio.
- Supprimez les groupes de sécurité créés pour le domaine Studio. Vous pouvez les trouver sur le Cloud de calcul élastique Amazon (Amazon EC2), avec les noms security-group-for-inbound-nfs-d-xxx et security-group-for-outbound-nfs-d-xxx
- Supprimez la pile réseau.
Conclusion
Dans cet article, nous avons discuté de la configuration et de l'utilisation des valeurs par défaut pour les paramètres d'infrastructure clés à l'aide du SDK Python SageMaker. Cela permet aux administrateurs de définir des configurations par défaut pour les scientifiques des données, ce qui permet aux utilisateurs et aux administrateurs de gagner du temps, d'éliminer le fardeau de la spécification répétitive des paramètres et d'obtenir un code plus léger et plus gérable. Pour obtenir la liste complète des paramètres et des API pris en charge, consultez Configuration et utilisation des valeurs par défaut avec le SDK SageMaker Python. Pour toutes questions et discussions, rejoignez le Communauté d'apprentissage automatique et d'IA.
À propos des auteurs
Giuseppe Angelo Porcelli est un architecte principal de solutions spécialisées en apprentissage automatique pour Amazon Web Services. Avec plusieurs années d'expérience en ingénierie logicielle et en ML, il travaille avec des clients de toutes tailles pour comprendre en profondeur leurs besoins commerciaux et techniques et concevoir des solutions d'IA et d'apprentissage automatique qui tirent le meilleur parti du cloud AWS et de la pile Amazon Machine Learning. Il a travaillé sur des projets dans différents domaines, notamment MLOps, Computer Vision, NLP, et impliquant un large éventail de services AWS. Pendant son temps libre, Giuseppe aime jouer au football.
Bruno Piston est un architecte de solutions spécialisé AI/ML pour AWS basé à Milan. Il travaille avec des clients de toutes tailles pour les aider à comprendre en profondeur leurs besoins techniques et à concevoir des solutions d'IA et d'apprentissage automatique qui tirent le meilleur parti du cloud AWS et de la pile Amazon Machine Learning. Son domaine d'expertise est le Machine Learning de bout en bout, l'industrialisation du Machine Learning et les MLOps. Il aime passer du temps avec ses amis et explorer de nouveaux endroits, ainsi que voyager vers de nouvelles destinations.
Durga Sury est architecte de solutions ML au sein de l'équipe Amazon SageMaker Service SA. Elle est passionnée par l'idée de rendre l'apprentissage automatique accessible à tous. Au cours de ses 4 années chez AWS, elle a contribué à la mise en place de plateformes AI/ML pour les entreprises clientes. Quand elle ne travaille pas, elle adore les balades à moto, les romans policiers et les longues promenades avec son husky de 5 ans.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- Achetez et vendez des actions de sociétés PRE-IPO avec PREIPO®. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- Capable
- A Propos
- accès
- accessible
- Compte
- actes
- ajouter
- ajout
- Supplémentaire
- adresses
- administrateurs
- encore
- AI
- AI / ML
- Tous
- Permettre
- permet
- déjà
- aussi
- Bien que
- Amazon
- Amazon EC2
- Apprentissage automatique d'Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- et les
- tous
- api
- Apis
- appli
- appliqué
- approprié
- applications
- SONT
- AS
- At
- joindre
- automatiser
- automatiquement
- éviter
- AWS
- AWS CloudFormation
- fond
- basé
- BE
- était
- before
- Début
- LES MEILLEURS
- corps
- tous les deux
- vaste
- Développement
- fardeau
- la performance des entreprises
- by
- Appelez-nous
- Appels
- CAN
- maisons
- cas
- CD
- Cellules
- Selectionnez
- client
- le cloud
- code
- collection
- Commun
- complet
- calcul
- ordinateur
- Vision par ordinateur
- condition
- configuration
- Console
- contenu
- continuer
- des bactéries
- contrôlée
- Costs
- pourriez
- engendrent
- créée
- crée des
- La création
- Lecture
- Customiser
- Clients
- données
- informatique
- Data Scientist
- Réglage par défaut
- par défaut
- démontrer
- Selon
- déployer
- déployé
- déployer
- déploiement
- Conception
- destinations
- différent
- discuté
- discussions
- affiche
- Ne fait pas
- domaine
- domaines
- fait
- Ne pas
- down
- chacun
- même
- echo
- non plus
- l'élimination
- permettre
- crypté
- chiffrement
- fin
- end-to-end
- Endpoint
- imposer
- ENGINEERING
- assurer
- Entrer
- Entreprise
- Environment
- environnements
- Erreurs
- tout le monde
- exemple
- existant
- attend
- expérience
- nous a permis de concevoir
- explorez
- explorateur
- Explorer
- FAIL
- non
- Fonctionnalité
- champ
- Déposez votre dernière attestation
- Fichiers
- finance
- Trouvez
- suivre
- Abonnement
- suit
- Football
- Pour
- le format
- gratuitement ici
- amis
- De
- plein
- fonctions
- obtenez
- obtention
- Git
- Groupes
- Vous avez
- ayant
- he
- la médecine
- a aidé
- aider
- ici
- sa
- Accueil
- Comment
- How To
- HTML
- http
- HTTPS
- ICON
- Identite
- if
- importer
- in
- Y compris
- secteurs
- Infrastructure
- contribution
- installer
- instance
- Des instructions
- Interfaces
- Internet
- accès Internet
- développement
- impliquant
- IP
- adresses IP
- seul
- IT
- SES
- Emploi
- Emplois
- rejoindre
- jpg
- ACTIVITES
- clés
- gros
- apprentissage
- Niveau
- Bibliothèque
- vos produits
- comme
- Liste
- locales
- emplacement
- emplacements
- enregistrer
- Connecté
- enregistrement
- Location
- Style
- aime
- click
- machine learning
- a prendre une
- Fabrication
- gestion
- manuellement
- EAU DE COLOGNE MILAN
- ML
- MLOps
- Mode
- modèle
- numériques jumeaux (digital twin models)
- PLUS
- (en fait, presque toutes)
- moto
- plusieurs
- Mystère
- prénom
- noms
- Navigation
- Besoin
- nécessaire
- besoin
- Besoins
- réseau et
- de mise en réseau
- Nouveauté
- next
- nlp
- aucune
- cahier
- Remarquer..
- notant
- maintenant
- objet
- of
- on
- une fois
- ONE
- ouvert
- open source
- or
- OS
- Autre
- ande
- sortie
- Commande
- propre
- pain
- paramètre
- paramètres
- passé
- En passant
- passionné
- payant
- Des endroits
- Plateformes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- Point
- politiques
- Post
- pratique
- précédent
- Directeur
- Privé
- privilèges
- traitement
- Processeur
- Profil
- Profils
- projets
- fournir
- public
- Puts
- Python
- fréquemment posées
- Rapide
- recommander
- restant
- rappeler
- nécessaire
- conditions
- Resources
- réponse
- restrictions
- résultant
- Rôle
- rôle
- Courir
- pour le running
- s
- SA
- sagemaker
- même
- Épargnez
- économie
- Scientifique
- scientifiques
- Sdk
- Section
- sécurité
- sur le lien
- service
- Services
- Session
- set
- mise
- installation
- plusieurs
- elle
- devrait
- montrer
- vitrine
- montré
- similaires
- étapes
- simplement
- Taille
- Logiciels
- génie logiciel
- Solutions
- quelque chose
- spécialiste
- groupe de neurones
- spécifié
- Dépenses
- empiler
- Combos
- Commencer
- j'ai commencé
- Statut
- étapes
- Étapes
- storage
- Boutique
- stockée
- studio
- sous-réseau
- sous-réseaux
- ultérieur
- Avec succès
- tel
- Appareils
- Les soutiens
- combustion propre
- Tâche
- équipe
- Technique
- modèle
- terminal
- qui
- Le
- leur
- Les
- puis
- ainsi
- Ces
- this
- Avec
- fermement
- fiable
- à
- top
- circulation
- Train
- Formation
- TOUR
- Tournant
- sous
- sous-jacent
- comprendre
- Mises à jour
- améliorer
- Utilisation
- utilisé
- cas d'utilisation
- d'utiliser
- Utilisateur
- utilisateurs
- en utilisant
- Plus-value
- Valeurs
- vérifier
- version
- via
- Voir
- visualisation
- Salle de conférence virtuelle
- visible
- vision
- le volume
- volumes
- souhaitez
- we
- web
- services Web
- WELL
- quand
- sera
- comprenant
- sans
- activités principales
- travaillé
- de travail
- vos contrats
- yaml
- années
- Vous n'avez
- Votre
- zéphyrnet