Kurs
Wie man Llama 3.2 1B auf einem Android-Handy mit Torchchat ausführt
Ich habe kürzlich einen Artikel darüber geschrieben wie man LLMs mit Python und Torchchat durchführt. Torchchat ist ein flexibles Framework, das entwickelt wurde, um LLMs effizient auf verschiedenen Hardware-Plattformen auszuführen. Ein LLM-Studium vor Ort bietet mehrere Vorteile, darunter:
- Offline-Zugang: Da das Modell auf unserem Gerät läuft, müssen wir nicht mit dem Internet verbunden sein, um es zu nutzen.
- Datenschutz: Da wir das Modell selbst betreiben, bleiben die Aufforderungen und Daten, die wir eingeben, privat.
- Kosten: Wir können das Modell kostenlos ausführen.
Nach der jüngsten Veröffentlichung von Facebooks Llama 3.2habe ich beschlossen, meinen vorherigen Artikel zu erweitern, um zu zeigen, wie wir es auf unseren Mobiltelefonen einsetzen können, wobei der Schwerpunkt auf Android liegt.
Hier ist ein grober Überblick darüber, was wir tun müssen:
- Lade die Modelldateien herunter, die frei verfügbar sind, da das Modell Open Source ist.
- Erstelle die notwendigen Dateien, um das Modell auf einem mobilen Gerät auszuführen.
- Richte eine Android-Chat-Anwendung ein, die das Modell ausführt.
Torchchat bietet eine Antwort auf all diese Schritte. Es enthält Befehle zum Herunterladen des Modells und zum Erstellen der Dateien, die zum Ausführen des Modells erforderlich sind. Außerdem wird eine Demo-Chat-Anwendung für Android mitgeliefert, so dass wir nicht selbst eine entwickeln müssen.
KI-Anwendungen entwickeln
Herunterladen von Torchchat
Der erste Schritt ist das Klonen des Torchchat-Repository mit Git:
git clone git@github.com:pytorch/torchchat.git
Wir können dies auch ohne Git tun, indem wir es über den Download-Button auf GitHub herunterladen:
Wichtiger Hinweis: Nachdem du das Repository geklont (oder heruntergeladen) hast, wird ein Ordner namens torchchat
auf unserem Computer verfügbar. Alle in diesem Artikel erwähnten Befehle sollten in diesem Ordner ausgeführt werden.
Torchchat Installation
Wir gehen davon aus, dass Python und Anaconda bereits installiert sind. Wenn das nicht der Fall ist, sieh dir diese beiden Tutorials an: Installation von Anaconda unter Windows und Installation von Anaconda unter Mac OS X.
Alternativ kannst du auch die Schritte im Torchchat-Repository befolgen, das eine virtuelle Umgebung anstelle von Anaconda verwendet.
Wir beginnen mit der Erstellung einer Anaconda-Umgebung mit dem Befehl:
conda create -yn llama python=3.10.0
Dadurch wird eine Umgebung namens llama
erstellt, die die Version 3.10
von Python verwendet. Die Option -yn
kombiniert -y
und -n
:
- Mit der Option
-y
kann der Befehl fortfahren, ohne vor der Erstellung der Umgebung nach einer Bestätigung zu fragen. - Die Option
-n
gibt den Namen der Umgebung an, der in diesem Fallllama
lautet. Nachdem wir die Umgebung erstellt haben, aktivieren wir sie und installieren die Abhängigkeiten.
Um sie zu aktivieren, verwenden wir den folgenden Befehl:
conda activate llama
Um die notwendigen Abhängigkeiten zu installieren, verwenden wir das von TorchChat bereitgestellte Installationsskript:
./install/install_requirements.sh
Herunterladen des Llama 3.2 1B Modells
In diesem Lernprogramm verwenden wir das Llama 3.2 1B Modell, ein Modell mit einer Milliarde Parametern. Wir können sie mit dem Befehl herunterladen:
python torchchat.py download llama3.2-1b
Der Prozess ist derselbe, wenn du mit anderen Modellenexperimentieren willst - wirmüssen llama3.2-1b
durch den Alias des gewünschten Modells ersetzen. Es ist wichtig, dass du nur Modelle auswählst, die als mobilfreundlich gekennzeichnet sind.
Torchchat nutzt Hugging Face für die Modellverwaltung. Um ein Modell herunterzuladen, brauchst du also ein Konto bei Hugging Face. Eine ausführliche Anleitung, wie du ein Konto erstellst und dich über das Terminal einloggst, findest du im Abschnitt "Ein Modell herunterladen" in diesem Torchchat-Tutorial.
Alternativ kann das Modell auch von der offiziellen Website von Llama heruntergeladen werden. Die Verwendung von Torchchat ist jedoch bequemer, da sie das Exportieren der Modelldateien für den mobilen Einsatz erleichtert.
Das Modell exportieren
Für die Bereitstellung auf einem mobilen Gerät exportieren wir zunächst das Modell, um das .pte
Artefakt zu erstellen, eine Datei, die von Executorch verwendet wird. Executorch ist die Engine, die Torchchat verwendet, um den LLM auf einem mobilen Gerät auszuführen.
Um die PTE-Datei zu erstellen, müssen wir zunächst Executorch installieren. Dazu führst du die folgenden Befehle aus:
export TORCHCHAT_ROOT=${PWD}
./torchchat/utils/scripts/install_et.sh
Nachdem die Installation abgeschlossen ist, können wir die PTE-Datei mit dem Befehl erzeugen:
python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte
Mit diesem Befehl wird das Modell auch quantisiert, was seine Größe verringert und die Geschwindigkeit der Schlussfolgerungen erhöht. Wir verwenden die Standardkonfiguration von Torchchat in torchchat/quant_config/mobile.json
.
Wenn dieser Vorgang abgeschlossen ist, wird eine Datei namens llama3_2-1b.pte
im Ordner torchchat
erstellt.
Vorbereiten der mobilen App
Torchchat bietet eine Demo-Android-App an, mit der wir Llama direkt auf unseren Smartphones bedienen können. Dieses Demoprojekt findest du in dem Torchchat-Ordner, den du heruntergeladen hast. Sein relativer Pfad ist torchchat/edge/android/torchchat
. Beachte, dass der erste torchchat
Verweis im Pfad auf einen Ordner innerhalb des Repositorys verweist, nicht auf das Stammverzeichnis des Repositorys.
Herunterladen und Einrichten der Java-Bibliothek
- Lade die von Torchchat bereitgestellte
.aar
Datei herunter. Diese enthält die Java-Bibliothek und die entsprechende JNI-Bibliothek, um die App zu erstellen und auszuführen. - Navigiere zu dem Ordner app directory:
torchchat/edge/android/torchchat/app/
- Erstelle ein Verzeichnis mit dem Namen
libs
(falls noch nicht vorhanden) - Benenne die Download-Datei in
executorch.aar
um und füge sie in den Ordnerlibs
ein.
Lade das Android-Projekt in Android Studio
Download und Installation von Android Studio von der der offiziellen Website. Sobald die Installation abgeschlossen ist, öffne das Projekt:
Das Demoprojekt befindet sich unter torchchat/edge/android/torchchat
.
Wenn wir das Projekt öffnen, werden wir in diesem Fenster gefragt, ob wir dem Code vertrauen:
Hier wählst du die Option "Projekt vertrauen".
Nachdem du das Projekt geöffnet hast, braucht Android Studio einige Zeit, um die Konfiguration zu laden und die Ersteinrichtung abzuschließen. Es ist wichtig zu warten, bis dieser Prozess abgeschlossen ist. Wir können den Status in der unteren rechten Ecke des Fensters überwachen. Sobald er fertig ist, sollte der Ausführen-Button oben grün werden:
Einrichten des Entwicklermodus auf Android
Um die App über Android Studio auf dem Telefon ausführen zu können, müssen wir den Entwicklermodus auf unserem Gerät aktivieren. Hier ist, wie wir das tun können:
- Gehe zu "Einstellungen"
- Wähle "Über das Gerät" oder "Über das Telefon".
- Öffne "Software Informationen"
- Finde die "Build-Nummer" und drücke sie sieben Mal
Das war's! Jetzt können wir unser Gerät verwenden, um die App in Android Studio auszuführen. Wenn wir das tun, bleibt die App auf unserem Telefon und wir können sie auch ohne Verbindung zum Computer ausführen.
Installieren von adb
Die App benötigt die Modelldateien in einem bestimmten Ordner auf dem Telefon. Um diese Dateien an das Telefon zu senden, verwenden wir adb
(Android Debug Bridge). Wir können es mit Android Studio installieren, indem wir diese Schritte befolgen:
- Navigiere zu den Einstellungen und gib "Android SDK" in die Suchleiste ein.
- Suche das Menü "Android SDK" und klicke es an
- Wähle die Option "Android SDK command line tools (latest)".
- Klicke auf "Übernehmen", um sie zu installieren
Beachte, dass Android Studio am oberen Rand des Fensters den Ort des Android-Sdk anzeigt:
Wir kopieren diesen Pfad und führen den folgenden Befehl aus (ersetze unten mit dem Pfad, der gerade kopiert wurde):
export PATH=$PATH:<android_skd_location>/platform-tools/
Um zu überprüfen, ob adb
erfolgreich installiert wurde, verwende den Befehl adb --version
, der die Version von adb anzeigt.
Einstellen der App auf dem Telefon
Verbinde das Telefon mit einem Kabel mit dem Computer. Der Name des Geräts wird in der Geräteliste neben der Schaltfläche "Ausführen" angezeigt:
Bevor wir die App auf dem Telefon starten, verwenden wir adb
, um die notwendigen Modelldateien auf unser Gerät zu kopieren.
- Finde die ID des Geräts mit dem Befehl
adb devices
. Es können mehrere Zeilen in der Ausgabe sein. Finde das mit dem Formular mit dem FormularGerät und kopiere den Gerätecode.
- Erstelle das Verzeichnis zum Speichern der Modelldateien mit
adb -s shell mkdir -p /data/local/tmp/llama
. - Kopiere die Datei
.pte
, die sich im Torchchat-Ordner befindet, mitadb -s push llama3_2-1b.pte /data/local/tmp/llama
. - Finde die Model-Tokenizer-Datei mit
python torchchat.py where llama3.2-1b
. Dies gibt mehrere Zeilen aus, wobei wir uns für den Pfad in der letzten Zeile interessieren.
- Kopiere die Tokenizer-Datei mit
adb -s push /tokenizer.model /data/local/tmp/llama
auf das Gerät und ersetzedurch den im vorherigen Schritt ermittelten Pfad.
Wenn du diese Schritte abgeschlossen hast, sollten die Modelldateien auf unserem Handy sein und wir können sie verwenden. Wir können das überprüfen, indem wir alle Dateien auflisten, die sich in dem gerade erstellten Geräteordner befinden:
adb -s <device_code> shell ls
Die Ausgabe sollte die beiden Dateien enthalten, die wir gerade kopiert haben:
llama3_2-1b.pte
tokenizer.model
Ausführen der App
Jetzt ist alles bereit, um die Demo-App auf unserem Telefon auszuführen. Wir können auf den grünen Pfeil klicken, um ihn auszuführen.
Dadurch wird die App auf unserem Gerät geöffnet. Die App fordert uns auf, die Modell- und Tokenizer-Dateien auszuwählen.
Verwendung der Llama 3.2 1B App
Wir können jetzt mit Llama3.2 1B auf unserem Telefon chatten! Die Benutzeroberfläche der App ist recht simpel. Wir können das Textfeld "Prompt" verwenden, um einen Prompt zu schreiben und ihn über die Schaltfläche "Generieren" an das Modell zu senden.
Da das Modell offline läuft, könnte ich es im Flugzeug zu meinem nächsten Zielort benutzen, um zum Beispiel nach Speiseempfehlungen zu fragen:
Bei dieser Interaktion stellen wir ein paar Einschränkungen der Demo-App fest:
- Die Antwort wiederholt unsere Aufforderung.
- Die Antwortformatierung beginnt mit "Ich war in Taiwan...", was darauf hindeutet, dass die App nicht darauf ausgelegt ist, das Modell direkt als Assistent zu nutzen.
- Die Antworten werden abrupt abgebrochen, wahrscheinlich weil das Token-Limit erreicht wurde.
Wir können das Verhalten vergleichen, indem wir dasselbe Modell mit dem Befehl auf dem Terminal ausführen:
python torchchat.py chat llama3.2-1b
Wir haben die gleiche Aufforderung gegeben, um zu sehen, ob sich das Verhalten ändert. In diesem Fall scheint die Antwort viel natürlicher und nützlicher zu sein, obwohl sie auch abgeschnitten ist:
Ich habe mich an das Team hinter Torchchat gewandtund sie sagten mir, dass Llama 3.2 zu aktuell sei und dass die Demo-App leicht aktualisiert werden müsse, um es zu unterstützen.
Der Einrichtungsprozess bleibt jedoch derselbe, und das hier erworbene Wissen gilt auch für die aktualisierte Version. Wenn du diesen Artikel liest, ist er möglicherweise bereits aktualisiert worden und funktioniert einwandfrei.
Fazit
In dieser Anleitung haben wir gelernt, wie man Llama 3.2 1B direkt auf einem Android-Gerät mit Torchchat einrichtet. Wir haben Schritt für Schritt erklärt, wie du die notwendigen Komponenten herunterlädst und installierst, einschließlich der Modelldateien und der Android-Demo-App.
Obwohl es bei der aktuellen Demo-App einige Einschränkungen gibt, insbesondere bei der Formatierung und Länge der Antworten, ist das Potenzial solcher Implementierungen immens.
Wenn du mehr über Llama 3.2 lesen willst, empfehle ich dir diese Blogs:
Lerne KI mit diesen Kursen!
Lernpfad
Developing AI Applications
Kurs
AI Security and Risk Management
Der Blog
Die 32 besten AWS-Interview-Fragen und Antworten für 2024
Der Blog
Die 20 besten Snowflake-Interview-Fragen für alle Niveaus
Nisha Arya Ahmed
20 Min.