JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

Streamlit ou l’outil pour présenter votre travail de Machine Learning

En Machine Learning, une étape importante dans le traitement de données est leurs représentations graphiques afin de pouvoir les visualiser et mieux comprendre leurs comportements. Ainsi, les personnes exerçant des métiers tels que Data Scientist sont régulièrement amenés à devoir interpréter et faire visualiser de la data aux autres équipes de leur entreprise.

Un outil pratique pour les Data Scientists ou tout ingénieur en Machine Learning ayant pour objectif de présenter le travail fourni (comme cela peut être fait par Powerpoint) tout en vulgarisant les manipulations faites sur les données est la librairie Python nommée Streamlit.

Streamlit : une librairie Python open source

Streamlit est une librairie open source Python créée en 2018. Open Source signifie que le code source est accessible à tous. Cela implique qu’il est réutilisable par tous les utilisateurs pour créer son propre logiciel et permet ainsi une grande flexibilité sur les besoins de chacun. L’open source qui est devenu un véritable mouvement dans le développement logiciel, encourage la production collaboratrice et permet, ainsi, d’améliorer la qualité des logiciels.

Création de Web app

À l’inverse des applications mobiles qui sont installées sur un logiciel extérieur au logiciel qui exécute leurs demandes, les web apps sont directement manipulables en ligne. Le traitement des instructions des pages web ne se fait pas sur deux logiciels distincts, mais sur le même appelé navigateur web.

La librairie Streamlit offre une alternative très intéressante pour la construction et le partage des web apps. En effet, contrairement à Flask, FastAPI et Django qui sont également des frameworks de Python, Streamlit permet de créer du front-end de manière innovante : la partie front-end est généralement développée en langages HTML, CSS et JavaScript qui sont des langages de programmation complexes, tandis que Streamlit ne requiert aucune de ces compétences de programmation. 

Cependant, elle ne remplace pas ces applications. Flask et Django, par exemple, ont des spécificités différentes pour des besoins différents par rapport à Streamlit. À l’opposé de Streamlit, Flask permet la création de back-end qui est la partie cachée du traitement des demandes réalisées par un utilisateur sur un site. En revanche, Django est une librairie bien plus complexe qui permet de faire du développement à la fois en front-end et back-end. Elle contraint de rédiger le code selon une architecture imposée, ce qui rend son utilisation moins commode.

Streamlit permet de créer une app en écrivant simplement un code Python. Ainsi, elle en devient un moyen pratique et très accessible pour toute personne ayant des connaissances en python et souhaitant réaliser une web app. Elle est un outil facile et rapide pour intégrer de la visualisation de data dans une application. L’intégration de modèles de Machine Learning en interface est, également, simple à réaliser. À travers l’application, toute personne peut, alors, prédire et tester ses modèles sur les données qu’elle dispose avec des clients ou des collaborateurs. Le point fort de Streamlit est qu’il n’y a pas besoin de se soucier de l’interface, car son utilisation est simplifiée grâce à son interface de programmation d’application (API) qui nécessite peu de lignes de commande.

Compatibilité

Un autre point positif est que le framework Streamlit peut se connecter à plusieurs plateformes logicielles. Elle est compatible avec la majorité des frameworks de dataviz (Matplotlib, Plotly, Seaborn,..) et de Machine Learning (Pandas, Pytorch,…). Cela fait gagner en productivité et abaisse, également, de façon significative les coûts de développement logiciel.

Installation

Pour installer Streamlit, rien de plus simple. On peut le faire sur la console Anaconda grâce à la commande ’pip installer streamlit’. Streamlit est installé ! Pour en faire usage dans un fichier Python, comme pour tout package Python, il suffit simplement d’y faire appel avec le code import.

Exemples de commandes

Pour apprendre à utiliser Streamlit, le mieux est d’aller voir la documentation de la plateforme.

Pour une meilleure compréhension du fonctionnement de l’interface, voici deux exemples de commandes.

Le logiciel affiche du texte (titres, sous-titres ou même du code LaTex pour des expressions et formules mathématiques) et/ou toutes sortes d’éléments : des dataframes, métriques, graphes, etc.

Différents types d’objets d’interaction appelés widgets : Sliders, Checkbox… sont disponibles.

Un bon outil pour débuter en Streamlit est l’application Streamlit cheat sheet qui présente des exemples de codes utiles à connaître.

Pour aller plus loin, le code du logiciel est visible par tous et peut être réutilisé pour éventuellement améliorer l’application en ajoutant des fonctionnalités sur l’interface.

La mise en cache

Lorsque le code subit des changements sur l’application, il y a deux options qui s’offrent à l’utilisateur dans le code source du Python script :

  • rerun. Cela sert à rafraîchir l’application.
  • always rerun. Cela permet de faire tourner continuellement l’application lorsque celle-ci subit des modifications pour la réactualiser

La seconde option propose une facilité et rapidité d’exécution. En la choisissant, on obtient des résultats immédiats de notre code. Or, le code étant constamment compilé, il est important de trouver une solution pour les opérations coûteuses comme celle de télécharger des données. Pour cela, la notation st.cache est très utile. Elle déclenche un processus de stockage de données en mémoire cache.

Une fois le projet de démo terminé, le déploiement sur le cloud ou autre système de déploiement est tout à fait réalisable afin de pouvoir partager les résultats obtenus à un public plus large.

Conclusion

Pour conclure, Streamlit est indéniablement un outil pratique et simple à utiliser pour tout ingénieur en Machine Learning et tout Data Scientist. Du côté esthétique, l’application donne un visuel très satisfaisant.  

Le principal point négatif de Streamlit concerne le système d’exécution. En effet, il s’agit d’une application qui est ré-exécutée dès l’ajout d’une nouvelle fonction, ce qui peut jouer sur la performance des modèles. 

Vous pouvez avoir un aperçu d’exemples d’application web créés avec Streamlit à datascientest grâce au studio de datascientest accessible sur ce lien

Facebook
Twitter
LinkedIn

Tag de l'article :

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone

S'inscrire à la JPO :

Vous souhaitez recevoir notre newsletter data 💌 hebdomadaire ?