Alors que de plus en plus de clients cherchent à mettre en production des charges de travail d'apprentissage automatique (ML), les organisations s'efforcent de raccourcir le cycle de développement du code ML. De nombreuses organisations préfèrent écrire leur code ML dans un style prêt pour la production sous la forme de méthodes et de classes Python par opposition à un style exploratoire (écriture de code sans utiliser de méthodes ou de classes), car cela les aide à expédier plus rapidement du code prêt pour la production.
Avec Amazon Sage Maker, vous pouvez utiliser le @décorateur à distance pour exécuter une tâche de formation SageMaker simplement en annotant votre code Python avec un décorateur @remote. Le Kit de développement logiciel (SDK) SageMaker Python traduira automatiquement votre environnement d'espace de travail existant et tout code de traitement de données et ensembles de données associés en une tâche de formation SageMaker qui s'exécute sur la plate-forme de formation SageMaker.
L'exécution locale d'une fonction Python nécessite souvent plusieurs dépendances, qui peuvent ne pas être fournies avec l'environnement d'exécution Python local. Vous pouvez les installer via des outils de gestion de packages et de dépendances tels que pépin or compter.
Cependant, les organisations opérant dans des secteurs réglementés tels que la banque, l'assurance et la santé opèrent dans des environnements où des contrôles stricts de confidentialité des données et de mise en réseau sont en place. Ces contrôles exigent souvent qu'aucun accès Internet ne soit disponible pour aucun de leurs environnements. La raison d'une telle restriction est d'avoir un contrôle total sur le trafic de sortie et d'entrée afin de réduire les risques que des acteurs peu scrupuleux envoient ou reçoivent des informations non vérifiées via leur réseau. Il est souvent également obligatoire d'avoir une telle isolation du réseau dans le cadre des règles de conformité auditive et industrielle. En ce qui concerne le ML, cela empêche les scientifiques des données de télécharger n'importe quel package à partir de référentiels publics tels que PyPI, Anacondaou Conda-Forge.
Pour fournir aux data scientists un accès aux outils de leur choix tout en respectant les contraintes de l'environnement, les organisations mettent souvent en place leur propre référentiel de packages privés hébergé dans leur propre environnement. Vous pouvez configurer des référentiels de packages privés sur AWS de plusieurs manières :
Dans cet article, nous nous concentrons sur la première option : utiliser CodeArtifact.
Vue d'ensemble de la solution
Le schéma d'architecture suivant montre l'architecture de la solution.
Les étapes de haut niveau pour mettre en œuvre la solution sont les suivantes
- Configurez un cloud privé virtuel (VPC) sans accès à Internet à l'aide d'un AWS CloudFormation modèle.
- Utilisez un deuxième modèle CloudFormation pour configurer CodeArtifact en tant que référentiel PyPI privé et fournir une connectivité au VPC, et configurez un Amazon SageMakerStudio environnement pour utiliser le référentiel PyPI privé.
- Former un modèle de classification basé sur la MNIST jeu de données à l'aide d'un décorateur @remote du SDK open source SageMaker Python. Toutes les dépendances seront téléchargées à partir du référentiel PyPI privé.
Notez que l'utilisation de SageMaker Studio dans cet article est facultative. Vous pouvez choisir de travailler dans n'importe quel environnement de développement intégré (IDE) de votre choix. Il vous suffit de configurer votre Interface de ligne de commande AWS (AWS CLI) correctement les informations d'identification. Pour plus d'informations, reportez-vous à Configurer l'AWS CLI.
Pré-requis
Vous avez besoin d'un compte AWS avec un Gestion des identités et des accès AWS (JE SUIS) rôle de l' avec des autorisations pour gérer les ressources créées dans le cadre de la solution. Pour plus de détails, reportez-vous à Création d'un compte AWS.
Configurer un VPC sans connexion Internet
Créer une nouvelle pile CloudFormation utilisant l' vpc.yaml modèle. Ce modèle crée les ressources suivantes :
- Un VPC avec deux sous-réseaux privés sur deux zones de disponibilité sans connexion Internet
- Un point de terminaison de VPC de passerelle pour accéder à Amazon S3
- Interfacez les points de terminaison de VPC pour SageMaker, CodeArtifact et quelques autres services afin de permettre aux ressources du VPC de se connecter aux services AWS via Lien privé AWS
Indiquez un nom de pile, tel que No-Internet
, et terminez le processus de création de la pile.
Attendez que le processus de création de la pile soit terminé.
Configurer un référentiel privé et SageMaker Studio à l'aide du VPC
L'étape suivante consiste à déployer une autre pile CloudFormation à l'aide de sagemaker_studio_codeartifact.yaml modèle. Ce modèle crée les ressources suivantes :
Indiquez un nom de pile et conservez les valeurs par défaut ou ajustez les paramètres de Nom de domaine CodeArtifact, nom du référentiel privé, nom du profil utilisateur pour SageMaker Studio, et nom du référentiel PyPI public en amont. Vous devez également nous fournir le Nom de la pile VPC créé à l'étape précédente.
Lorsque la création de la pile est terminée, le domaine SageMaker doit être visible sur la console SageMaker.
Pour vérifier qu'aucune connexion Internet n'est disponible dans SageMaker Studio, lancer SageMakerStudio. Choisir File
, New
et une Terminal
pour lancer un terminal et essayer de boucle toute ressource Internet. Il devrait échouer à se connecter, comme indiqué dans la capture d'écran suivante.
Former un classificateur d'images à l'aide d'un décorateur @remote avec le référentiel PyPI privé
Dans cette section, nous utilisons le décorateur @remote pour exécuter un PyTorch tâche de formation qui produit un modèle de classification d'images MNIST. Pour ce faire, nous configurons un fichier de configuration, développons le script de formation et exécutons le code de formation.
Configurer un fichier de configuration
Nous avons mis en place un config.yaml
fichier et fournissez les configurations nécessaires pour effectuer les opérations suivantes :
- Exécuter un Emploi de formation SageMaker dans le VPC sans Internet créé précédemment
- Téléchargez les packages requis en vous connectant au référentiel PyPI privé créé précédemment
Le fichier ressemble au code suivant :
La Dependencies
le champ contient le chemin vers requirements.txt
, qui contient toutes les dépendances nécessaires. Notez que toutes les dépendances seront téléchargées à partir du référentiel privé. Le requirements.txt
fichier contient le code suivant :
La PreExecutionCommands
La section contient la commande pour se connecter au référentiel PyPI privé. Pour obtenir l'URL du point de terminaison du VPC CodeArtifact, utilisez le code suivant :
Généralement, nous obtenons deux points de terminaison VPC pour CodeArtifact, et nous pouvons utiliser n'importe lequel d'entre eux dans les commandes de connexion. Pour plus de détails, reportez-vous à Utiliser CodeArtifact à partir d'un VPC.
De plus, des configurations comme execution role
, output location
et une VPC configurations
sont fournis dans le fichier de configuration. Ces configurations sont nécessaires pour exécuter la tâche de formation SageMaker. Pour en savoir plus sur toutes les configurations prises en charge, reportez-vous à Fichier de configuration.
Il n'est pas obligatoire d'utiliser le config.yaml
fichier afin de travailler avec le décorateur @remote. Il s'agit simplement d'un moyen plus propre de fournir toutes les configurations au décorateur @remote. Toutes les configurations pourraient également être fournies directement dans les arguments du décorateur, mais cela réduit la lisibilité et la maintenabilité des modifications à long terme. De plus, le fichier de configuration peut être créé par un administrateur et partagé avec tous les utilisateurs d'un environnement.
Développer le script de formation
Ensuite, nous préparons le code de formation dans de simples fichiers Python. Nous avons divisé le code en trois fichiers :
- load_data.py – Contient le code pour télécharger le jeu de données MNIST
- modèle.py – Contient le code de l'architecture du réseau de neurones pour le modèle
- train.py – Contient le code pour former le modèle en utilisant load_data.py et model.py
In train.py
, nous devons décorer la fonction d'entraînement principale comme suit :
Nous sommes maintenant prêts à exécuter le code de formation.
Exécutez le code de formation avec un décorateur @remote
Nous pouvons exécuter le code depuis un terminal ou depuis n'importe quelle invite exécutable. Dans cet article, nous utilisons une cellule de bloc-notes SageMaker Studio pour démontrer ceci :
L'exécution de la commande précédente déclenche la tâche d'entraînement. Dans les journaux, nous pouvons voir qu'il télécharge les packages à partir du référentiel PyPI privé.
Ceci conclut l'implémentation d'un décorateur @remote fonctionnant avec un référentiel privé dans un environnement sans accès Internet.
Nettoyer
Pour nettoyer les ressources, suivez les instructions de NETTOYAGE.md.
Conclusion
Dans cet article, nous avons appris à utiliser efficacement les capacités du décorateur @remote tout en travaillant dans des environnements restrictifs sans accès à Internet. Nous avons également appris comment intégrer les fonctionnalités du référentiel privé CodeArtifact à l'aide de la prise en charge des fichiers de configuration dans SageMaker. Cette solution rend le développement itératif beaucoup plus simple et plus rapide. Un autre avantage supplémentaire est que vous pouvez toujours continuer à écrire le code de formation d'une manière plus naturelle et orientée objet et continuer à utiliser les fonctionnalités de SageMaker pour exécuter des tâches de formation sur un cluster distant avec des changements minimes dans votre code. Tout le code affiché dans le cadre de cet article est disponible dans le GitHub référentiel.
Comme prochaine étape, nous vous encourageons à consulter le Fonctionnalité de décoration @remote ainsi que API du SDK Python et utilisez-le dans votre choix d'environnement et d'IDE. Des exemples supplémentaires sont disponibles dans le amazon-sagemaker-exemples référentiel pour vous permettre de démarrer rapidement. Vous pouvez également consulter la publication Exécutez votre code d'apprentissage automatique local en tant que tâches de formation Amazon SageMaker avec des modifications de code minimales pour plus de détails.
A propos de l'auteure
Vikesh Pandey est un architecte de solutions spécialiste de l'apprentissage automatique chez AWS, aidant les clients des industries financières à concevoir et à créer des solutions sur l'IA générative et le ML. En dehors du travail, Vikesh aime essayer différentes cuisines et pratiquer des sports de plein air.
- 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/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :est
- :ne pas
- $UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- A Propos
- accès
- accès
- Compte
- atteindre
- à travers
- acteurs
- ajoutée
- Supplémentaire
- admin
- Avantage
- AI
- Tous
- permettre
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ainsi que
- Une autre
- tous
- api
- architecture
- SONT
- arguments
- AS
- associé
- At
- automatiquement
- disponibilité
- disponibles
- AWS
- Services bancaires
- basé
- BE
- car
- construire
- mais
- by
- CAN
- capacités
- chances
- Modifications
- vérifier
- le choix
- Selectionnez
- les classes
- classification
- le cloud
- Grappe
- code
- COM
- comment
- vient
- complet
- conformité
- configuration
- NOUS CONTACTER
- Connecter les
- connexion
- Connectivité
- Console
- contient
- continuer
- des bactéries
- contrôles
- pourriez
- créée
- crée des
- création
- Lettres de créance
- Clients
- données
- confidentialité des données
- informatique
- ensembles de données
- Réglage par défaut
- démontrer
- Dépendance
- déployer
- Conception
- détails
- développer
- Développement
- différent
- directement
- divisé
- do
- domaine
- download
- de manière efficace
- encourager
- Endpoint
- Environment
- environnements
- époques
- exemples
- exécution
- existant
- FAIL
- non
- plus rapide
- few
- champ
- Déposez votre dernière attestation
- Fichiers
- la traduction de documents financiers
- industries financières
- Prénom
- flotteur
- Focus
- suivre
- Abonnement
- suit
- Pour
- formulaire
- De
- plein
- fonction
- porte
- génératif
- IA générative
- obtenez
- Réservation de groupe
- Vous avez
- ayant
- la médecine
- vous aider
- aider
- aide
- de haut niveau
- organisé
- Comment
- How To
- HTML
- http
- HTTPS
- ID
- Identite
- image
- Classification des images
- Mettre en oeuvre
- la mise en oeuvre
- in
- industriel
- secteurs
- d'information
- installer
- Des instructions
- Assurance
- intégrer
- des services
- Internet
- accès Internet
- connexion Internet
- développement
- seul
- IT
- Emploi
- Emplois
- jpg
- juste
- XNUMX éléments à
- Savoir
- gros
- lancer
- savant
- apprentissage
- vos produits
- comme
- Gamme
- locales
- localement
- vous connecter
- Location
- recherchez-
- LOOKS
- click
- machine learning
- Entrée
- FAIT DU
- gérer
- gestion
- d'outils de gestion
- Mandat
- obligatoire
- de nombreuses
- Mai..
- méthodes
- minimal
- ML
- modèle
- Modules
- PLUS
- beaucoup
- plusieurs
- prénom
- indigène
- Nature
- Besoin
- nécessaire
- réseau et
- de mise en réseau
- Réseau neuronal
- Nouveauté
- next
- aucune
- cahier
- of
- souvent
- on
- open source
- fonctionner
- d'exploitation
- opposé
- Option
- or
- de commander
- organisations
- Autre
- ande
- au contrôle
- plus de
- propre
- paquet
- Forfaits
- paramètres
- partie
- chemin
- autorisations
- Place
- plateforme
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- Post
- préfère
- Préparer
- précédent
- la confidentialité
- Privé
- processus
- traitement
- produit
- Vidéo
- Profil
- fournir
- à condition de
- public
- Push
- mettre
- Python
- pytorch
- vite.
- solutions
- raison
- recevoir
- réduire
- réduit
- réglementé
- industries réglementées
- éloigné
- dépôt
- conditions
- a besoin
- ressource
- Resources
- respectant
- restriction
- restrictions
- Restrictif
- Rôle
- Courir
- pour le running
- fonctionne
- sagemaker
- scientifiques
- Sdk
- Deuxièmement
- Section
- sécurité
- sur le lien
- seed
- envoi
- Services
- set
- plusieurs
- commun
- NAVIRE
- devrait
- montré
- Spectacles
- étapes
- plus simple
- simplement
- So
- sur mesure
- Solutions
- spécialiste
- Sports
- empiler
- j'ai commencé
- étapes
- Étapes
- Encore
- Boutique
- Strict
- studio
- Catégorie
- sous-réseau
- sous-réseaux
- tel
- fourni
- la quantité
- Support
- Appareils
- modèle
- terminal
- qui
- La
- leur
- Les
- Là.
- Ces
- l'ont
- this
- trois
- Avec
- à
- les outils
- Vision de la torche
- circulation
- Formation
- traduire
- oui
- Essai
- deux
- sans scrupules
- URL
- utilisé
- d'utiliser
- utilisateurs
- en utilisant
- Valeurs
- vérifier
- via
- Salle de conférence virtuelle
- visible
- Façon..
- façons
- we
- web
- services Web
- quand
- qui
- tout en
- Wikipédia
- sera
- comprenant
- sans
- activités principales
- de travail
- écrire
- écriture
- yaml
- Vous n'avez
- Votre
- zéphyrnet
- zones