Développer des interfaces Web pour interagir avec un modèle d'apprentissage automatique (ML) est une tâche fastidieuse. Avec Rationalisé, il est facile de développer des applications de démonstration pour votre solution de ML. Rationalisé est une bibliothèque Python open source qui facilite la création et le partage d'applications Web pour le ML et la science des données. En tant que data scientist, vous souhaiterez peut-être présenter vos résultats pour un ensemble de données ou déployer un modèle formé. Les applications Streamlit sont utiles pour présenter l'avancement d'un projet à votre équipe, obtenir et partager des informations avec vos responsables et même obtenir des commentaires des clients.
Avec l'environnement de développement intégré (IDE) de Amazon SageMakerStudio comprenant JupyterLab 3, nous pouvons créer, exécuter et servir des applications Web Streamlit à partir de ce même environnement à des fins de développement. Cet article explique comment créer et héberger des applications Streamlit dans Studio de manière sécurisée et reproductible sans aucun développement frontal fastidieux. Par exemple, nous utilisons une coutume Amazon Reconnaissance démo, qui annotera et étiquettera une image téléchargée. Cela servira de point de départ, et il peut être généralisé pour faire la démonstration de n'importe quel modèle ML personnalisé. Le code de ce blog se trouve dans ce GitHub référentiel.
Vue d'ensemble de la solution
Voici le schéma d'architecture de notre solution.
Un utilisateur accède d'abord à Studio via le navigateur. Le serveur Jupyter associé au profil utilisateur s'exécute dans l'instance Studio Amazon Elastic Compute Cloud (Amazon EC2). L'instance Studio EC2 contient l'exemple de code et la liste des dépendances. L'utilisateur peut exécuter l'application Streamlit, app.py, dans le terminal système. Studio exécute l'interface utilisateur JupyterLab dans un serveur Jupyter, découplé des noyaux de bloc-notes. Le serveur Jupyter est livré avec un proxy et nous permet d'accéder à notre application Streamlit. Une fois l'application en cours d'exécution, l'utilisateur peut lancer une session distincte via le proxy AWS Jupyter en ajustant l'URL.
Du point de vue de la sécurité, le proxy AWS Jupyter est étendu par l'authentification AWS. Tant qu'un utilisateur a accès au compte AWS, à l'ID de domaine Studio et au profil utilisateur, il peut accéder au lien.
Créer Studio à l'aide de JupyterLab 3.0
Studio avec JupyterLab 3 doit être installé pour que cette solution fonctionne. Les anciennes versions peuvent ne pas prendre en charge les fonctionnalités décrites dans cet article. Pour plus d'informations, reportez-vous à Amazon SageMaker Studio et SageMaker Notebook Instance sont désormais livrés avec les blocs-notes JupyterLab 3 pour augmenter la productivité des développeurs. Par défaut, Studio est fourni avec JupyterLab 3. Vous devez vérifier la version et la modifier si vous exécutez une version plus ancienne. Pour plus d'informations, reportez-vous à Gestion des versions de JupyterLab.
Vous pouvez configurer Studio à l'aide de Kit de développement AWS Cloud (AWS CDK); pour plus d'informations, reportez-vous à Configurer Amazon SageMaker Studio avec Jupyter Lab 3 à l'aide d'AWS CDK. Vous pouvez également utiliser la console SageMaker pour modifier les paramètres du domaine. Effectuez les étapes suivantes :
- Sur la console SageMaker, choisissez Domaines dans le volet de navigation.
- Sélectionnez votre domaine et choisissez Modifier.
- Pour Version par défaut de Jupyter Lab, assurez-vous que la version est définie sur JupyterLab 3.0.
(Facultatif) Créer un espace partagé
Nous pouvons utiliser la console SageMaker ou l'AWS CLI pour ajouter la prise en charge des espaces partagés à un domaine existant en suivant les étapes de la documentation ou de ce blog. La création d'un espace partagé dans AWS présente les avantages suivants :
- Collaboration : Un espace partagé permet à plusieurs utilisateurs ou équipes de collaborer sur un projet ou un ensemble de ressources, sans avoir à dupliquer les données ou l'infrastructure.
- Économies de coûts : au lieu que chaque utilisateur ou équipe crée et gère ses propres ressources, un espace partagé peut être plus rentable, car les ressources peuvent être regroupées et partagées entre plusieurs utilisateurs.
- Gestion simplifiée : avec un espace partagé, les administrateurs peuvent gérer les ressources de manière centralisée, plutôt que d'avoir à gérer plusieurs instances des mêmes ressources pour chaque utilisateur ou équipe.
- Évolutivité améliorée : un espace partagé peut être plus facilement agrandi ou réduit pour répondre à l'évolution des demandes, car les ressources peuvent être allouées dynamiquement pour répondre aux besoins des différents utilisateurs ou équipes.
- Sécurité renforcée : en centralisant les ressources dans un espace partagé, la sécurité peut être améliorée, car les contrôles d'accès et la surveillance peuvent être appliqués plus facilement et de manière cohérente.
Installer les dépendances et cloner l'exemple sur Studio
Ensuite, nous lançons Studio et ouvrons le terminal système. Nous utilisons l'IDE SageMaker pour cloner notre exemple et le terminal système pour lancer notre application. Le code de ce blog se trouve dans ce GitHub référentiel. Nous commençons par cloner le référentiel :
Ensuite, nous ouvrons le terminal système.
Une fois cloné, dans le terminal système, installez les dépendances pour exécuter notre exemple de code en exécutant la commande suivante. Cela va d'abord installer les dépendances en exécutant pip install --no-cache-dir -r requirements.txt
L’ no-cache-dir
flag désactivera le cache. La mise en cache permet de stocker les fichiers d'installation (.whl
) des modules que vous installez via pip. Il stocke également les fichiers source (.tar.gz
) pour éviter de les télécharger à nouveau lorsqu'ils n'ont pas expiré. S'il n'y a pas d'espace sur notre disque dur ou si nous voulons garder une image Docker aussi petite que possible, nous pouvons utiliser cet indicateur pour que la commande s'exécute jusqu'à la fin avec une utilisation minimale de la mémoire. Ensuite, le script installera les packages iproute
ainsi que jq
, qui sera utilisé à l'étape suivante.sh setup.sh
Exécutez la démo Streamlit et créez un lien partageable
Pour vérifier que toutes les dépendances sont correctement installées et pour afficher la démo Amazon Rekognition, exécutez la commande suivante :
Le numéro de port hébergeant l'application sera affiché.
Notez que lors du développement, il peut être utile de relancer automatiquement le script lorsque app.py
est modifié sur le disque. Pour ce faire, nous pouvons donc modifier le runOnSave option de configuration en ajoutant le --server.runOnSave true
drapeau à notre commande :
La capture d'écran suivante montre un exemple de ce qui doit être affiché sur le terminal.
Dans l'exemple ci-dessus, nous voyons le numéro de port, l'ID de domaine et l'URL du studio sur lesquels nous exécutons notre application. Enfin, nous pouvons voir l'URL que nous devons utiliser pour accéder à notre application streamlit. Ce script modifie l'URL de Studio, en remplaçant lab?
comprenant proxy/[PORT NUMBER]/
. La démo de détection d'objets Rekognition s'affichera, comme illustré dans la capture d'écran suivante.
Maintenant que l'application Streamlit fonctionne, nous pouvons partager cette URL avec toute personne ayant accès à cet ID de domaine Studio et à ce profil utilisateur. Pour faciliter le partage de ces démos, nous pouvons vérifier l'état et répertorier toutes les applications streamlit en cours d'exécution en exécutant la commande suivante : sh status.sh
Nous pouvons utiliser des scripts de cycle de vie ou des espaces partagés pour étendre ce travail. Au lieu d'exécuter manuellement les scripts shell et d'installer les dépendances, utilisez scripts de cycle de vie pour rationaliser ce processus. Pour développer et étendre cette application avec une équipe et partager des tableaux de bord avec des pairs, utilisez espaces partagés. En créant des espaces partagés dans Studio, les utilisateurs peuvent collaborer dans l'espace partagé pour développer une application Streamlit en temps réel. Toutes les ressources d'un espace partagé sont filtrées et étiquetées, ce qui facilite la concentration sur les projets ML et la gestion des coûts. Reportez-vous au code suivant pour créer vos propres applications dans Studio.
Nettoyer
Une fois que nous avons fini d'utiliser l'application, nous voulons libérer les ports d'écoute. Pour obtenir tous les processus en cours d'exécution et les libérer, nous pouvons exécuter notre script de nettoyage : sh cleanup.sh
Conclusion
Dans cet article, nous avons montré un exemple de bout en bout d'hébergement d'une démo Streamlit pour une tâche de détection d'objet à l'aide d'Amazon Rekognition. Nous avons détaillé les motivations pour créer des applications Web rapides, les considérations de sécurité et la configuration requise pour exécuter notre propre application Streamlit dans Studio. Enfin, nous avons modifié le modèle d'URL dans notre navigateur Web pour lancer une session distincte via le proxy AWS Jupyter.
Cette démo vous permet de télécharger n'importe quelle image et de visualiser les sorties d'Amazon Rekognition. Les résultats sont également traités et vous pouvez télécharger un fichier CSV avec tous les cadres de délimitation via l'application. Vous pouvez étendre ce travail pour annoter et étiqueter votre propre jeu de données, ou modifier le code pour présenter votre modèle personnalisé !
À propos des auteurs
Dipika Khullar est un ingénieur ML dans le Laboratoire de solutions Amazon ML. Elle aide les clients à intégrer des solutions ML pour résoudre leurs problèmes commerciaux. Plus récemment, elle a construit des pipelines de formation et d'inférence pour les clients des médias et des modèles prédictifs pour le marketing.
Marcelo Aberlé est ingénieur ML au sein de l'organisation AWS AI. Il dirige les efforts de MLOps au Laboratoire de solutions Amazon ML, aidant les clients à concevoir et à mettre en œuvre des systèmes de ML évolutifs. Sa mission est de guider les clients dans leur parcours ML d'entreprise et d'accélérer leur parcours ML vers la production.
Yash Shah est directeur scientifique au Laboratoire de solutions Amazon ML. Lui et son équipe de scientifiques appliqués et d'ingénieurs ML travaillent sur une gamme de cas d'utilisation ML dans les domaines de la santé, du sport, de l'automobile et de la fabrication.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :est
- $UP
- 100
- 7
- a
- au dessus de
- accélérer
- accès
- Compte
- à travers
- administrateurs
- AI
- Tous
- consacrée
- permet
- Amazon
- Amazon EC2
- Amazon Reconnaissance
- Amazon Sage Maker
- Amazon SageMakerStudio
- ainsi que
- chacun.e
- appli
- applications
- appliqué
- applications
- architecture
- SONT
- AS
- d'aspect
- associé
- At
- Authentification
- automatiquement
- l'automobile
- AWS
- BE
- avantages.
- Blog
- renforcer
- boîtes
- navigateur
- construire
- Développement
- construit
- la performance des entreprises
- by
- Cache
- CAN
- cas
- Change
- en changeant
- vérifier
- Selectionnez
- le cloud
- code
- collaborons
- comment
- complet
- achèvement
- calcul
- considérations
- Console
- contrôles
- rentable
- Costs
- engendrent
- La création
- Customiser
- Clients
- données
- science des données
- Data Scientist
- Réglage par défaut
- demandes
- Démos
- déployer
- Conception
- détaillé
- Détection
- développer
- Développeur
- développement
- Développement
- différent
- Docker
- domaine
- down
- download
- motivation
- dynamiquement
- chacun
- plus facilement
- même
- efforts
- end-to-end
- ingénieur
- Les ingénieurs
- Entreprise
- Environment
- Pourtant, la
- exemple
- existant
- existe
- étendre
- Fonctionnalités:
- Réactions
- Déposez votre dernière attestation
- Fichiers
- finalement
- Prénom
- Focus
- Abonnement
- Pour
- trouvé
- Gratuit
- De
- gagner
- obtenez
- obtention
- guide
- Dur
- disque dur
- Vous avez
- ayant
- la médecine
- utile
- aider
- aide
- hôte
- hébergement
- Comment
- How To
- HTML
- HTTPS
- ID
- image
- Mettre en oeuvre
- amélioré
- in
- d'information
- Infrastructure
- initier
- idées.
- installer
- Installé
- installer
- instance
- plutôt ;
- intégrer
- des services
- interagir
- interfaces
- IT
- chemin
- jpg
- XNUMX éléments à
- laboratoire
- Libellé
- lancer
- conduisant
- apprentissage
- Bibliothèque
- vos produits
- LINK
- Liste
- Écoute
- Location
- click
- machine learning
- a prendre une
- FAIT DU
- Fabrication
- gérer
- gestion
- manager
- Gestionnaires
- les gérer
- manière
- manuellement
- fabrication
- Stratégie
- Mai..
- Médias
- Découvrez
- Mémoire
- pourrait
- minimal
- Mission
- ML
- MLOps
- modèle
- numériques jumeaux (digital twin models)
- modifié
- modifier
- Modules
- Stack monitoring
- PLUS
- (en fait, presque toutes)
- motivations
- plusieurs
- Navigation
- Besoin
- Besoins
- next
- cahier
- nombre
- objet
- Détection d'objet
- of
- on
- ouvert
- open source
- organisation
- décrit
- grandes lignes
- propre
- Forfaits
- pain
- chemin
- Patron de Couture
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- possible
- Post
- d'ouvrabilité
- processus
- Traité
- les process
- Vidéo
- Profil
- Progrès
- Projet
- projets
- procuration
- des fins
- Python
- Rapide
- gamme
- plutôt
- réal
- en temps réel
- récemment
- dépôt
- conditions
- Exigences
- Resources
- Résultats
- Courir
- pour le running
- sagemaker
- même
- Épargnes
- Évolutivité
- évolutive
- Sciences
- Scientifique
- scientifiques
- scripts
- sécurisé
- sécurité
- séparé
- besoin
- Session
- set
- Paramétres
- installation
- Partager
- commun
- partage
- coquillage
- devrait
- vitrine
- montré
- Spectacles
- petit
- So
- sur mesure
- Solutions
- RÉSOUDRE
- Identifier
- Space
- espaces
- Sports
- Commencer
- Commencez
- Statut
- étapes
- Étapes
- Boutique
- STORES
- rationaliser
- studio
- Avec succès
- Support
- combustion propre
- Système
- Tâche
- équipe
- équipes
- terminal
- qui
- La
- La Source
- leur
- Les
- Ces
- Avec
- fiable
- long
- à
- qualifié
- Formation
- ui
- téléchargé
- URL
- us
- Utilisation
- utilisé
- Utilisateur
- utilisateurs
- vérifier
- version
- Voir
- web
- Applications Web
- navigateur web
- Quoi
- qui
- tout en
- WHO
- sera
- comprenant
- dans les
- sans
- activités principales
- de travail
- Vous n'avez
- Votre
- zéphyrnet