📱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 à Téléphones Android et iPhones. Nous avons collaboré avec ExecuTorch de PyTorch et Meta pour créer un flux de travail simplifié utilisant l'entraînement tenant compte de la quantification (QAT) puis les déployer directement sur des appareils en périphérie. Avec Unsloth, TorchAO et ExecuTorch, nous montrons comment vous pouvez :
Utiliser la même technologie (ExecuTorch) que Meta utilise pour alimenter des milliards de comptes sur Instagram, WhatsApp
Déployer Qwen3-0.6B localement sur Pixel 8 et iPhone 15 Pro à ~40 jetons/s
Appliquer le QAT via TorchAO pour récupérer 70 % de la précision
Bénéficier d'une confidentialité prioritaire, de réponses instantanées et de capacités hors ligne
Utilisez notre carnet Colab gratuit pour affiner Qwen3 0.6B et l'exporter pour un déploiement sur téléphone
Qwen3-4B déployé sur un iPhone 15 Pro

Qwen3-0.6B fonctionnant à ~40 jetons/s

🦥 Entraîner votre modèle
Nous prenons en charge Qwen3, Gemma3, Llama3, Qwen2.5, Phi4 et bien d'autres modèles pour un déploiement sur téléphone ! Suivez le carnet Colab gratuit pour le déploiement de Qwen3-0.6B :
Commencez par mettre à jour Unsloth et installer TorchAO et Executorch.
Ensuite, utilisez simplement qat_scheme = "phone-deployment" pour indiquer que nous voulons 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" en réalité, nous utilisons qat_scheme = "int8-int4" sous le capot pour activer le QAT Unsloth/TorchAO qui simule la quantification dynamique des activations en INT8 avec la quantification des poids en INT4 pour les couches Linear 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 vraie version quantifiée afin que le modèle embarqué soit plus petit et généralement conserve mieux la précision que le PTQ naïf.
Après l'affinage tel que décrit dans le carnet Colab, nous l'enregistrons ensuite dans un fichier .pte via ExecuTorch :
🏁 Déploiement après l'entraînement
Et maintenant, avec votre qwen3_0.6B_model.pte fichier d'environ 472 Mo, nous pouvons le déployer ! Choisissez votre appareil et lancez-vous directement :
Run LLMs on your Phone – voie Xcode, simulateur ou appareil
Run LLMs on your Phone – voie en ligne de commande, sans besoin d'Unsloth
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 physique sous macOS 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 en version 15 ou ultérieure)
Ouvrez le 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'ils vous y invitent
Si l'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 Apple Developer
Pour les appareils physiques uniquement !
Sautez toute cette section si vous n'utilisez que 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 → Réglages → Comptes
Cliquez sur le bouton + et sélectionnez Identifiant Apple
Connectez-vous avec votre identifiant Apple habituel

Inscrivez-vous au programme Apple Developer
ExecuTorch nécessite la capacité de limite de mémoire augmentée, 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
Ouvrez
apple/etLLM.xcodeprojdans XcodeDans la barre d'outils supérieure, sélectionnez
iPhone 16 Prole simulateur comme appareil cibleAppuyez sur Play (▶️) pour compiler 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 d'arrêt)
Accédez à votre dépôt HuggingFace Hub (s'il n'est pas 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 Accueil virtuel du simulateur
Ouvrez l'application Fichiers → Parcourir → Sur mon iPhone
Touchez le bouton points de suspension (•••) et créez un nouveau dossier nommé
Qwen3test
Transférez les fichiers à l'aide du Terminal
Quand vous voyez le dossier, exécutez ce qui suit :
Charger et discuter
Retournez à l'application etLLM dans le simulateur. Touchez-la pour la 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 touchez « Faire confiance à cet appareil »
Dans Xcode, allez dans Fenêtre → Appareils et simulateurs
Attendez que votre appareil apparaisse à gauche (il peut afficher « Préparation » pendant un moment)
Configurer la signature dans Xcode
Ajoutez votre compte Apple : Xcode → Réglages → Comptes →
+Dans le navigateur du projet, cliquez sur le projet etLLM (icône bleue)
Sélectionnez etLLM sous TARGETS
Allez dans l'onglet Signing & Capabilities
Cochez « Gérer automatiquement la signature »
Sélectionnez votre équipe dans le menu déroulant

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

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

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

Votre Qwen3 affiné fonctionne désormais nativement sur votre iPhone !

Déploiement Android
Ce guide explique comment compiler et installer l'application de démonstration Llama d'ExecuTorch sur un appareil Android (testé avec un Pixel 8, mais fonctionnera aussi sur d'autres téléphones Android) à l'aide d'un environnement en ligne de commande Linux/Mac. Cette approche minimise les dépendances (pas besoin d'Android Studio) et déporte le processus de compilation lourd sur votre ordinateur.
Exigences
Assurez-vous que votre machine de développement dispose des éléments suivants installés :
Java 17 (Java 21 est souvent la valeur par défaut mais peut causer des problèmes de compilation)
Git
Wget / Curl
Outils en ligne de commande Android
Guide d'installation et de configuration
adbsur votre Android et votre ordinateur
Vérification
Vérifiez que votre version de Java correspond à la version 17.x :
Si ce n'est pas le cas, installez-le via Ubuntu/Debian :
Puis définissez-le comme valeur par défaut ou exportez JAVA_HOME:
Si vous êtes sur un autre système d'exploitation ou une autre distribution, vous voudrez peut-être suivre ce guide ou simplement demander à votre LLM préféré de vous guider.
Étape 1 : Installer Android SDK et NDK
Configurez un environnement Android SDK minimal sans l'Android Studio complet.
1. Créez le répertoire SDK :
Installer les outils en ligne de commande Android
Étape 2 : Configurer les variables d'environnement
Ajoutez-les à votre ~/.bashrc ou ~/.zshrc:
Rechargez-les :
Étape 3 : Installer les composants SDK
ExecuTorch nécessite des versions spécifiques du NDK.
Définissez la variable NDK :
Étape 4 : Récupérer le code
Nous utilisons le référentiel 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 déjà rencontrés auparavant 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 cannot find symbol erreur :
Le code actuel utilise une méthode obsolète getDetailedError(). Corrigez-la avec cette commande :
Étape 6 : Compiler l'APK
Cette étape compile l'application et les bibliothèques natives.
Accédez au projet Android :
Compilez avec Gradle (définissez explicitement
JAVA_HOMEsur 17 pour éviter les erreurs de chaîne d'outils) :Remarque : la première exécution prendra quelques minutes.
L'apk final généré se trouve ici :
Étape 7 : Installer sur votre appareil Android
Vous avez deux options pour installer l'application.
Option A : utiliser ADB (avec fil/sans fil)
Si vous avez adb accès à votre téléphone :
Option B : transfert direct de fichiers
Si vous êtes sur une VM distante ou que vous n'avez pas de câble :
Téléversez app-debug.apk à un endroit d'où vous pouvez le télécharger depuis le téléphone
Téléchargez-le sur votre téléphone
Touchez pour installer (activez « Installer depuis des sources inconnues » si demandé).
Étape 8 : Transférer les fichiers du modèle
L'application a besoin des fichiers modèle .pte et tokenizer.
Transférez les fichiers : déplacez votre model.pte et tokenizer.bin (ou tokenizer.model) vers le stockage de votre téléphone (par ex., le dossier Téléchargements).
Ouvrez l'application LlamaDemo : lancez l'application sur votre téléphone.
Sélectionner un modèle
Touchez les Paramètres (icône d'engrenage) ou 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 directement avec le LLM sur votre appareil.
Dépannage
La compilation échoue ? Vérifiez java -version. Il DOIT être en 17.
Le modèle ne se charge pas ? Assurez-vous d'avoir sélectionné à la fois le
.pteET letokenizer.L'application plante ? Des fichiers valides
.ptedoivent être exportés spécifiquement pour ExecuTorch (généralement le backend XNNPACK pour le CPU).
Transférer le modèle sur votre téléphone
Actuellement, executorchllama l'application que nous avons construite ne prend en charge le chargement du modèle que depuis un répertoire spécifique sur Android, malheureusement inaccessible via les gestionnaires de fichiers classiques. Mais nous pouvons enregistrer les fichiers du modèle dans ce répertoire à l'aide d'adb.
Assurez-vous qu'adb fonctionne correctement et est connecté
Si vous vous êtes connecté via le débogage sans fil, vous verriez quelque chose comme ceci :

Ou si vous êtes connecté via un câble :

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

Alors vous devez vérifier votre téléphone pour une boîte de dialogue contextuelle ressemblant à ceci (que vous pouvez autoriser)

Une fois cela fait, il est temps de créer le dossier où nous devons placer le .pte et tokenizer.json fichiers.
Créez le répertoire en question sur le chemin du téléphone.
Vérifiez que le répertoire est correctement créé.
Poussez le contenu vers le répertoire indiqué. Cela peut prendre quelques minutes, voire plus, selon votre ordinateur, la connexion et le téléphone. Veuillez être patient.

Ouvrez l’
executorchllamademoapplication que vous avez installée à l’étape 5, puis appuyez sur l’icône en forme d’engrenage en haut à droite pour ouvrir les Paramètres.Appuyez sur la flèche à côté de Model pour ouvrir le sélecteur et choisir un modèle. Si vous voyez une boîte de dialogue blanche vide sans nom de fichier, l’envoi du modèle via ADB a probablement échoué — refaites cette étape. Notez aussi qu’au départ, il peut afficher « aucun modèle sélectionné ».
Après avoir sélectionné un modèle, l’application 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éversez. Qwen3 est sélectionné ici.

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

Vous serez ramené à l’écran d’origine avec la fenêtre de chat, et il peut afficher « model loading ». Le chargement peut prendre quelques secondes selon la RAM et la vitesse de stockage de votre téléphone.

Une fois qu’il affiche « successfully loaded model », vous pouvez commencer à discuter avec le modèle. Et voilà, vous avez maintenant un LLM qui s’exécute nativement sur votre téléphone Android !

📱ExecuTorch alimente des milliards
ExecuTorch alimente des expériences de ML sur l’appareil pour des milliards de personnes sur Instagram, WhatsApp, Messenger et Facebook. Instagram Cutouts utilise ExecuTorch pour extraire des autocollants modifiables à partir de photos. Dans des applications chiffrées comme Messenger, ExecuTorch permet une identification et une traduction linguistiques respectueuses de la confidentialité, directement sur l’appareil. ExecuTorch prend en charge plus d’une douzaine de backends matériels sur Apple, Qualcomm, ARM et les Quest 3 et les lunettes Ray-Ban de Meta.
Autres modèles pris en charge
Tous les modèles denses Qwen 3 (Qwen3-0.6B, Qwen3-4B, Qwen3-32B etc.)
Tous les modèles Gemma 3 (Gemma3-270M, Gemma3-4B, Gemma3-27B etc.)
Tous les modèles Llama 3 (Llama 3.1 8B, Llama 3.3 70B Instruct etc.)
les modèles Qwen 2.5, Phi 4 Mini, et bien plus encore !
Vous pouvez personnaliser le carnet Colab gratuit pour Qwen3-0.6B afin de permettre le déploiement sur téléphone pour n’importe lequel des modèles ci-dessus !
carnet de déploiement principal sur téléphone Qwen3 0.6B
Fonctionne avec Gemma 3
Fonctionne avec Llama 3
Rendez-vous sur notre Notebooks Unsloth page pour tous les autres carnets.
Mis à jour
Ce contenu vous a-t-il été utile ?

