In 4 Schritten eine ML-App nach MS Azure bringen
Wie man Machine-Learning Modelle mittels Docker in Azure betreibt
Aufgrund von neuen Tools wie z.B. Gradio, musst du heute kein erfahrener Front-End Entwickler mehr sein, um selbst eine eigene App zu entwickeln. Schwieriger wird es hingegen, wenn du deine Anwendung tatsächlich Live betreiben willst, aber selbst keinen eigene Server besitzt oder dir einfach die nötige Rechenpower fehlt, weil du beispielsweise ein rechenintensives Machine-Learning Modell nutzt.
Tatsächlich ist es aber gar nicht so schwierig und lässt sich relativ einfach und schnell in ein paar Schritten umsetzen. Du benötigst dafür lediglich 3 Dinge:
eine Gradio App
einen Docker Container
einen MS Azure Account
Gradio ist eine Python Library, um ein User Interfaces für Machine-Learning Modelle zu erstellen. Du kannst dafür natürlich auch andere Frameworks wie z.B. Flask oder FastAPI nutzen, was aber mehr eigenes Coding erfordert.
Docker ist eine Art Container für eine Software, in den alles reingepackt wird, was zum Laufen der Anwendung benötigt wird. Dadurch sind sie einfach zu teilen, effizient und lassen sich leicht auf verschiedenen Systemen betreiben.
MS Azure bietet dir die Möglichkeit deine Anwendung in der Cloud zu betreiben. Das bedeutet, du musst dir keine Gedanken um Speicher, Rechenpower oder Sicherheit machen und deine Anwendung ist leicht skalierbar, solltest Du einmal mehr oder weniger Hardware benötigen.
1. Gradio App bauen
Der erste Schritt besteht darin, deinen Python Code in eine lauffähige Anwendung umzubauen. Das bedeutet, du benötigst eine Oberfläche, mit der die App bedient werden kann. Die Python Library Gradio macht dir das ziemlich einfach. Dazu musst du lediglich folgendes tun:
deinen gesamten Code in eine Funktion packen.
definieren, welche Eingaben oder Dateien deine Anwendung benötigt
festlegen, wie das Ergebnis aussehen soll, dass der User angezeigt bekommt
2. App in Container packen
Im zweiten Schritt erstellen wir ein sogenanntes Image unserer Anwendung. Das machen wir mit Docker und benötigen dafür nur:
Unsere App, die wir gerade erstellt haben
Ein Requirements File, in dem alle benötigten Imports unserer App stehen
Ein Dockerfile, welches festlegt, wie unser Container aussehen soll
3. Container in Azure registrieren
Jetzt gehen wir rüber in MS Azure, um unseren Container sozusagen anzumelden. Das macht man mit Hilfe der Azure Container Registry, in die dann nachher unser Container geladen wird.
4. Azure App Service erstellen
Da wir später unsere Anwendung über eine URL aufrufen wollen, benötigen wir nun noch eine Azure Web App, die dann auf unseren Container zugreifen kann, um die Anwendung zu starten.
Und das war es. Beim ersten Aufruf dauert es ein wenig, bis das Image ausgepackt wurde, aber dann ist deine App in Azure und kann dort von jedem aufgerufen werden.