Large Language Models mit Keras und TensorFlow Lite auf dem Gerät

1. Hinweis

Einer der interessantesten Durchbrüche im Bereich des maschinellen Lernens sind die Large Language Models (LLMs). Sie können verwendet werden, um Text zu generieren, Sprachen zu übersetzen und Fragen umfassend und informativ zu beantworten. LLMs wie LaMDA und PaLM von Google werden mit riesigen Mengen an Textdaten trainiert, um statistische Muster und Beziehungen zwischen Wörtern und Wortgruppen zu erlernen. Auf diese Weise können sie Text generieren, der einem von Menschen geschriebenen Text ähnelt, und Sprachen mit hoher Genauigkeit übersetzen.

LLMs haben einen sehr großen Speicherplatz und benötigen in der Regel viel Rechenleistung. Das bedeutet, dass sie in der Regel in der Cloud bereitgestellt werden und für On-Device-Machine-Learning (ODML) aufgrund der begrenzten Rechenleistung auf Mobilgeräten eine ziemliche Herausforderung darstellen. Es ist jedoch möglich, kleinere LLMs (z. B. GPT-2) auf einem modernen Android-Gerät auszuführen und dennoch beeindruckende Ergebnisse zu erzielen.

In dieser Demo wird eine Version des PaLM-Modells von Google mit 1,5 Milliarden Parametern auf Google Pixel 7 Pro ohne Wiedergabegeschwindigkeit ausgeführt.

PaLM auf Pixel 7 Pro

In diesem Codelab lernen Sie die Techniken und Tools zum Erstellen einer LLM-basierten App mit GPT-2 als Beispielmodell kennen. Dabei lernen Sie Folgendes:

  • KerasNLP zum Laden eines vortrainierten LLM
  • KerasNLP zur Feinabstimmung eines LLM
  • TensorFlow Lite zum Konvertieren, Optimieren und Bereitstellen des LLM unter Android

Vorbereitung

  • Fortgeschrittene Kenntnisse über Keras und TensorFlow Lite
  • Grundkenntnisse in der Android-Entwicklung

Lerninhalte

  • Mit KerasNLP ein vortrainiertes LLM laden und optimieren
  • LLM quantisieren und in TensorFlow Lite umwandeln
  • Inferenzen für das konvertierte TensorFlow Lite-Modell ausführen

Voraussetzungen

  • Zugriff auf Colab
  • Die neueste Version von Android Studio
  • Ein modernes Android-Gerät mit mehr als 4 GB RAM

2. Einrichten

So laden Sie den Code für dieses Codelab herunter:

  1. Rufen Sie für dieses Codelab das GitHub-Repository auf.
  2. Klicken Sie auf Code > Lade eine ZIP-Datei herunter, um den gesamten Code für dieses Codelab herunterzuladen.

Repository-Image

  1. Entpacke die heruntergeladene ZIP-Datei, um einen examples-Stammordner mit allen benötigten Ressourcen zu entpacken.

3. Start-App ausführen

  1. Ordner „examples/lite/examples/generative_ai/android“ in Android Studio importieren.
  2. Starten Sie den Android-Emulator und klicken Sie dann im Navigationsmenü auf execute.png Ausführen.

App ausführen und kennenlernen

Die App sollte auf deinem Android-Gerät gestartet werden. Die App heißt „Automatische Vervollständigung“. Die Benutzeroberfläche ist ziemlich einfach: Sie können einige Ausgangswörter in das Textfeld eingeben und auf Generieren tippen. Die App führt dann eine Inferenz auf einem LLM aus und generiert zusätzlichen Text basierend auf Ihrer Eingabe.

Wenn Sie jetzt nach der Eingabe einiger Wörter auf Erstellen tippen, passiert nichts. Das liegt daran, dass dort noch kein LLM ausgeführt wird.

Screenshot der Start-App

4. LLM für die Bereitstellung auf dem Gerät vorbereiten

5. Schließe die Android-App ab

Nachdem Sie das GPT-2-Modell in TensorFlow Lite konvertiert haben, können Sie es endlich in der App bereitstellen.

Anwendung ausführen

  1. Ziehen Sie die im letzten Schritt heruntergeladene Modelldatei autocomplete.tflite in den Ordner app/src/main/assets/ in Android Studio.

Modell zu Android Studio hinzufügen

  1. Klicken Sie im Navigationsmenü auf execute.png Ausführen und warten Sie, bis die Anwendung geladen wurde.
  2. Geben Sie einige Ausgangswörter in das Textfeld ein und tippen Sie dann auf Generieren.

Screenshot der fertigen App

6. Hinweise zu Responsible AI

Wie in der ursprünglichen Ankündigung zu OpenAI GPT-2 erwähnt, gibt es beim GPT-2-Modell wichtige Einschränkungen und Einschränkungen. Tatsächlich haben LLMs heutzutage in der Regel einige bekannte Herausforderungen wie Halluzinationen, anstößige Ergebnisse, Fairness und Voreingenommenheit. Das liegt daran, dass diese Modelle mit realen Daten trainiert werden, sodass sie reale Probleme widerspiegeln.

In diesem Codelab wird nur gezeigt, wie Sie mit TensorFlow-Tools eine auf LLMs unterstützte Anwendung erstellen. Das in diesem Codelab erstellte Modell dient nur zu Informationszwecken und ist nicht für die Verwendung in einer Produktionsumgebung bestimmt.

Die LLM-Produktionsumgebung erfordert eine sorgfältige Auswahl von Trainings-Datasets und umfassende Sicherheitsmaßnahmen. Wenn Sie mehr über Responsible AI im Kontext von LLMs erfahren möchten, sollten Sie sich die technische Veranstaltung Safe and Responsible Development with Generative Language Models bei der Google I/O 2023 sowie das Toolkit für Responsible AI ansehen.

7. Fazit

Glückwunsch! Sie haben eine App erstellt, um basierend auf Nutzereingaben kohärenten Text zu generieren, indem Sie ein vortrainiertes Large Language Model ausschließlich auf dem Gerät ausführen.

Weitere Informationen