📱Wie man LLMs auf deinem iOS- oder Android-Telefon ausführt und bereitstellt

Tutorial zum Feinabstimmen deines eigenen LLM und zur Bereitstellung auf deinem Android oder iPhone mit ExecuTorch.

Wir freuen uns, Ihnen zu zeigen, wie Sie LLMs trainieren können und dann sie lokal bereitstellen auf Android-Telefonen und iPhones. Wir haben mit ExecuTorcharrow-up-right von PyTorch & Meta zusammengearbeitet, um einen optimierten Workflow mit quantisierungsbewusstem Training (QAT) zu erstellen und diese dann direkt auf Edge-Geräten bereitzustellen. Mit Unslotharrow-up-rightTorchAO und ExecuTorch zeigen wir, wie Sie:

  • Die gleiche Technik (ExecuTorch) nutzen, die Meta verwendet, um Milliarden von Nutzern auf Instagram, WhatsApp zu ermöglichen

  • Qwen3-0.6B lokal zu deployen auf Pixel 8 und iPhone 15 Pro mit ~40 Tokens/s

  • QAT über TorchAO anwenden, um 70% der Genauigkeit wiederherzustellen

  • Privatsphäre zuerst, sofortige Antworten und Offline-Fähigkeiten erhalten

  • Verwenden Sie unser kostenloses Colab-Notebookarrow-up-right um Qwen3 0.6B feinzujustieren und für die Bereitstellung auf dem Telefon zu exportieren

appleiOS-AnleitungandroidAndroid-Anleitung

Qwen3-4B bereitgestellt auf einem iPhone 15 Pro

Qwen3-0.6B läuft mit ~40 Tokens/s

🦥 Ihr Modell trainieren

Wir unterstützen Qwen3, Gemma3, Llama3, Qwen2.5, Phi4 und viele andere Modelle für die Bereitstellung auf Telefonen! Befolgen Sie die kostenloses Colab-Notebookarrow-up-right für die Bereitstellung von Qwen3-0.6B:

Aktualisieren Sie zuerst Unsloth und installieren Sie TorchAO und ExecuTorch.

Verwenden Sie dann einfach qat_scheme = "phone-deployment" um anzuzeigen, dass wir es auf einem Telefon bereitstellen wollen. Beachten Sie, dass wir auch full_finetuning = True für vollständiges Finetuning setzen!

Wir verwenden qat_scheme = "phone-deployment" wir verwenden tatsächlich qat_scheme = "int8-int4" unter der Haube, um Unsloth/TorchAO QAT zu ermöglichen, das simuliert INT8 dynamische Aktivierungsquantisierung mit INT4 Gewichtquantisierung für Linear-Schichten während des Trainings (über Fake-Quantisierungsoperationen), während Berechnungen in 16 Bit verbleiben. Nach dem Training wird das Modell in eine echte quantisierte Version konvertiert, sodass das Gerätmodell kleiner ist und typischerweise die Genauigkeit besser beibehält als naive PTQ.

Nach dem Finetuning wie im Colab-Notebookarrow-up-rightbeschrieben, speichern wir es dann als eine .pte Datei über ExecuTorch:

🏁 Bereitstellung nach dem Training

Und jetzt mit Ihrer qwen3_0.6B_model.pte Datei, die etwa 472 MB groß ist, können wir sie bereitstellen! Wählen Sie Ihr Gerät und legen Sie direkt los:

apple iOS-Bereitstellung

Anleitung, um Ihr Modell unter iOS auszuführen (getestet auf einem iPhone 16 Pro, funktioniert aber auch auf anderen iPhones). Sie benötigen ein physisches macOS-Gerät, das Xcode 15 ausführen kann.

Einrichtung der macOS-Entwicklungsumgebung

Xcode & Command Line Tools installieren

  1. Installieren Sie Xcode aus dem Mac App Store (muss Version 15 oder höher sein)

  2. Öffnen Sie das Terminal und überprüfen Sie Ihre Installation: xcode-select -p

  3. Installieren Sie die Befehlszeilentools und akzeptieren Sie die Lizenz:

    1. xcode-select --install

    2. sudo xcodebuild -license accept

  4. Starten Sie Xcode zum ersten Mal und installieren Sie gegebenenfalls zusätzliche Komponenten, wenn Sie dazu aufgefordert werden

  5. Wenn Sie aufgefordert werden, Plattformen auszuwählen, wählen Sie iOS 18 und laden Sie es für den Simulator herunter

circle-exclamation

Überprüfen Sie, ob alles funktioniert: xcode-select -p

Sie sollten einen Pfad sehen. Falls nicht, wiederholen Sie Schritt 3.

Apple-Entwicklerkonto einrichten

Nur für physische Geräte!

circle-info

Überspringen Sie diesen Abschnitt, wenn Sie nur den iOS-Simulator verwenden. Sie benötigen nur für die Bereitstellung auf einem physischen iPhone ein kostenpflichtiges Entwicklerkonto.

Erstellen Sie Ihre Apple ID

Sie haben noch keine Apple ID? Hier registrierenarrow-up-right.

Fügen Sie Ihr Konto zu Xcode hinzu

  1. Xcode öffnen

  2. Navigieren Sie zu Xcode → Einstellungen → Accounts

  3. Klicken Sie auf die + Schaltfläche und wählen Sie Apple ID

  4. Melden Sie sich mit Ihrer regulären Apple ID an

Im Apple Developer Program anmelden

ExecuTorch erfordert die Increased-Memory-Limit-Fähigkeit, die ein kostenpflichtiges Entwicklerkonto benötigt:

  1. Melden Sie sich mit Ihrer Apple ID an

  2. Im Apple Developer Program anmelden

Einrichten der ExecuTorch-Demo-App

Beispielcode herunterladen:

In Xcode öffnen

  1. Öffnen Sie apple/etLLM.xcodeproj in Xcode

  2. Wählen Sie in der oberen Werkzeugleiste iPhone 16 Pro Simulator als Zielgerät

  3. Klicken Sie auf Play (▶️), um zu bauen und auszuführen

🎉 Erfolg! Die App sollte jetzt im Simulator starten. Sie wird noch nicht funktionieren, wir müssen Ihr Modell hinzufügen.

Bereitstellung im Simulator

Kein Entwicklerkonto erforderlich.

Bereiten Sie Ihre Modell-Dateien vor

  1. Stoppen Sie den Simulator in Xcode (drücken Sie die Stopp-Schaltfläche)

  2. Navigieren Sie zu Ihrem HuggingFace Hub-Repo (falls nicht lokal gespeichert)

  3. Laden Sie diese beiden Dateien herunter:

    1. qwen3_0.6B_model.pte (Ihr exportiertes Modell)

    2. tokenizer.json (der Tokenizer)

Erstellen Sie einen gemeinsamen Ordner im Simulator

  1. Klicken Sie auf die virtuelle Home-Taste im Simulator

  2. Öffnen Sie die Dateien-App → Durchsuchen → Auf meinem iPhone

  3. Tippen Sie auf die Ellipsen-Schaltfläche (•••) und erstellen Sie einen neuen Ordner mit dem Namen Qwen3test

Dateien mit dem Terminal übertragen

Wenn Sie den Ordner sehen, führen Sie Folgendes aus:

Laden & Chatten

  1. Gehen Sie zurück zur etLLM-App im Simulator. Tippen Sie darauf, um sie zu starten.

  1. Laden Sie das Modell und den Tokenizer aus dem Qwen3test-Ordner

  1. Beginnen Sie, mit Ihrem feinabgestimmten Modell zu chatten! 🎉

Bereitstellung auf Ihrem physischen iPhone

Erstgerät-Einrichtung

  1. Verbinden Sie Ihr iPhone über USB mit Ihrem Mac

  2. Entsperren Sie Ihr iPhone und tippen Sie auf „Diesem Gerät vertrauen“

  3. Gehen Sie in Xcode zu Fenster → Geräte und Simulatoren

  4. Warten Sie, bis Ihr Gerät links erscheint (es kann kurz „Vorbereitung“ anzeigen)

Xcode-Signierung konfigurieren

  1. Fügen Sie Ihr Apple-Konto hinzu: Xcode → Einstellungen → Accounts → +

  2. Klicken Sie im Projekt-Navigator auf das etLLM-Projekt (blaues Symbol)

  3. Wählen Sie etLLM unter TARGETS

  4. Gehen Sie zum Tab Signing & Capabilities

  5. Aktivieren Sie „Automatically manage signing“

  6. Wählen Sie Ihr Team aus dem Dropdown-Menü

circle-exclamation

Fügen Sie die erforderliche Fähigkeit hinzu

  1. Immer noch unter Signing & Capabilities, klicken Sie auf + Capability

  2. Suchen Sie nach „Increased Memory Limit“ und fügen Sie es hinzu

Build & Run

  1. Wählen Sie in der oberen Werkzeugleiste Ihr physisches iPhone aus dem Gerätewähler aus

  2. Klicken Sie auf Play (▶️) oder drücken Sie Cmd + R

Dem Entwicklerzertifikat vertrauen

Ihr erster Build wird fehlschlagen—das ist normal!

  1. Gehen Sie auf Ihrem iPhone zu Einstellungen → Datenschutz & Sicherheit → Entwicklermodus

  2. Schalten Sie ihn ein

  3. Zustimmen und Meldungen akzeptieren

  4. Starten Sie das Gerät neu, kehren Sie zu Xcode zurück und klicken Sie erneut auf Play

circle-exclamation

Modelldateien auf Ihr iPhone übertragen

  1. Sobald die App läuft, öffnen Sie den Finder auf Ihrem Mac

  2. Wählen Sie Ihr iPhone in der Seitenleiste aus

  3. Klicken Sie auf den Dateien-Tab

  4. Erweitern Sie etLLM

  5. Ziehen Sie Ihre .pte- und tokenizer.json-Dateien direkt in diesen Ordner

  6. Seien Sie geduldig! Diese Dateien sind groß und können ein paar Minuten dauern

Laden & Chatten

  1. Wechseln Sie auf Ihrem iPhone zurück zur etLLM-App

  1. Laden Sie das Modell und den Tokenizer über die App-Oberfläche

  1. Ihr feinabgestimmtes Qwen3 läuft jetzt nativ auf Ihrem iPhone!

android Android-Bereitstellung

Dieser Leitfaden erklärt, wie man die ExecuTorch Llama-Demo-App auf einem Android-Gerät erstellt und installiert (getestet mit Pixel 8, funktioniert aber auch auf anderen Android-Telefonen) und verwendet eine Linux/Mac-Befehlszeilenumgebung. Dieser Ansatz minimiert Abhängigkeiten (kein Android Studio erforderlich) und verlagert den schweren Build-Prozess auf Ihren Computer.

Anforderungen

Stellen Sie sicher, dass Ihre Entwicklungsmaschine Folgendes installiert hat:

  • Java 17 (Java 21 ist oft Standard, kann aber Build-Probleme verursachen)

  • Git

  • Wget / Curl

  • Android Command Line Tools

  • Anleitung zur Installationarrow-up-right und Einrichtung von adb auf Ihrem Android und Ihrem Computer

Überprüfung

Prüfen Sie, ob Ihre Java-Version mit 17.x übereinstimmt:

Wenn es nicht übereinstimmt, installieren Sie es unter Ubuntu/Debian:

Setzen Sie es dann als Standard oder exportieren Sie JAVA_HOME:

Wenn Sie ein anderes OS oder eine andere Distribution verwenden, sollten Sie diesen Leitfadenarrow-up-right oder einfach Ihr bevorzugtes LLM fragen, um Sie durchzuführen.

Schritt 1: Android SDK & NDK installieren

Richten Sie eine minimale Android-SDK-Umgebung ohne das vollständige Android Studio ein.

1. Erstellen Sie das SDK-Verzeichnis:

  1. Android Command Line Tools installieren

Schritt 2: Umgebungsvariablen konfigurieren

Fügen Sie diese zu Ihrer ~/.bashrc oder ~/.zshrc:

Laden Sie sie neu:

Schritt 3: SDK-Komponenten installieren

ExecuTorch benötigt bestimmte NDK-Versionen.

Setzen Sie die NDK-Variable:

Schritt 4: Code holen

Wir verwenden das executorch-examples Repository, das die aktualisierte Llama-Demo enthält.

Schritt 5: Häufige Kompilationsprobleme beheben

Beachten Sie, dass der aktuelle Code diese Probleme nicht hat, wir sie jedoch zuvor erlebt haben und die folgenden Hinweise hilfreich sein können:

Beheben von „SDK Location not found":

Erstellen Sie eine local.properties Datei, um Gradle explizit zu sagen, wo sich das SDK befindet:

Beheben von cannot find symbol Fehler:

Der aktuelle Code verwendet eine veraltete Methode getDetailedError(). Patchen Sie sie mit diesem Befehl:

Schritt 6: APK bauen

Dieser Schritt kompiliert die App und die nativen Bibliotheken.

  1. Wechseln Sie zum Android-Projekt:

  2. Mit Gradle bauen (setzen Sie explizit JAVA_HOME auf 17, um Toolchain-Fehler zu vermeiden):

    Hinweis: Der erste Lauf dauert einige Minuten.

  3. Die erzeugte finale APK finden Sie unter:

Schritt 7: Auf Ihrem Android-Gerät installieren

Sie haben zwei Optionen, um die App zu installieren.

Option A: Mit ADB (kabelgebunden/drahtlos)

Wenn Sie adb Zugriff auf Ihr Telefon haben:

Option B: Direkter Dateitransfer

Wenn Sie auf einer Remote-VM sind oder kein Kabel haben:

  1. Laden Sie die app-debug.apk an einen Ort hoch, von dem Sie sie auf dem Telefon herunterladen können

  2. Laden Sie sie auf Ihrem Telefon herunter

  3. Tippen Sie zum Installieren (aktivieren Sie „Installation aus unbekannten Quellen zulassen“, falls aufgefordert).

Schritt 8: Modelldateien übertragen

Die App benötigt die .pte-Modell- und Tokenizer-Dateien.

  1. Dateien übertragen: Verschieben Sie Ihre model.pte und tokenizer.bin (oder tokenizer.model) in den Speicher Ihres Telefons (z. B. in den Downloads-Ordner).

  2. LlamaDemo-App öffnen: Starten Sie die App auf Ihrem Telefon.

  3. Modell auswählen

  4. Tippen Sie auf Einstellungen (Zahnrad-Symbol) oder den Dateiauswähler.

  5. Navigieren Sie zu Ihrem Download-Ordner.

  6. Wählen Sie Ihre .pte-Datei aus.

  7. Wählen Sie Ihre Tokenizer-Datei aus.

Fertig! Sie können jetzt direkt auf Ihrem Gerät mit dem LLM chatten.

Fehlerbehebung

  • Build schlägt fehl? Prüfen Sie java -version. Es MUSS 17 sein.

  • Modell lädt nicht? Stellen Sie sicher, dass Sie sowohl das .pte ALS AUCH das Tokenizer.

  • App stürzt ab? Gültige .pte Dateien müssen speziell für ExecuTorch exportiert werden (üblicherweise XNNPACK-Backend für CPU).

Modell auf Ihr Telefon übertragen

Derzeit unterstützt die executorchllama App, die wir gebaut haben, nur das Laden des Modells aus einem bestimmten Verzeichnis auf Android, das leider über normale Dateimanager nicht zugänglich ist. Aber wir können die Modell-Dateien mit adb in das genannte Verzeichnis speichern.

Stellen Sie sicher, dass adb ordnungsgemäß läuft und verbunden ist

  1. Wenn Sie über drahtloses Debugging verbunden sind, sehen Sie so etwas:

    Oder wenn Sie über ein Kabel verbunden sind:

    Wenn Sie dem Computer keine Berechtigungen zum Zugriff auf Ihr Telefon gegeben haben:

  1. Dann müssen Sie Ihr Telefon auf ein Popup-Dialog prüfen, das so aussieht (das Sie erlauben möchten)

Sobald dies erledigt ist, ist es Zeit, den Ordner zu erstellen, in den wir die .pte und tokenizer.json Dateien ablegen müssen.

Erstellen Sie das genannte Verzeichnis im Telefonpfad.

Überprüfen Sie, ob das Verzeichnis richtig erstellt wurde.

Schieben Sie die Inhalte in das genannte Verzeichnis. Dies kann je nach Computer, Verbindung und Telefon ein paar Minuten oder länger dauern. Bitte haben Sie Geduld.

  1. Öffnen Sie die executorchllamademo App, die Sie in Schritt 5 installiert haben, und tippen Sie dann auf das Zahnrad-Symbol oben rechts, um die Einstellungen zu öffnen.

  2. Tippen Sie auf den Pfeil neben Model, um den Auswähler zu öffnen und ein Modell auszuwählen. Wenn Sie ein weißes leeres Dialogfeld ohne Dateinamen sehen, ist Ihr ADB-Modell-Push wahrscheinlich fehlgeschlagen - wiederholen Sie diesen Schritt. Beachten Sie auch, dass anfangs „kein Modell ausgewählt“ angezeigt werden kann.

  3. Nachdem Sie ein Modell ausgewählt haben, sollte die App den Modell-Dateinamen anzeigen.

  1. Wiederholen Sie nun dasselbe für den Tokenizer. Klicken Sie auf den Pfeil neben dem Tokenizer-Feld und wählen Sie die entsprechende Datei aus.

  1. Möglicherweise müssen Sie den Modelltyp je nach hochgeladenem Modell auswählen. Hier ist Qwen3 ausgewählt.

  1. Sobald Sie beide Dateien ausgewählt haben, klicken Sie auf die Schaltfläche „Load Model“.

  1. Sie kehren zum ursprünglichen Bildschirm mit dem Chatfenster zurück, und es kann „model loading“ anzeigen. Das Laden kann je nach RAM und Speichergeschwindigkeit Ihres Telefons einige Sekunden dauern.

  1. Sobald „successfully loaded model“ angezeigt wird, können Sie beginnen, mit dem Modell zu chatten. Et Voila, Sie haben nun ein LLM, das nativ auf Ihrem Android-Telefon läuft!

📱ExecuTorch betreibt Milliarden

ExecuTorch ermöglicht On-Device-ML-Erlebnisse für Milliarden von Menschenarrow-up-right auf Instagram, WhatsApp, Messenger und Facebook. Instagram Cutouts verwendet ExecuTorch, um editierbare Sticker aus Fotos zu extrahieren. In verschlüsselten Anwendungen wie Messenger ermöglicht ExecuTorch gerätebasiertes, datenschutzbewusstes Sprachidentifikations- und Übersetzungserlebnis. ExecuTorch unterstützt über ein Dutzend Hardware-Backends über Apple, Qualcomm, ARM und Metas Quest 3 und Ray-Bansarrow-up-right.

Weitere Modellunterstützung

Sie können das kostenloses Colab-Notebookarrow-up-right für Qwen3-0.6B anpassen, um Telefonbereitstellung für eines der oben genannten Modelle zu ermöglichen!

Haupt-Notebook zur Telefon-Bereitstellung von Qwen3 0.6B

Gehen Sie zu unserer Du kannst Unsloth auf zwei Hauptwegen nutzen: unsere kostenlosen Notebooks oder lokal. Seite für alle anderen Notebooks.

Zuletzt aktualisiert

War das hilfreich?