Les notebooks Jupyter sont très appréciés des scientifiques des données pour leur capacité à traiter les données de manière interactive, à créer des modèles ML et à tester ces modèles en faisant des inférences sur les données. Cependant, il existe des scénarios dans lesquels les scientifiques des données peuvent préférer passer du développement interactif sur des ordinateurs portables à des travaux par lots. Des exemples de tels cas d'utilisation incluent la mise à l'échelle d'une tâche d'ingénierie de fonctionnalités qui a été précédemment testée sur un petit échantillon d'ensemble de données sur une petite instance de bloc-notes, l'exécution de rapports nocturnes pour obtenir des informations sur les métriques commerciales et le recyclage des modèles ML selon un calendrier à mesure que de nouvelles données deviennent disponibles.
La migration du développement interactif sur les blocs-notes vers les travaux par lots nécessitait de copier des extraits de code du bloc-notes dans un script, d'empaqueter le script avec toutes ses dépendances dans un conteneur et de planifier l'exécution du conteneur. Pour exécuter ce travail de manière répétée selon un calendrier, vous deviez configurer, configurer et superviser l'infrastructure cloud pour automatiser les déploiements, ce qui entraînait un détournement de temps précieux des principales activités de développement de la science des données.
Pour aider à simplifier le processus de passage des blocs-notes interactifs aux travaux par lots, en décembre 2022, Amazon SageMakerStudio ainsi que Laboratoire d'atelier introduit la possibilité d'exécuter des blocs-notes en tant que tâches planifiées, à l'aide de workflows basés sur des blocs-notes. Vous pouvez désormais utiliser la même fonctionnalité pour exécuter vos blocs-notes Jupyter à partir de n'importe quel environnement JupyterLab, tel que Amazon Sage Maker instances de notebook et JupyterLab s'exécutant sur votre machine locale. SageMaker fournit une extension open source qui peut être installée sur n'importe quel environnement JupyterLab et être utilisée pour exécuter des notebooks en tant que tâches éphémères et selon un calendrier.
Dans cet article, nous vous montrons comment exécuter vos blocs-notes à partir de votre environnement JupyterLab local en tant que tâches de bloc-notes planifiées sur SageMaker.
Vue d'ensemble de la solution
L'architecture de la solution pour la planification des travaux de bloc-notes à partir de n'importe quel environnement JupyterLab est illustrée dans le diagramme suivant. L'extension SageMaker s'attend à ce que l'environnement JupyterLab dispose d'informations d'identification et d'autorisations AWS valides pour planifier des tâches de bloc-notes. Nous discutons des étapes de configuration des informations d'identification et Gestion des identités et des accès AWS (IAM) plus loin dans cet article. En plus de l'utilisateur IAM et de la session de rôle assumée qui planifie la tâche, vous devez également fournir un rôle que l'instance de tâche de bloc-notes doit assumer pour accéder à vos données dans Service de stockage simple Amazon (Amazon S3) ou pour se connecter à Amazon DME grappes selon les besoins.
Dans les sections suivantes, nous montrons comment configurer l'architecture et installer l'extension open source, exécuter un bloc-notes avec les configurations par défaut et également utiliser les paramètres avancés pour exécuter un bloc-notes avec des paramètres personnalisés.
Pré-requis
Pour cet article, nous supposons un environnement JupyterLab hébergé localement. Vous pouvez également suivre les mêmes étapes d'installation pour un environnement hébergé dans le cloud.
Les étapes suivantes supposent que vous disposez déjà d'un environnement Python 3 et JupyterLab valide (cette extension fonctionne avec JupyterLab v3.0 ou supérieur).
Installez l' Interface de ligne de commande AWS (AWS CLI) si vous ne l'avez pas déjà installé. Voir Installation ou mise à jour de la dernière version de l'AWS CLI pour obtenir des instructions.
Configurer les informations d'identification IAM
Vous avez besoin d'un utilisateur IAM ou d'une session de rôle IAM active pour soumettre des tâches de bloc-notes SageMaker. Pour configurer vos informations d'identification IAM, vous pouvez configurer l'AWS CLI avec vos informations d'identification AWS pour votre utilisateur IAM ou assumer un rôle IAM. Pour obtenir des instructions sur la configuration de vos informations d'identification, consultez Configuration de l'AWS CLI. Le mandataire IAM (utilisateur ou rôle assumé) a besoin des autorisations suivantes pour planifier des tâches de bloc-notes. Pour ajouter la police à votre capital, consultez Ajout d'autorisations d'identité IAM.
Si vos travaux de bloc-notes doivent être chiffrés avec des Service de gestion des clés AWS (AWS KMS), ajoutez la déclaration de stratégie autorisant également l'accès à AWS KMS. Pour un exemple de politique, voir Installer des stratégies et des autorisations pour les environnements Jupyter locaux.
Configurer un rôle IAM pour l'instance de tâche de bloc-notes
SageMaker nécessite un rôle IAM pour exécuter des tâches au nom de l'utilisateur, telles que l'exécution de la tâche de bloc-notes. Ce rôle doit avoir accès aux ressources requises pour que le bloc-notes termine le travail, comme l'accès aux données dans Amazon S3.
L'extension du planificateur recherche automatiquement les rôles IAM dans le compte AWS, avec le préfixe SagemakerJupyterScheduler
pour exécuter les tâches du bloc-notes.
Pour créer un rôle IAM, créer un rôle d'exécution pour Amazon SageMaker avec le AmazonSageMakerFullAccess
politique. Nommez le rôle SagemakerJupyterSchedulerDemo
, ou fournissez un nom avec le préfixe attendu.
Une fois le rôle créé, sur le Relations de confiance onglet, choisissez Modifier la politique de confiance. Remplacez la stratégie d'approbation existante par ce qui suit :
Les AmazonSageMakerFullAccess
politique est assez permissive et est généralement préférée pour l'expérimentation et la prise en main de SageMaker. Nous vous encourageons vivement à créer une stratégie de portée minimale pour toutes les futures charges de travail conformément aux meilleures pratiques de sécurité dans IAM. Pour connaître l'ensemble minimal d'autorisations requises pour la tâche de bloc-notes, consultez Installez des stratégies et des autorisations pour les environnements Jupyter locaux.
Installez l'extension
Ouvrez un terminal sur votre ordinateur local et installez l'extension en exécutant la commande suivante :
Une fois cette commande exécutée, vous pouvez démarrer JupyterLab en exécutant jupyter lab.
Si vous installez l'extension à partir du terminal JupyterLab, redémarrez le serveur Jupyter pour charger l'extension. Vous pouvez redémarrer le serveur Jupyter en choisissant arrêter sur le Déposez votre dernière attestation menu de votre JupyterLab, et en démarrant JupyterLab à partir de votre ligne de commande en exécutant jupyter lab
.
Soumettre un travail de bloc-notes
Une fois l'extension installée sur votre environnement, vous pouvez exécuter n'importe quel bloc-notes autonome en tant que tâche éphémère. Soumettons un simple bloc-notes "Hello world" à exécuter en tant que tâche planifiée.
- Sur le Déposez votre dernière attestation menu, choisissez Nouveauté ainsi que Cahier .
- Saisissez le contenu suivant :
Une fois l'extension installée avec succès, vous verrez l'icône de planification de bloc-notes sur le bloc-notes.
- Choisissez l'icône pour créer une tâche de bloc-notes.
Vous pouvez également cliquer avec le bouton droit sur le bloc-notes dans votre explorateur de fichiers et choisir Créer une tâche de bloc-notes.
- Indiquez le nom de la tâche, le fichier d'entrée, le type de calcul et les paramètres supplémentaires.
- Laissez les autres paramètres par défaut et choisissez Créer.
Une fois la tâche planifiée, vous êtes redirigé vers le Tâches de bloc-notes , où vous pouvez afficher la liste des travaux de bloc-notes et leur état, et afficher la sortie et les journaux du bloc-notes une fois le travail terminé. Vous pouvez également accéder à cette fenêtre de travaux de bloc-notes à partir du lanceur, comme illustré dans la capture d'écran suivante.
Configurations avancées
À partir de votre calcul local, les blocs-notes s'exécutent automatiquement sur l'image SageMaker Base Python, qui est l'image Python 3.8 officielle de Docker Hub avec Boto3 et l'AWS CLI inclus. Dans des cas réels, les data scientists doivent installer des packages ou des frameworks spécifiques pour leurs notebooks. Il existe trois façons d'obtenir un environnement reproductible :
- À l'option la plus simple, vous pouvez installer les packages et les frameworks directement sur la première cellule de votre ordinateur portable.
- Vous pouvez également fournir un script d'initialisation dans le Options additionelles section, pointant vers un script bash sur votre stockage local qui est exécuté par le travail de bloc-notes lorsque le bloc-notes démarre. Dans la section suivante, nous montrons un exemple d'utilisation de scripts d'initialisation pour installer des packages.
- Enfin, si vous souhaitez une flexibilité maximale dans la configuration de votre environnement d'exécution, vous pouvez créer votre propre image personnalisée avec un noyau Python3, pousser l'image vers Registre des conteneurs élastiques Amazon (Amazon ECR) et fournissez l'URI de l'image ECR à votre tâche de bloc-notes sous Options additionelles. L'image ECR doit respecter les exigences des images SageMaker, comme indiqué dans Spécifications des images SageMaker personnalisées.
En outre, votre entreprise peut mettre en place des garde-fous tels que l'exécution de tâches en mode sans Internet dans un Amazon VPC, l'utilisation d'un rôle de moindre privilège personnalisé pour la tâche et l'application du chiffrement. Vous pouvez spécifier de telles configurations pour vos tâches de bloc-notes dans le Options additionelles rubrique également. Pour une liste détaillée des configurations avancées, voir Options additionelles.
Ajouter un script d'initialisation
Pour présenter le script d'initialisation, nous exécutons maintenant l'exemple de bloc-notes pour les tâches de bloc-notes Studio disponibles sur GitHub. Pour exécuter ce notebook, vous devez installer les packages requis via un script d'initialisation. Effectuez les étapes suivantes :
- Depuis votre terminal JupyterLab, exécutez la commande suivante pour télécharger le fichier :
- Sur le Déposez votre dernière attestation menu, choisissez Nouveauté ainsi que Fichier texte.
- Entrez le contenu suivant dans votre fichier et enregistrez le fichier sous le nom
init-script.sh
: - Selectionnez
scheduled-example.ipynb
depuis votre explorateur de fichiers pour ouvrir le notebook. - Choisissez l'icône de tâche de bloc-notes pour planifier le bloc-notes, puis développez la Options additionelles .
- Pour Emplacement du script d'initialisation, entrez le chemin complet de votre script.
Vous pouvez également éventuellement personnaliser les dossiers S3 d'entrée et de sortie pour votre travail de bloc-notes. SageMaker crée un dossier d'entrée dans un emplacement S3 spécifié pour stocker les fichiers d'entrée et crée un dossier de sortie S3 dans lequel les sorties du bloc-notes sont stockées. Vous pouvez spécifier ici le chiffrement, le rôle IAM et les configurations VPC. Voir Contraintes et considérations pour les images personnalisées et les spécifications VPC.
- Pour l'instant, mettez simplement à jour le script d'initialisation, choisissez Cours maintenant pour le calendrier, et choisissez Création.
Lorsque le travail est terminé, vous pouvez afficher le bloc-notes avec les sorties et le journal des sorties sous Fichiers de sortie, comme illustré dans la capture d'écran suivante. Dans le journal de sortie, vous devriez pouvoir voir le script d'initialisation en cours d'exécution avant d'exécuter le notebook.
Pour personnaliser davantage l'environnement de travail de votre bloc-notes, vous pouvez utiliser votre propre image en spécifiant l'URI ECR de votre image personnalisée. Si vous apportez votre propre image, assurez-vous d'installer un noyau Python3 lors de la création de votre image. Pour obtenir un exemple de Dockerfile pouvant exécuter un notebook à l'aide de TensorFlow, consultez le code suivant :
Conclusion
Dans cet article, nous vous avons montré comment exécuter vos blocs-notes à partir de n'importe quel environnement JupyterLab hébergé localement en tant que tâches de formation SageMaker, à l'aide de l'extension de planificateur SageMaker Jupyter. Pouvoir exécuter des blocs-notes sans tête, selon un calendrier, réduit considérablement le travail lourd indifférencié pour les scientifiques des données, comme la refactorisation des blocs-notes en scripts Python, la configuration Amazon Event Bridge déclencheurs d'événements et création AWS Lambda fonctions ou pipelines SageMaker pour démarrer les tâches de formation. Les travaux de bloc-notes SageMaker sont exécutés à la demande, vous ne payez donc que pour le temps d'exécution du bloc-notes et vous pouvez utiliser l'extension des travaux de bloc-notes pour afficher les sorties du bloc-notes à tout moment depuis votre environnement JupyterLab. Nous vous encourageons à essayer les tâches de bloc-notes planifiées et à vous connecter avec le Communauté d'apprentissage automatique et d'IA sur re:Post pour les retours !
À propos des auteurs
Bhadrinath Pani est ingénieur en développement logiciel chez Amazon Web Services, travaillant sur les produits ML interactifs Amazon SageMaker, avec plus de 12 ans d'expérience dans le développement de logiciels dans des domaines tels que l'automobile, l'IoT, la réalité augmentée/réalité virtuelle et la vision par ordinateur. Actuellement, il se concentre principalement sur le développement d'outils d'apprentissage automatique visant à simplifier l'expérience des data scientists. Pendant son temps libre, il aime passer du temps avec sa famille et explorer la beauté du nord-ouest du Pacifique.
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/schedule-your-notebooks-from-any-jupyterlab-environment-using-the-amazon-sagemaker-jupyterlab-extension/
- :possède
- :est
- :où
- $UP
- 100
- 12
- 202
- 2022
- 7
- 77
- 8
- a
- capacité
- Capable
- Qui sommes-nous
- accès
- Accès aux données
- accessible
- conformité
- Compte
- atteindre
- à travers
- Action
- infection
- activités
- ajouter
- ajout
- Supplémentaire
- Avancée
- Après
- AI
- AI / ML
- Destinée
- Tous
- permettre
- Permettre
- déjà
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ainsi que
- tous
- AR / VR
- architecture
- SONT
- AS
- assumé
- At
- automatiser
- automatiquement
- l'automobile
- disponibles
- et
- AWS
- base
- bash
- BE
- Beauté
- devient
- before
- va
- LES MEILLEURS
- les meilleures pratiques
- Block
- Apporter
- construire
- Développement
- la performance des entreprises
- by
- CAN
- cas
- Selectionnez
- choose
- le cloud
- infrastructure de cloud
- code
- COM
- Communautés
- complet
- calcul
- ordinateur
- Vision par ordinateur
- condition
- les configurations
- NOUS CONTACTER
- Contenant
- contenu
- Core
- engendrent
- créée
- crée des
- La création
- Lettres de créance
- Lecture
- Customiser
- des clients
- Clients
- personnaliser
- données
- science des données
- Décembre
- Réglage par défaut
- Demande
- déploiements
- détaillé
- développement
- Développement
- directement
- discuter
- Commande
- Diversion
- Docker
- domaines
- Ne pas
- down
- download
- effet
- encourager
- crypté
- chiffrement
- l'application
- ingénieur
- ENGINEERING
- assurer
- Entrer
- Entreprise
- clients entreprise
- Environment
- environnements
- Ether (ETH)
- événement
- événements
- tout le monde
- exemple
- exemples
- exécution
- existant
- Développer vous
- attendu
- attend
- Découvrez
- explorateur
- Explorer
- extension
- équitablement
- famille
- Fonctionnalité
- Déposez votre dernière attestation
- Fichiers
- Prénom
- Flexibilité
- Focus
- suivre
- Abonnement
- Pour
- cadres
- Test d'anglais
- de
- plein
- fonctions
- plus
- avenir
- Gain
- généralement
- obtention
- considérablement
- ait eu
- Vous avez
- he
- lourd
- levage de charges lourdes
- aider
- a aidé
- ici
- ici
- augmentation
- très
- sa
- organisé
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- Moyeu
- IAM
- ICON
- Active
- if
- image
- satellite
- importer
- in
- comprendre
- inclus
- Infrastructure
- contribution
- idées.
- installer
- installation
- Installé
- installer
- instance
- Des instructions
- Interactif
- développement
- introduit
- IOT
- IT
- SES
- Emploi
- Emplois
- ACTIVITES
- clés
- laboratoire
- plus tard
- Nouveautés
- apprentissage
- lifting
- comme
- Gamme
- Liste
- Listé
- charge
- locales
- localement
- emplacement
- enregistrer
- Location
- LOOKS
- aime
- click
- machine learning
- Entrée
- Fabrication
- gérés
- gestion
- manière
- matplotlib
- maximales
- Mai..
- Menu
- Métrique
- pourrait
- minimum
- ML
- Mode
- numériques jumeaux (digital twin models)
- moto
- en mouvement
- Mystère
- prénom
- Besoin
- nécessaire
- Besoins
- Nouveauté
- cahier
- ordinateurs portables
- maintenant
- numpy
- of
- officiel
- on
- uniquement
- ouvert
- open source
- Option
- or
- sortie
- plus de
- superviser
- propre
- Pacifique
- paquet
- Forfaits
- pandas
- paramètres
- passionné
- chemin
- Payer
- autorisations
- Plateformes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politiques
- politique
- Post
- pratiques
- préfère
- préféré
- précédemment
- Directeur
- processus
- Produits
- fournir
- fournit
- Push
- Python
- RE
- monde réel
- réduit
- Les relations
- restant
- À PLUSIEURS REPRISES
- remplacer
- Rapports
- conditions
- Exigences
- a besoin
- ressource
- Ressources
- résultant
- recyclage
- Faites un clic droit
- Rôle
- rôle
- Courir
- pour le running
- fonctionne
- SA
- sagemaker
- Pipelines SageMaker
- même
- Exemple d'ensemble de données
- Épargnez
- mise à l'échelle
- scénarios
- calendrier
- prévu
- Travaux planifiés
- ordonnancement
- Sciences
- scientifiques
- scripts
- Rechercher
- Section
- les sections
- sécurité
- sur le lien
- service
- Services
- Session
- set
- mise
- Paramétres
- elle
- devrait
- montrer
- vitrine
- montré
- montré
- étapes
- simplifier
- simplifiant
- simplement
- petit
- So
- Logiciels
- développement de logiciels
- sur mesure
- Solutions
- groupe de neurones
- caractéristiques
- spécifié
- Dépenses
- Commencer
- j'ai commencé
- Commencez
- départs
- Déclaration
- Statut
- Étapes
- storage
- Boutique
- stockée
- fortement
- studio
- soumettre
- Avec succès
- tel
- équipe
- tensorflow
- terminal
- tester
- qui
- Les
- leur
- Là.
- Ces
- this
- trois
- Avec
- fiable
- à
- les outils
- Formation
- transition
- oui
- La confiance
- Essai
- type
- sous
- Mises à jour
- la mise à jour
- URI
- utilisé
- d'utiliser
- Utilisateur
- en utilisant
- Précieux
- version
- Voir
- vision
- souhaitez
- était
- façons
- we
- web
- services Web
- WELL
- quand
- qui
- comprenant
- dans les
- workflows
- de travail
- vos contrats
- années
- you
- Votre
- zéphyrnet