Faire tourner un LLM en local sur Android
Un LLM local sur Android, c'est un assistant qui répond hors ligne, sans cloud, directement sur le processeur de votre téléphone. Les modèles 1 à 4 milliards de paramètres quantifiés tiennent aujourd'hui dans la RAM d'un smartphone milieu de gamme et répondent à une vitesse utilisable. Ce guide couvre trois approches — PocketPal et MLC Chat pour démarrer sans ligne de commande, llama.cpp via Termux pour aller plus loin — avec les vraies contraintes de vitesse, de chauffe et d'autonomie.
#Pourquoi faire tourner un LLM local sur Android
Faire tourner un LLM local sur Android répond à trois besoins concrets : la confidentialité totale (vos prompts ne quittent jamais l'appareil), le fonctionnement hors ligne (avion, zone blanche, roaming coûteux), et la gratuité d'usage (pas d'abonnement ni de facturation au token). Le compromis est la taille : un téléphone fait tourner des modèles bien plus petits qu'un PC, donc moins capables. Mais pour du résumé, de la reformulation, de la traduction ou une discussion simple, un modèle 3B suffit largement.
- Confidentialité
- Le modèle s'exécute sur le SoC du téléphone. Aucune donnée n'est envoyée sur Internet, ce qui est vérifiable en coupant le Wi-Fi et les données mobiles.
- Hors ligne
- Une fois le modèle téléchargé, tout fonctionne en mode avion. Pratique en déplacement ou dans les zones sans réseau.
- Gratuit à l'usage
- Pas de compte, pas de quota, pas de coût au token. Vous ne payez que la batterie consommée.
- Limite à connaître
- Un smartphone plafonne autour de 4B paramètres en pratique. Pour du raisonnement complexe ou du code, un LLM local sur PC reste bien supérieur.
#Ce qu'il faut comme téléphone
Le facteur déterminant est la RAM, exactement comme sur PC où c'est la VRAM qui plafonne la taille du modèle. Un modèle quantifié Q4 de 3B occupe environ 2 Go, auxquels s'ajoute la mémoire du système et de l'application. En pratique, il faut de la marge car Android ferme agressivement les applications qui consomment trop.
- RAM 6 Go
- Le minimum viable. Modèles 1B à 3B en Q4. Fermez les autres applications avant de lancer une inférence.
- RAM 8 Go
- Confortable pour du 3B, possible en 4B. Le sweet spot du milieu de gamme récent.
- RAM 12 Go et plus
- Flagships récents. Permet du 4B sans stress, voire du 7B quantifié agressivement mais lentement.
- Stockage
- Prévoyez 2 à 5 Go libres par modèle téléchargé. Les fichiers GGUF sont volumineux.
- SoC
- Un Snapdragon 8-series ou équivalent récent accélère nettement. Les puces d'entrée de gamme fonctionnent mais restent lentes.
#PocketPal : un LLM local en 5 minutes
PocketPal AI est l'application la plus simple pour démarrer. C'est un projet open source disponible sur le Play Store qui embarque llama.cpp et un catalogue de modèles téléchargeables directement depuis Hugging Face, sans aucune ligne de commande.
- 01Installer l'applicationCherchez « PocketPal AI » sur le Google Play Store et installez-la. L'app est gratuite et open source (code disponible sur GitHub).
- 02Ouvrir le catalogue de modèlesDans l'onglet Models, parcourez la liste des modèles recommandés. PocketPal indique la taille du fichier et signale ceux adaptés à votre RAM.
- 03Télécharger un modèle 1-3BChoisissez un petit modèle pour commencer, par exemple un Gemma 3 1B ou un Llama 3.2 3B en quantization Q4. Le téléchargement se fait sur le réseau, une seule fois.
- 04Charger et discuterAppuyez sur Load à côté du modèle téléchargé, attendez le chargement en mémoire, puis ouvrez le chat. La première réponse démarre après quelques secondes de préchauffage.
PocketPal permet aussi de régler les paramètres d'inférence (température, taille de contexte, nombre de threads CPU) et d'importer vos propres fichiers GGUF si vous voulez un modèle qui n'est pas au catalogue. Pour une première expérience de LLM local sur Android, c'est le chemin le plus court.
#MLC Chat et l'accélération GPU
MLC Chat est l'application de démonstration du projet MLC LLM, qui compile les modèles pour tirer parti du GPU mobile via l'API Vulkan/OpenCL plutôt que de tout exécuter sur le CPU. Sur un SoC récent, cela peut améliorer la vitesse et réduire un peu la consommation par rapport à une exécution CPU pure.
- 01Récupérer l'APKMLC Chat n'est pas toujours sur le Play Store. Téléchargez l'APK officiel depuis le site du projet MLC LLM (llm.mlc.ai) et autorisez l'installation depuis une source externe.
- 02Télécharger un modèle compiléL'app propose des modèles déjà convertis au format MLC (Phi, Gemma, Llama, Qwen en petites tailles). Choisissez-en un adapté à votre RAM.
- 03Lancer le chatSélectionnez le modèle, attendez l'initialisation, puis discutez. MLC affiche la vitesse en tokens/seconde en bas de l'écran.
#llama.cpp via Termux pour aller plus loin
Pour un contrôle total — choisir précisément le modèle, la quantization, exposer un serveur local — le chemin avancé passe par Termux, un émulateur de terminal Android qui donne accès à un environnement Linux sans root. On y compile llama.cpp et on lance l'inférence en ligne de commande, comme sur un PC Linux.
- 01Installer et préparer TermuxInstallez Termux depuis F-Droid, ouvrez-le, puis mettez à jour les paquets de base.
- 02Installer les outils de buildRécupérez le compilateur, git et cmake nécessaires pour compiler llama.cpp.
- 03Compiler llama.cppClonez le dépôt officiel et compilez-le. Sur mobile, le build CPU (ARM NEON) est le plus fiable.
- 04Télécharger un modèle GGUFRécupérez un fichier .gguf de petite taille (1-3B en Q4) depuis Hugging Face avec curl ou wget.
- 05Lancer l'inférenceUtilisez llama-cli pour discuter, ou llama-server pour exposer une API OpenAI-compatible sur localhost accessible depuis un navigateur.
Le mode serveur est intéressant : il expose un endpoint OpenAI-compatible sur localhost, que vous pouvez interroger depuis le navigateur du téléphone ou une autre app. C'est la même logique que le serveur d'Ollama sur PC (qui écoute par défaut sur le port 11434), transposée dans votre poche.
#Quels modèles 1-4B tournent vraiment
Tout se joue dans la tranche 1 à 4 milliards de paramètres, en quantization Q4_K_M (le meilleur compromis qualité/taille, comme sur PC). Au-delà de 4B, un téléphone rame ou manque de RAM. Voici les familles qui donnent les meilleurs résultats en français.
- Gemma 3 1B / 4B
- Les modèles Google sont parmi les plus solides à petite taille, avec un bon multilingue. Le 1B pour la vitesse, le 4B pour la qualité si la RAM suit.
- Llama 3.2 1B / 3B
- Conçus par Meta spécifiquement pour l'edge et le mobile. Le 3B est un excellent généraliste hors ligne.
- Qwen3 1.7B / 4B
- Très bons en multilingue et en raisonnement pour leur taille. Le 4B est capable en Q4 si votre téléphone a 8 Go+.
- Phi-4-Mini
- La déclinaison compacte de Microsoft, orientée qualité de raisonnement à petite empreinte.
#Vitesse, chauffe et batterie : ce qu'il faut savoir
L'inférence LLM sollicite le CPU (ou le GPU) à fond, ce qui a trois conséquences très concrètes sur un téléphone : la vitesse reste modeste, l'appareil chauffe, et la batterie descend vite pendant la génération. Rien de bloquant, mais il faut avoir les ordres de grandeur en tête.
- Vitesse
- Comptez grossièrement 5 à 15 tokens/seconde pour un 3B Q4 sur un SoC milieu-haut de gamme. C'est lisible en temps réel, mais loin d'un GPU de PC. Un 1B est nettement plus rapide.
- Chauffe et throttling
- Après une longue génération, le SoC monte en température et se bride (throttling), ce qui ralentit les réponses suivantes. Laissez respirer entre deux longues requêtes.
- Batterie
- Une session soutenue peut faire chuter la batterie de plusieurs pourcents en quelques minutes. Pour un usage ponctuel c'est indolore ; pour un usage intensif, branchez le chargeur.
- Contexte
- Plus la fenêtre de contexte est grande, plus la mémoire et le temps de traitement augmentent. Sur mobile, gardez un contexte raisonnable (2k-4k tokens) pour rester fluide.
#Dépannage
- L'app se ferme au chargement du modèle
- Manque de RAM. Fermez toutes les autres applications, choisissez un modèle plus petit (1B au lieu de 3B) ou une quantization plus légère.
- Réponses très lentes
- Réduisez la taille du contexte, baissez le nombre de tokens générés, ou passez à un modèle plus petit. Vérifiez aussi que le téléphone ne throttle pas à cause de la chaleur.
- Termux : commande introuvable après compilation
- Le build a échoué silencieusement. Relancez la compilation et lisez les erreurs. Vérifiez que git, cmake et clang sont bien installés.
- Termux abandonné / paquets obsolètes
- Vous avez installé la version Play Store. Désinstallez-la et réinstallez Termux depuis F-Droid ou GitHub.
- Réponses incohérentes
- Normal pour un très petit modèle sur une tâche complexe. Simplifiez la demande, ou acceptez qu'un 1-3B ait des limites de raisonnement.
#Pour aller plus loin
Une fois à l'aise sur mobile, vous voudrez probablement une machine plus capable à la maison pour les tâches lourdes. Ces guides du site prolongent celui-ci :
- Faire tourner un LLM en local sans GPU (CPU only)
- La même logique que sur mobile mais sur PC : modèles recommandés par RAM et astuces pour accélérer en CPU pur.
- Choisir sa quantification (Q4, Q5, Q8, FP16)
- Comprendre pourquoi le Q4_K_M est le compromis recommandé, sur téléphone comme sur PC.
- Installer Ollama
- Pour un vrai serveur LLM à la maison, interrogeable depuis votre téléphone sur le réseau local.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.