Streamlit: Ein wichtiger Schritt bei der Verarbeitung von Daten in Machine Learning ist ihre grafische Darstellung, um sie zu visualisieren und ihr Verhalten besser zu verstehen. Daher müssen Personen, die einen Beruf wie Data Scientist ausüben, regelmäßig Daten interpretieren und für andere Teams in ihrer Firma visualisieren.
Erstellen von Web-Apps mit Streamlit
Im Gegensatz zu mobilen Anwendungen, die auf einer Software außerhalb der Software, die ihre Anfragen ausführt, installiert werden, können Web-Apps direkt online bedient werden. Die Verarbeitung der Anweisungen von Webseiten findet nicht auf zwei verschiedenen Softwareprogrammen statt, sondern auf demselben, das Webbrowser genannt wird.
Die Streamlit-Bibliothek bietet eine sehr interessante Alternative für den Aufbau und die gemeinsame Nutzung von Web-Apps. Denn im Gegensatz zu Flask, FastAPI und Django, die ebenfalls Python-Frameworks sind, ermöglicht Streamlit die Erstellung des Frontends auf innovative Weise: Der Frontend-Teil wird normalerweise in HTML, CSS und JavaScript entwickelt, die komplexe Programmiersprachen sind, während Streamlit keine dieser Programmierfähigkeiten erfordert.
Es ersetzt diese Anwendungen jedoch nicht. Flask und Django z. B. haben im Vergleich zu Streamlit unterschiedliche Besonderheiten für unterschiedliche Bedürfnisse. Im Gegensatz zu Streamlit ermöglicht Flask die Erstellung eines Backends, das den verborgenen Teil der Verarbeitung von Anfragen darstellt, die von einem Benutzer auf einer Website gestellt werden. Django hingegen ist eine viel komplexere Bibliothek, die es ermöglicht, sowohl Front- als auch Backend-Entwicklung zu betreiben. Sie zwingt dich, den Code nach einer vorgegebenen Architektur zu schreiben, was ihre Verwendung weniger komfortabel macht.
Streamlit ermöglicht es dir, eine App zu erstellen, indem du einfach Python-Code schreibst. Dadurch wird es zu einem praktischen und leicht zugänglichen Mittel für alle, die Python-Kenntnisse haben und eine Web-App erstellen möchten. Sie ist ein einfaches und schnelles Werkzeug, um Datenvisualisierung in eine Anwendung zu integrieren. Auch die Integration von Machine-Learning-Modellen in eine Schnittstelle ist einfach zu bewerkstelligen. Mithilfe der App kann jeder seine Modelle vorhersagen und an den Daten testen, die er mit Kunden oder Mitarbeitern hat. Das Beste an Streamlit ist, dass man sich nicht um die Schnittstelle kümmern muss, da die Nutzung durch die API (Application Programming Interface) mit wenigen Befehlszeilen vereinfacht wird.
Kompatibilität
Ein weiterer Pluspunkt ist, dass sich der Streamlit-Framework mit mehreren Softwareplattformen verbinden lässt. Es ist mit den meisten Datavizz-Frameworks (Matplotlib, Plotly, Seaborn,…) und Machine Learning-Frameworks (Pandas, Pytorch,…) kompatibel. Dies steigert die Produktivität und senkt die Kosten für die Softwareentwicklung.
Installation
Ein weiterer Pluspunkt ist, dass sich das Streamlit-Framework mit mehreren Softwareplattformen verbinden lässt. Es ist mit den meisten Datavizz-Frameworks (Matplotlib, Plotly, Seaborn,…) und Machine Learning-Frameworks (Pandas, Pytorch,…) kompatibel. Dies steigert die Produktivität und senkt die Kosten für die Softwareentwicklung.
Beispiele für Befehle
Um zu lernen, wie man Streamlit benutzt, schaust du dir am besten die Dokumentation der Plattform an.
Zum besseren Verständnis, wie die Benutzeroberfläche funktioniert, findest du hier zwei Beispiele für Befehle.
Die Software zeigt Text (Titel, Untertitel oder sogar LaTex-Code für mathematische Ausdrücke und Formeln) und/oder alle Arten von Elementen an: Dataframes, Metriken, Graphen, etc.
Verschiedene Arten von Interaktionsobjekten, sogenannte Widgets: Sliders, Checkboxen… sind verfügbar.
Ein gutes Werkzeug, um mit Streamlit anzufangen, ist die Streamlit cheat sheet app, die nützliche Code-Beispiele zeigt, die man kennen sollte.
Wenn du einen Schritt weiter gehen willst, ist der Code der Software für alle sichtbar und kann wiederverwendet werden, um die Anwendung eventuell zu verbessern, indem du Funktionen auf der Benutzeroberfläche hinzufügst.
Das Caching
Wenn der Code Änderungen an der Anwendung erfährt, gibt es im Quellcode des Python-Skripts zwei Optionen:
- rerun. Dies dient dazu, die Anwendung zu aktualisieren.
- always rerun. Dies dient dazu, die Anwendung ständig laufen zu lassen, wenn sie Änderungen erfährt, um sie zu aktualisieren.
Die zweite Option bietet eine einfache und schnelle Ausführung. Wenn du diese Option wählst, erhältst du sofort Ergebnisse von deinem Code. Da der Code jedoch ständig kompiliert wird, ist es wichtig, eine Lösung für kostspielige Operationen wie das Herunterladen von Daten zu finden. Hierfür ist die Notation st.cache sehr nützlich. Sie löst einen Prozess aus, bei dem Daten im Cache-Speicher abgelegt werden.
Sobald das Demoprojekt abgeschlossen ist, ist die Bereitstellung in der Cloud oder einem anderen Bereitstellungssystem durchaus machbar, um die erzielten Ergebnisse einem breiteren Publikum zugänglich zu machen.
Fazit
Zusammenfassend lässt sich sagen, dass Streamlit ein praktisches und einfach zu bedienendes Werkzeug für jeden Machine-Learning-Ingenieur und Data Scientist ist. Auf der ästhetischen Seite bietet die Anwendung ein sehr zufriedenstellendes Erscheinungsbild.
Der Hauptnegativpunkt von Streamlit betrifft das Ausführungssystem. Es handelt sich nämlich um eine Anwendung, die erneut ausgeführt wird, sobald eine neue Funktion hinzugefügt wird, was die Leistung der Modelle beeinträchtigen kann.
Du kannst dir einen Überblick über Beispiele von Webanwendungen verschaffen, die mit Streamlit bei DataScientest erstellt wurden, indem du das unter diesem Link zugängliche Studio von Datascientest nutzt.