📱Comment exécuter et déployer des LLM sur votre téléphone iOS ou Android
Tutoriel pour affiner votre propre LLM et le déployer sur votre Android ou iPhone avec ExecuTorch.
Nous sommes ravis de montrer comment vous pouvez entraîner des LLM puis les déployer localement sur téléphones Android et iPhones. Nous avons collaboré avec ExecuTorch de PyTorch et Meta pour créer un flux de travail rationalisé utilisant l'entraînement conscient de la quantification (QAT) puis les déployer directement sur des appareils edge. Avec UnslothTorchAO et ExecuTorch, nous montrons comment vous pouvez :
Utiliser la même tech (ExecuTorch) que Meta utilise pour alimenter des milliards d'utilisateurs sur Instagram, WhatsApp
Déployer Qwen3-0.6B localement sur Pixel 8 et iPhone 15 Pro à ~40 tokens/s
Appliquer le QAT via TorchAO pour récupérer 70 % de la précision
Obtenir la confidentialité en priorité, des réponses instantanées et des capacités hors ligne
Utilisez notre notebook Colab gratuit pour affiner Qwen3 0.6B et l'exporter pour le déploiement sur téléphone
Qwen3-4B déployé sur un iPhone 15 Pro

Qwen3-0.6B fonctionnant à ~40 tokens/s

🦥 Entraînement de votre modèle
Nous prenons en charge Qwen3, Gemma3, Llama3, Qwen2.5, Phi4 et de nombreux autres modèles pour le déploiement sur téléphone ! Suivez le notebook Colab gratuit pour le déploiement de Qwen3-0.6B :
Tout d'abord, mettez à jour Unsloth et installez TorchAO et Executorch.
Ensuite, utilisez simplement qat_scheme = "phone-deployment" pour indiquer que nous souhaitons le déployer sur un téléphone. Notez que nous définissons aussi full_finetuning = True pour un affinement complet !
Nous utilisons qat_scheme = "phone-deployment" nous utilisons en fait qat_scheme = "int8-int4" sous le capot pour activer le QAT Unsloth/TorchAO qui simule la quantification dynamique d'activation INT8 avec quantification des poids INT4 pour les couches Linéaires pendant l'entraînement (via des opérations de fausse quantification) tout en conservant les calculs en 16 bits. Après l'entraînement, le modèle est converti en une version réellement quantifiée afin que le modèle sur l'appareil soit plus petit et généralement conserve mieux la précision que la PTQ naïve.
Après l'affinage comme décrit dans le notebook Colab, nous l'enregistrons ensuite dans un .pte fichier via Executorch :
🏁 Déploiement après l'entraînement
Et maintenant, avec votre qwen3_0.6B_model.pte fichier qui fait environ 472 Mo, nous pouvons le déployer ! Choisissez votre appareil et lancez-vous :
Run LLMs on your Phone – Route Xcode, simulateur ou appareil
Run LLMs on your Phone – Route en ligne de commande, pas besoin de Studio
Déploiement iOS
Tutoriel pour faire fonctionner votre modèle sur iOS (testé sur un iPhone 16 Pro mais fonctionnera aussi sur d'autres iPhones). Vous aurez besoin d'un appareil macOS physique capable d'exécuter Xcode 15.
Configuration de l'environnement de développement macOS
Installer Xcode et les outils en ligne de commande
Installez Xcode depuis le Mac App Store (doit être la version 15 ou ultérieure)
Ouvrez Terminal et vérifiez votre installation :
xcode-select -pInstallez les outils en ligne de commande et acceptez la licence :
xcode-select --installsudo xcodebuild -license accept
Lancez Xcode pour la première fois et installez tous les composants supplémentaires lorsqu'on vous le demande
Si on vous demande de sélectionner des plateformes, choisissez iOS 18 et téléchargez-le pour accéder au simulateur
Vérifiez que tout fonctionne : xcode-select -p
Vous devriez voir un chemin affiché. Sinon, répétez l'étape 3.

Configuration du compte développeur Apple
Pour les appareils physiques uniquement !
Ignorez toute cette section si vous utilisez uniquement le simulateur iOS. Vous n'avez besoin d'un compte développeur payant que pour le déploiement sur un iPhone physique.
Créez votre identifiant Apple
Vous n'avez pas d identifiant Apple ? Inscrivez-vous ici.
Ajoutez votre compte à Xcode
Ouvrez Xcode
Allez dans Xcode → Settings → Accounts
Cliquez sur le bouton + et sélectionnez Apple ID
Connectez-vous avec votre identifiant Apple habituel

Inscrivez-vous au programme Apple Developer
ExecuTorch requiert la capacité increased-memory-limit, qui nécessite un compte développeur payant :
Visitez developer.apple.com
Connectez-vous avec votre identifiant Apple
Inscrivez-vous au programme Apple Developer
Configurer l'application de démonstration ExecuTorch
Récupérez le code d'exemple :
Ouvrir dans Xcode
Ouvrir
apple/etLLM.xcodeprojdans XcodeDans la barre d'outils supérieure, sélectionnez
iPhone 16 ProSimulateur comme appareil cibleAppuyez sur Play (▶️) pour construire et exécuter
🎉 Succès ! L'application devrait maintenant se lancer dans le simulateur. Elle ne fonctionnera pas encore, nous devons ajouter votre modèle.

Déploiement sur le simulateur
Aucun compte développeur n'est nécessaire.
Préparez vos fichiers de modèle
Arrêtez le simulateur dans Xcode (appuyez sur le bouton stop)
Accédez à votre dépôt HuggingFace Hub (si non enregistré localement)
Téléchargez ces deux fichiers :
qwen3_0.6B_model.pte(votre modèle exporté)tokenizer.json (le tokenizer)
Créez un dossier partagé sur le simulateur
Cliquez sur le bouton Home virtuel du simulateur
Ouvrez l'app Fichiers → Parcourir → Sur mon iPhone
Appuyez sur le bouton ellipsis (•••) et créez un nouveau dossier nommé
Qwen3test
Transférer des fichiers en utilisant le Terminal
Lorsque vous voyez le dossier, exécutez ce qui suit :
Charger & discuter
Retournez à l'app etLLM dans le simulateur. Touchez-la pour lancer.

Chargez le modèle et le tokenizer depuis le dossier Qwen3test

Commencez à discuter avec votre modèle affiné ! 🎉

Déploiement sur votre iPhone physique
Configuration initiale de l'appareil
Connectez votre iPhone à votre Mac via USB
Déverrouillez votre iPhone et appuyez sur « Faire confiance à cet appareil »
Dans Xcode, allez à Window → Devices and Simulators
Attendez que votre appareil apparaisse à gauche (il peut afficher « Preparing » pendant un moment)
Configurer la signature dans Xcode
Ajoutez votre compte Apple : Xcode → Settings → Accounts →
+Dans le navigateur de projet, cliquez sur le projet etLLM (icône bleue)
Sélectionnez etLLM sous TARGETS
Allez à l'onglet Signing & Capabilities
Cochez « Automatically manage signing »
Sélectionnez votre équipe dans le menu déroulant

Changez l'identifiant de bundle en quelque chose d'unique (par ex., com.votrenom.etLLM). Cela corrige 99 % des erreurs de profil de provisioning
Ajouter la capacité requise
Toujours dans Signing & Capabilities, cliquez sur + Capability
Recherchez « Increased Memory Limit » et ajoutez-la
Construire & exécuter
Dans la barre d'outils supérieure, sélectionnez votre iPhone physique dans le sélecteur d'appareil
Appuyez sur Play (▶️) ou pressez Cmd + R
Faites confiance au certificat du développeur
Votre première construction échouera—c'est normal !
Sur votre iPhone, allez dans Réglages → Confidentialité et sécurité → Mode développeur
Activez-le
Acceptez et validez les avertissements
Redémarrez l'appareil, revenez à Xcode et appuyez à nouveau sur Play
Le Mode développeur permet à Xcode d'exécuter et d'installer des apps sur votre iPhone
Transférer les fichiers du modèle vers votre iPhone

Une fois l'app en cours d'exécution, ouvrez Finder sur votre Mac
Sélectionnez votre iPhone dans la barre latérale
Cliquez sur l'onglet Fichiers
Déployez etLLM
Glissez-déposez vos fichiers .pte et tokenizer.json directement dans ce dossier
Soyez patient ! Ces fichiers sont volumineux et peuvent prendre quelques minutes
Charger & discuter
Sur votre iPhone, revenez à l'app etLLM

Chargez le modèle et le tokenizer depuis l'interface de l'app

Votre Qwen3 affiné fonctionne maintenant nativement sur votre iPhone !

Déploiement Android
Ce guide couvre comment construire et installer l'application de démonstration ExecuTorch Llama sur un appareil Android (testé avec Pixel 8 mais fonctionnera aussi sur d'autres téléphones Android) en utilisant un environnement en ligne de commande Linux/Mac. Cette approche minimise les dépendances (pas besoin d'Android Studio) et décharge le processus de compilation lourd sur votre ordinateur.
Prérequis
Assurez-vous que votre machine de développement dispose des éléments suivants installés :
Java 17 (Java 21 est souvent par défaut mais peut causer des problèmes de build)
Git
Wget / Curl
Outils en ligne de commande Android
Guide d'installation et configuration
adbsur votre Android et votre ordinateur
Vérification
Vérifiez que votre version de Java correspond à 17.x :
Si ce n'est pas le cas, installez-la via Ubuntu/Debian :
Puis définissez-la comme par défaut ou exportez JAVA_HOME:
Si vous êtes sur un autre OS ou distribution, vous pouvez suivre ce guide ou simplement demander à votre LLM préféré de vous guider.
Étape 1 : Installer Android SDK & NDK
Configurez un environnement SDK Android minimal sans le plein Android Studio.
1. Créez le répertoire SDK :
Installer les outils en ligne de commande Android
Étape 2 : Configurer les variables d'environnement
Ajoutez celles-ci à votre ~/.bashrc ou ~/.zshrc:
Rechargez-les :
Étape 3 : Installer les composants du SDK
ExecuTorch requiert des versions NDK spécifiques.
Définir la variable NDK :
Étape 4 : Récupérer le code
Nous utilisons le repository executorch-examples qui contient la démo Llama mise à jour.
Étape 5 : Corriger les problèmes de compilation courants
Notez que le code actuel n'a pas ces problèmes mais nous les avons rencontrés précédemment et cela pourrait vous être utile :
Corriger « SDK Location not found » :
Créez un fichier local.properties pour indiquer explicitement à Gradle où se trouve le SDK :
Corriger erreur cannot find symbol : Le code actuel utilise une méthode dépréciée
getDetailedError() . Patchez-la avec cette commande :sed -i 's/e.getDetailedError()/e.getMessage()/g' llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java
Cette étape compile l'app et les bibliothèques natives.
Accédez au projet Android :
cd llm/android/LlamaDemo
à 17 pour éviter les erreurs de toolchain) :
JAVA_HOMERemarque : La première exécution prendra quelques minutes../gradlew :app:assembleDebug
app/build/outputs/apk/debug/app-debug.apk
Vous avez deux options pour installer l'app.
Option A : Utiliser ADB (filaire/sans fil)
Si vous avez
accès à votre téléphone : adb adb install -r app/build/outputs/apk/debug/app-debug.apk
Si vous êtes sur une VM distante ou n'avez pas de câble :
Téléversez l'app-debug.apk dans un emplacement d'où vous pouvez la télécharger sur le téléphone
Téléchargez-la sur votre téléphone
Appuyez pour installer (activez « Installer depuis des sources inconnues » si demandé).
Étape 8 : Transférer les fichiers du modèle
L'application a besoin du modèle .pte et des fichiers tokenizer.
Transférer les fichiers : Déplacez votre model.pte et tokenizer.bin (ou tokenizer.model) dans le stockage de votre téléphone (par ex., dossier Téléchargements).
Ouvrir l'application LlamaDemo : Lancez l'app sur votre téléphone.
Sélectionner le modèle
Appuyez sur Paramètres (icône engrenage) ou sur le sélecteur de fichiers.
Accédez à votre dossier Téléchargements.
Sélectionnez votre fichier .pte.
Sélectionnez votre fichier tokenizer.
Terminé ! Vous pouvez maintenant discuter avec le LLM directement sur votre appareil.
Dépannage
La compilation échoue ? Vérifiez java -version. Elle DOIT être 17.
Le modèle ne se charge pas ? Assurez-vous d'avoir sélectionné à la fois le
ET le
.ptetokenizerL'application plante ? Des.fichiers valides doivent être exportés spécifiquement pour ExecuTorch (généralement backend XNNPACK pour le CPU).
.pteTransférer le modèle vers votre téléphone
Actuellement,
executorchllama l'app que nous avons construite ne prend en charge le chargement du modèle que depuis un répertoire spécifique sur Android qui n'est malheureusement pas accessible via les gestionnaires de fichiers classiques. Mais nous pouvons sauvegarder les fichiers du modèle dans ce répertoire en utilisant adb. Assurez-vous qu'adb fonctionne correctement et est connecté
adb devices
Ou si vous vous êtes connecté via un câble :

Si vous n'avez pas donné les permissions à l'ordinateur pour accéder à votre téléphone :

Alors vous devez vérifier votre téléphone pour un dialogue popup qui ressemble à ceci (que vous voudrez peut-être autoriser)

Une fois fait, il est temps de créer le dossier où nous devons placer les

tokenizer.json .pte et fichiers. Créez le répertoire indiqué sur le chemin du téléphone.
adb shell mkdir -p /data/local/tmp/llama
adb shell ls -l /data/local/tmp/llama
adb push <path_to_tokenizer.json on your computer> /data/local/tmp/llama

executorchllamademo
que vous avez installée à l'étape 5, puis touchez l'icône d'engrenage en haut à droite pour ouvrir les Paramètres.Touchez la flèche à côté de Model pour ouvrir le sélecteur et sélectionnez un modèle. Si vous voyez une boîte blanche vide sans nom de fichier, votre push ADB du modèle a probablement échoué - refaites cette étape. Notez aussi qu'il peut initialement afficher « no model selected ».Après avoir sélectionné un modèle, l'app devrait afficher le nom du fichier du modèle.
Répétez maintenant la même opération pour le tokenizer. Cliquez sur la flèche à côté du champ tokenizer et sélectionnez le fichier correspondant.


Vous devrez peut-être sélectionner le type de modèle selon celui que vous téléchargez. Qwen3 est sélectionné ici.

Une fois les deux fichiers sélectionnés, cliquez sur le bouton « Load Model ».

Vous reviendrez à l'écran initial avec la fenêtre de chat, et il se peut qu'il affiche « model loading ». Cela peut prendre quelques secondes en fonction de la RAM et des vitesses de stockage de votre téléphone.

Une fois qu'il indique « successfully loaded model », vous pouvez commencer à discuter avec le modèle. Et voilà, vous avez maintenant un LLM fonctionnant nativement sur votre téléphone Android !

ExecuTorch alimente des milliards

📱alimente des expériences ML sur appareil pour des milliards de personnes
ExecuTorch sur Instagram, WhatsApp, Messenger et Facebook. Instagram Cutouts utilise ExecuTorch pour extraire des stickers éditables à partir de photos. Dans des applications chiffrées comme Messenger, ExecuTorch permet l'identification linguistique et la traduction sensibles à la confidentialité sur l'appareil. ExecuTorch prend en charge plus d'une douzaine de backends matériels chez Apple, Qualcomm, ARM et Quest 3 et Ray-Bans de Meta Support d'autres modèles.
Tous les modèles denses Qwen 3 (
Qwen3-32BQwen3-0.6B, Qwen3-4B, etc) Tous les modèles Gemma 3 (
Gemma3-270MGemma3-4B, Gemma3-27B, Tous les modèles Llama 3 ( Tous les modèles Gemma 3 (
Llama 3.1 8BLlama 3.3 70B Instruct, Qwen 2.5, Phi 4 Mini models, et bien plus encore ! Tous les modèles Gemma 3 (
Vous pouvez personnaliser le
pour Qwen3-0.6B afin de permettre le déploiement sur téléphone pour n'importe lequel des modèles ci-dessus ! notebook Colab gratuit Notebook principal de déploiement sur téléphone pour Qwen3 0.6B
Fonctionne avec Gemma 3
Fonctionne avec Llama 3
Allez sur notre
page pour tous les autres notebooks. Carnets Unsloth
Mis à jour
Ce contenu vous a-t-il été utile ?

