Gradio Lite und Transformers.js ermöglichen innovative serverlose Maschinenlernanwendungen im Browser

Kategorien:
No items found.
Freigegeben:
June 14, 2024

Gradio-Lite: Revolutionäre Serverless-Maschinenlern-Anwendungen mit Transformers.js

Einführung

In der schnelllebigen Welt der künstlichen Intelligenz und des maschinellen Lernens ist es von entscheidender Bedeutung, Technologie zu entwickeln, die sowohl leistungsstark als auch zugänglich ist. Gradio-Lite und Transformers.js repräsentieren diese Art von Innovation, indem sie Entwicklern ermöglichen, fortschrittliche Maschinenlern-Apps direkt im Browser und ohne Server-Infrastruktur zu erstellen. Diese Technologien wurden kürzlich in einer Reihe von Beiträgen auf verschiedenen Plattformen, einschließlich X (ehemals Twitter) und LinkedIn, sowie in technischen Dokumentationen und Demos vorgestellt.

Was ist Gradio-Lite?

Gradio ist eine beliebte Python-Bibliothek zum Erstellen interaktiver Maschinenlern-Apps. Traditionell erforderten Gradio-Anwendungen eine serverseitige Infrastruktur, was für Entwickler, die ihre Anwendungen hosten möchten, eine Hürde darstellte. Hier kommt Gradio-Lite ins Spiel. Gradio-Lite ist eine JavaScript-Bibliothek, die es ermöglicht, Gradio-Anwendungen direkt im Webbrowser auszuführen. Dies wird durch die Nutzung von Pyodide erreicht, einer Python-Laufzeitumgebung für WebAssembly, die die Ausführung von Python-Code im Browser ermöglicht.

Transformers.js und WebGPU

Transformers.js ist die JavaScript-Version der Transformers-Bibliothek, die es ermöglicht, Maschinenlernmodelle vollständig im Browser auszuführen. Mit der Einführung von WebGPU-Unterstützung in Transformers.js können diese Modelle nun effizienter und schneller arbeiten, was die Erstellung von Echtzeit-Anwendungen ermöglicht. Die Kombination von Gradio-Lite und Transformers.js bietet Entwicklern ein leistungsstarkes Werkzeugset zur Erstellung serverloser Maschinenlern-Anwendungen.

Erste Schritte mit Gradio-Lite und Transformers.js

Um eine "Hello World"-Gradio-App in Gradio-Lite zu erstellen, beginnen Sie mit der Erstellung einer neuen HTML-Datei. Importieren Sie das entsprechende JavaScript und CSS für das @gradio/lite-Paket mit folgendem Code:


<html>
   <head>
       <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
       <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
   </head>
</html>

Das  Tag

Fügen Sie irgendwo im Body Ihrer HTML-Seite (wo auch immer die Gradio-App gerendert werden soll) öffnende und schließende  Tags ein:


<html>
   <head>
       <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
       <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
   </head>
   <body>
       <gradio-lite>
       </gradio-lite>
   </body>
</html>

Schreiben Ihrer Gradio-App

Nun schreiben Sie Ihre Gradio-App wie gewohnt in Python! Beachten Sie, dass in Python der Whitespace und die Einrückungen wichtig sind:


<html>
   <head>
       <script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.js"></script>
       <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite/dist/lite.css" />
   </head>
   <body>
       <gradio-lite>
       import gradio as gr

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

       gr.Interface(greet, "textbox", "textbox").launch()
       </gradio-lite>
   </body>
</html>

Vorteile der Verwendung von Gradio-Lite

Serverless Bereitstellung

Der Hauptvorteil von Gradio-Lite besteht darin, dass keine Server-Infrastruktur erforderlich ist. Dies vereinfacht die Bereitstellung, reduziert serverbezogene Kosten und erleichtert das Teilen Ihrer Gradio-Anwendungen mit anderen.

Niedrige Latenz

Durch die Ausführung im Browser bietet Gradio-Lite Interaktionen mit niedriger Latenz für Benutzer. Es ist nicht erforderlich, dass Daten zu einem Server hin und zurück reisen, was zu schnelleren Reaktionen und einem reibungsloseren Benutzererlebnis führt.

Privatsphäre und Sicherheit

Da die gesamte Verarbeitung im Browser des Benutzers erfolgt, erhöht Gradio-Lite die Privatsphäre und Sicherheit. Benutzerdaten verbleiben auf ihrem Gerät, was für ein beruhigendes Gefühl bezüglich der Datenverarbeitung sorgt.

Einschränkungen

Derzeit besteht die größte Einschränkung bei der Verwendung von Gradio-Lite darin, dass Ihre Gradio-Apps in der Regel mehr Zeit (normalerweise 5-15 Sekunden) benötigen, um initial im Browser zu laden. Dies liegt daran, dass der Browser die Pyodide-Laufzeit laden muss, bevor er Python-Code rendern kann.

Ein weiteres Problem ist, dass nicht jedes Python-Paket von Pyodide unterstützt wird. Während gradio und viele andere beliebte Pakete (einschließlich numpy, scikit-learn und transformers-js) in Pyodide installiert werden können, sollten Sie überprüfen, ob Ihre Abhängigkeiten in Pyodide enthalten sind oder mit micropip installiert werden können, wenn Ihre App viele Abhängigkeiten hat.

Fazit

Gradio-Lite und Transformers.js bieten eine aufregende Möglichkeit, leistungsstarke Maschinenlern-Anwendungen direkt im Browser zu erstellen, ohne dass eine serverseitige Infrastruktur erforderlich ist. Die Kombination dieser Technologien ermöglicht Entwicklern, interaktive und datenschutzfreundliche Anwendungen mit niedriger Latenz zu erstellen. Mit der kontinuierlichen Weiterentwicklung und Integration neuer Funktionen wie WebGPU wird die Zukunft dieser Technologien sicherlich spannend bleiben.

Quellen


https://www.gradio.app/guides/gradio-lite-and-transformers-js

https://www.linkedin.com/posts/whitphx_gradio-lite-and-transformers-js-activity-7192690083186008064-HNoF

https://www.gradio.app/guides/gradio-lite

https://twitter.com/_akhaliq/status/1762145947386085514

https://twitter.com/whitphx/status/1786600484268392734

https://github.com/gradio-app/gradio/issues/8317

https://www.gradio.app/guides/using-hugging-face-integrations

Was bedeutet das?
No items found.