Gradio als Brücke zwischen Machine Learning Modellen und Anwendern

Kategorien:
No items found.
Freigegeben:
September 12, 2024
Mindverse News

Gradio: Ein Werkzeug zur Vereinfachung der Entwicklung und Verbreitung von Machine Learning Modellen

Einführung in Gradio

Gradio ist ein Open-Source-Python-Paket, das es Entwicklern ermöglicht, schnell und einfach Demos oder Webanwendungen für ihre Machine Learning Modelle, APIs oder beliebige Python-Funktionen zu erstellen. Das Besondere an Gradio ist, dass man diese Demos oder Webanwendungen in wenigen Sekunden über die integrierten Sharing-Funktionen von Gradio teilen kann. Es sind keine Kenntnisse in JavaScript, CSS oder Webhosting erforderlich.

Installation und erste Schritte

Gradio erfordert Python 3.8 oder höher. Es wird empfohlen, Gradio mit pip zu installieren, das standardmäßig in Python enthalten ist. Führen Sie dazu folgenden Befehl im Terminal oder in der Kommandozeile aus:

pip install gradio

Für eine bessere Übersichtlichkeit des Codes wird Gradio in der Regel als "gr" importiert. Dies ist eine weit verbreitete Konvention, die Sie befolgen sollten, damit jeder, der mit Ihrem Code arbeitet, diesen leicht verstehen kann.

Erstellung Ihrer ersten Demo

Gradio kann in der bevorzugten Entwicklungsumgebung, im Jupyter Notebook, in Google Colab oder an jedem anderen Ort, an dem Sie Python schreiben, ausgeführt werden. Hier ist ein einfaches Beispiel:


import gradio as gr

def greet(name, intensity):
    return "Hello " * intensity + name + "!"

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
)

demo.launch()

    

Wenn Sie Ihren Code in einer Datei namens app.py geschrieben haben, führen Sie python app.py im Terminal aus. Die Demo wird in einem Browser unter http://localhost:7860 geöffnet, wenn sie aus einer Datei ausgeführt wird. Wenn Sie innerhalb eines Notebooks arbeiten, wird die Demo eingebettet im Notebook angezeigt.

Verstehen der Interface-Klasse

Um Ihre erste Demo zu erstellen, haben Sie eine Instanz der gr.Interface-Klasse erstellt. Diese Klasse ist darauf ausgelegt, Demos für Machine Learning Modelle zu erstellen, die eine oder mehrere Eingaben akzeptieren und eine oder mehrere Ausgaben zurückgeben. Die Interface-Klasse hat drei Hauptargumente:

  • fn: Die Funktion, um die eine Benutzeroberfläche (UI) erstellt werden soll
  • inputs: Die Gradio-Komponente(n) für die Eingabe. Die Anzahl der Komponenten sollte der Anzahl der Argumente in Ihrer Funktion entsprechen.
  • outputs: Die Gradio-Komponente(n) für die Ausgabe. Die Anzahl der Komponenten sollte der Anzahl der Rückgabewerte Ihrer Funktion entsprechen.

Das fn-Argument ist sehr flexibel – Sie können jede beliebige Python-Funktion übergeben, die Sie mit einer UI umhüllen möchten. Die input- und output-Argumente nehmen eine oder mehrere Gradio-Komponenten an.

Teilen Ihrer Demo

Gradio ermöglicht es Ihnen, eine Machine Learning-Demo einfach zu teilen, ohne sich um das Hosting auf einem Webserver kümmern zu müssen. Setzen Sie einfach share=True in launch(), und eine öffentlich zugängliche URL wird für Ihre Demo erstellt. Hier ist ein Beispiel:


import gradio as gr

def greet(name):
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
demo.launch(share=True)

    

Wenn Sie diesen Code ausführen, wird eine öffentliche URL für Ihre Demo in wenigen Sekunden erstellt, etwas wie: https://a23dsf231adb.gradio.live. Nun kann jeder weltweit Ihre Gradio-Demo von seinem Browser aus ausprobieren, während das Machine Learning Modell und alle Berechnungen weiterhin lokal auf Ihrem Computer ausgeführt werden.

Gradio: Mehr als nur die Interface-Klasse

Gradio bietet noch viele weitere Funktionen und Klassen:

Chatbots mit gr.ChatInterface

Gradio enthält eine weitere High-Level-Klasse, gr.ChatInterface, die speziell dafür entwickelt wurde, Chatbot-UIs zu erstellen. Ähnlich wie bei der Interface-Klasse geben Sie eine Funktion an, und Gradio erstellt eine voll funktionsfähige Chatbot-UI.

Individuelle Demos mit gr.Blocks

Gradio bietet auch einen Low-Level-Ansatz zur Gestaltung von Webanwendungen mit flexibleren Layouts und Datenflüssen mit der gr.Blocks-Klasse. Blocks ermöglicht es Ihnen, Dinge wie die Position von Komponenten auf der Seite zu steuern, komplexe Datenflüsse zu handhaben und Eigenschaften/Sichtbarkeit von Komponenten basierend auf Benutzerinteraktionen zu aktualisieren – alles in Python.

Gradio-Ökosystem

Gradio ist ein umfassendes Ökosystem von Python- und JavaScript-Bibliotheken, mit denen Sie Machine Learning-Anwendungen erstellen oder diese programmatisch in Python oder JavaScript abfragen können. Hier sind einige weitere Teile des Gradio-Ökosystems:

  • Gradio Python Client (gradio_client): Programmatische Abfragen von Gradio-Apps in Python.
  • Gradio JavaScript Client (@gradio/client): Programmatische Abfragen von Gradio-Apps in JavaScript.
  • Gradio-Lite (@gradio/lite): Schreiben von Gradio-Apps in Python, die vollständig im Browser laufen (kein Server erforderlich!) dank Pyodide.
  • Hugging Face Spaces: Der beliebteste Ort, um Gradio-Anwendungen kostenlos zu hosten!

Schlussbemerkung

Gradio ist ein leistungsstarkes Werkzeug, das die Entwicklung und Verbreitung von Machine Learning Modellen erheblich erleichtert. Mit seinen vielfältigen Funktionen und der einfachen Handhabung bietet es Entwicklern eine hervorragende Plattform, um ihre Modelle und Anwendungen zu präsentieren und mit anderen zu teilen.

Quellen

- https://github.com/gradio-app/gradio/blob/main/README.md - https://github.com/hpcaitech/Open-Sora/blob/main/gradio/README.md - https://www.gradio.app/docs/python-client/version-1-release
Was bedeutet das?