Direkt zum Inhalt

Wie man Llama 3.2 1B auf einem Android-Handy mit Torchchat ausführt

Hier findest du eine Schritt-für-Schritt-Anleitung, wie du Llama 3.2 1B auf deinem Android-Gerät mit dem Torchchat-Framework einrichtest und ausführst.
Aktualisierte 31. Okt. 2024  · 12 Min. Lesezeit

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

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling for Free

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:

Herunterladen von Torchchat von GitHub

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 Fall llama 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

  1. 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. 
  2. Navigiere zu dem Ordner app directory: torchchat/edge/android/torchchat/app/
  3. Erstelle ein Verzeichnis mit dem Namen libs (falls noch nicht vorhanden)
  4. Benenne die Download-Datei in executorch.aar um und füge sie in den Ordner libs 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:

Öffnen der Demo-App in Android Studio

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:

Popup nach dem Öffnen der Demo-App

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:

Wie man weiß, wann das Projekt geladen ist

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:

  1. Gehe zu "Einstellungen"
  2. Wähle "Über das Gerät" oder "Über das Telefon".
  3. Öffne "Software Informationen"
  4. 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:

  1. Navigiere zu den Einstellungen und gib "Android SDK" in die Suchleiste ein.
  2. Suche das Menü "Android SDK" und klicke es an
  3. Wähle die Option "Android SDK command line tools (latest)".
  4. Klicke auf "Übernehmen", um sie zu installieren

Installation von adb aus Android Studio

Beachte, dass Android Studio am oberen Rand des Fensters den Ort des Android-Sdk anzeigt:

Den Pfad zu adb finden

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:

Geräteauswahl in Android Studio

Bevor wir die App auf dem Telefon starten, verwenden wir adb, um die notwendigen Modelldateien auf unser Gerät zu kopieren.

  1. 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 Formular Gerät und kopiere den Gerätecode.
  2. Erstelle das Verzeichnis zum Speichern der Modelldateien mit adb -s shell mkdir -p /data/local/tmp/llama.
  3. Kopiere die Datei .pte, die sich im Torchchat-Ordner befindet, mit adb -s push llama3_2-1b.pte /data/local/tmp/llama.
  4. 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.

Auffinden der Datei tokenizer.model

  1. Kopiere die Tokenizer-Datei mit adb -s push /tokenizer.model /data/local/tmp/llama auf das Gerät und ersetze durch 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.

Ausführen der App auf dem Telefon

Dadurch wird die App auf unserem Gerät geöffnet. Die App fordert uns auf, die Modell- und Tokenizer-Dateien auszuwählen.

Auswahl des Modells und des Tokenizers

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:

Beispiel für die Nutzung der App

Bei dieser Interaktion stellen wir ein paar Einschränkungen der Demo-App fest:

  1. Die Antwort wiederholt unsere Aufforderung.
  2. 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.
  3. 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:

Verhalten des Modells auf dem Computer

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:


Photo of François Aubry
Author
François Aubry
LinkedIn
Das Unterrichten war schon immer meine Leidenschaft. Schon als Schülerin habe ich eifrig nach Möglichkeiten gesucht, anderen Schülern Nachhilfe zu geben und sie zu unterstützen. Diese Leidenschaft führte dazu, dass ich einen Doktortitel anstrebte, wobei ich auch als Lehrassistentin tätig war, um meine akademischen Bemühungen zu unterstützen. In diesen Jahren fand ich im traditionellen Klassenzimmer große Erfüllung, indem ich Verbindungen förderte und das Lernen erleichterte. Mit dem Aufkommen von Online-Lernplattformen erkannte ich jedoch das transformative Potenzial der digitalen Bildung. Ich war sogar aktiv an der Entwicklung einer solchen Plattform an unserer Hochschule beteiligt. Es ist mir ein großes Anliegen, traditionelle Unterrichtsprinzipien mit innovativen digitalen Methoden zu verbinden. Meine Leidenschaft ist es, Kurse zu erstellen, die nicht nur ansprechend und informativ, sondern auch für Lernende im digitalen Zeitalter zugänglich sind.
Themen

Lerne KI mit diesen Kursen!

Kurs

Working with Llama 3

4 hr
2.4K
Explore the latest techniques for running the Llama LLM locally, fine-tuning it, and integrating it within your stack.
Siehe DetailsRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

See MoreSee More