LLM sur Raspberry Pi 5 : IA locale embarquée
Faire tourner un LLM sur Raspberry Pi sonnait comme une blague il y a deux ans. Avec la Pi 5 8 Go, son SoC BCM2712 quad-core Cortex-A76 à 2.4 GHz, et la vague des petits modèles 1-3B sortis en 2025-2026, c'est devenu un vrai usage. Ce guide installe Ollama sur Raspberry Pi, mesure les tokens/sec sur SmolLM2, Qwen3 1.7B et Phi-3.5 Mini, et montre les cas où un LLM embarqué a du sens.
#Pourquoi un LLM sur Raspberry Pi ?
Un Raspberry Pi 5 ne va pas remplacer votre RTX 4090. Le but n'est pas la vitesse brute, mais l'embarqué : une carte à 80 € qui consomme 5-12 W, tient dans un boîtier de la taille d'une carte de crédit, et tourne H24 sans bruit. Pour des cas d'usage edge — assistant vocal local, station météo intelligente, kiosque offline, robot mobile — c'est suffisant et incomparablement moins cher qu'un mini-PC.
L'autre intérêt : la confidentialité absolue. Aucune donnée ne quitte le réseau local. Vous pouvez monter un assistant familial dans une chambre d'enfant sans Cloud, sans télémétrie, sans abonnement.
#Prérequis matériel
- Raspberry Pi 5 (8 Go obligatoire)
- La version 4 Go peut faire tourner SmolLM2 mais cale dès 1.7B. La 8 Go est le minimum confortable. La 16 Go (sortie fin 2024) ouvre la porte à Phi-3.5 Mini sans swap.
- Carte microSD A2 ou SSD NVMe
- Une SD A1 ralentit énormément le chargement initial du modèle. Idéalement, SSD NVMe via le HAT M.2 officiel — bande passante 500+ Mo/s, chargement Phi-3.5 Mini en 4 s contre 30 s en SD.
- Alimentation 27 W officielle
- La Pi 5 sous inférence tire 9-12 W. L'alim officielle USB-C 5 V/5 A est obligatoire pour éviter le throttling. Une alim 15 W générique sous-volte la carte.
- Refroidissement actif
- Indispensable. Le SoC throttle dès 80 °C. Le ventilateur officiel (5 €) ou un boîtier Argon ONE V3 suffit. Sans dissipateur, vous perdez 30-40 % de débit après 2 minutes d'inférence.
- Pi OS 64-bit (Bookworm)
- Raspberry Pi OS 64-bit basé sur Debian 12. Ollama ne supporte pas le 32-bit. Vérifiez avec uname -m → doit retourner aarch64.
#1. Installer Ollama sur Pi 5
Ollama supporte officiellement linux/arm64 depuis 2024. Le script d'installation universel fonctionne directement sur Pi OS, aucune compilation manuelle nécessaire.
Le script télécharge le binaire ARM64 (~150 Mo), installe un service systemd, et démarre le daemon sur le port 11434. Comptez 1 à 2 minutes.
#2. Modèles recommandés pour Raspberry Pi
Sur Pi 5 8 Go, vous avez environ 6.5 Go de RAM réellement utilisable (le système et son cache prennent le reste). Tout LLM dépassant 4-5 Go en quantization Q4 est inutilisable — il va swapper sur la microSD et tomber à 0.1 tok/s.
Trois modèles donnent les meilleurs résultats sur Pi 5 en mai 2026 :
- SmolLM2 1.7B (HuggingFace, Apache 2.0)
- Le champion du rapport perf/RAM. 1.0 Go en Q4_K_M, multilingue, bon en chat court. Idéal pour assistant simple ou commande vocale.
- Qwen3 1.7B (Alibaba, Apache 2.0)
- Successeur Qwen2.5, sorti début 2026. 1.1 Go en Q4_K_M. Meilleure qualité que SmolLM2 sur le raisonnement, légèrement plus lent. Excellent en français.
- Phi-3.5 Mini 3.8B (Microsoft, MIT)
- Le plus capable des trois mais le plus exigeant. 2.3 Go en Q4_K_M. Tient en RAM sur Pi 5 8 Go, mais laissez peu de marge — pas d'interface graphique lourde en parallèle.
#3. Benchmarks tokens/sec mesurés
Mesures effectuées sur Raspberry Pi 5 8 Go, refroidisseur actif officiel, SSD NVMe via HAT M.2, Pi OS Bookworm 64-bit, Ollama 0.5.x, quantization Q4_K_M, prompt de génération de 200 tokens.
- SmolLM2 1.7B Q4_K_M
- ≈ 5.2 tokens/sec génération · 7.8 tok/s prompt eval · 1.0 Go RAM · 9.4 W
- Qwen3 1.7B Q4_K_M
- ≈ 4.6 tokens/sec génération · 6.9 tok/s prompt eval · 1.1 Go RAM · 9.8 W
- Phi-3.5 Mini 3.8B Q4_K_M
- ≈ 2.1 tokens/sec génération · 3.4 tok/s prompt eval · 2.3 Go RAM · 11.2 W
- Gemma 3 2B Q4_K_M (référence)
- ≈ 3.8 tokens/sec · 1.5 Go RAM · 10.1 W
- Llama 3.2 1B Q4_K_M (très léger)
- ≈ 8.1 tokens/sec · 0.7 Go RAM · 8.9 W. Le plus rapide mais qualité limitée.
Le flag --verbose affiche en fin de génération : eval rate (tok/s), prompt eval rate, total duration. C'est la mesure officielle pour comparer.
#4. Cas d'usage offline pertinents
À 2-5 tok/s, l'inférence Pi ne vise pas le chat temps réel. Les cas où ça brille sont ceux où la latence n'est pas critique, ou bien où la confidentialité et l'autonomie comptent plus que la vitesse.
- Assistant vocal local
- Pi 5 + microphone USB + Whisper.cpp tiny + SmolLM2 + Piper TTS. Question → transcription → réponse → voix synthétisée, le tout en 8-12 s sans Cloud. Domotique offline, kiosque enfant, robot éducatif.
- Résumé d'emails ou de news en batch
- Cron job qui chaque heure pull les RSS, résume avec Phi-3.5 Mini, et envoie sur Telegram/Matrix. Le délai d'inférence est invisible quand c'est asynchrone.
- Classification de logs ou tickets
- Pi en bord de réseau qui tag les logs entrants ('erreur critique', 'spam', 'normal') avant les envoyer à un serveur central. Économise la bande passante WAN.
- Démo embarquée / portable
- Présentation client, atelier scolaire, conférence : Pi 5 dans la poche, batterie USB-C, démo IA locale 100 % autonome.
- Garde-fou pour autres LLM
- Petit modèle local qui filtre/reformule un prompt avant de l'envoyer à un LLM cloud. Utile pour anonymiser des données sensibles côté edge.
#5. Optimisations spécifiques Pi
#Réduire la fenêtre de contexte
Par défaut Ollama utilise num_ctx=2048. Sur Pi, c'est déjà beaucoup — chaque token de contexte consomme de la RAM et ralentit la pré-évaluation. Pour un assistant chat court, descendez à 1024.
#Limiter les threads
Ollama utilise par défaut tous les cœurs. Sur Pi 5 (4 cœurs), c'est optimal pour la vitesse pure mais sature le SoC, ce qui déclenche le throttling thermique au bout de 1-2 minutes. Sur usage long, limiter à 3 cœurs maintient un débit stable plus longtemps.
#Préférer le NVMe à la microSD
Le chargement initial d'un modèle depuis SD lit séquentiellement plusieurs Go. SD A1 → 30-40 s pour Phi-3.5 Mini. NVMe → 3-5 s. Une fois en RAM, l'inférence est identique.
#Quantization plus agressive si besoin
Sur Pi 5 8 Go avec interface graphique active, Phi-3.5 Mini Q4_K_M peut commencer à swapper. La variante Q3_K_S (~1.9 Go) sacrifie ~5 % de qualité contre 400 Mo de RAM en moins.
#Dépannage
- ollama: command not found après install
- Le script systemd a échoué (souvent : Pi OS trop vieux). Vérifiez sudo systemctl status ollama. Si erreur 'exec format error', vous êtes en 32-bit — réinstallez Pi OS 64-bit.
- Le modèle se charge mais 0.3 tok/s
- Vous swappez. Vérifiez free -h : si la colonne 'available' est sous 500 Mo pendant l'inférence, votre modèle est trop gros. Descendez à un 1.7B ou passez en Q3.
- Throttling thermique après 1 minute
- Le SoC a dépassé 80 °C. Vérifiez vcgencmd measure_temp pendant inférence. Solution : ventilateur officiel ou Argon ONE V3. Sans dissipation active, la Pi 5 sous inférence n'est pas utilisable en continu.
- Out of memory à mi-génération
- OOM killer Linux a tué Ollama. Réduisez num_ctx à 1024, fermez le navigateur, ou passez à un modèle plus petit. Sur Pi 4 Go, restez sur Llama 3.2 1B ou SmolLM2 360M.
- Service Ollama ne démarre pas au boot
- sudo systemctl enable ollama pour activer l'autostart. Vérifiez ensuite avec systemctl is-enabled ollama.
#Pour aller plus loin
Une fois Ollama qui tourne sur votre Pi 5, trois directions naturelles pour creuser :
- Comprendre la quantization pour pousser plus loin
- Le guide choisir sa quantification compare Q3, Q4, Q5 et Q8 en détail. Critique sur Pi où chaque 100 Mo de RAM compte.
- Intégrer dans une app Python
- Le guide intégrer Ollama dans Python via l'API REST montre comment piloter votre Pi 5 depuis un script Flask/FastAPI — base de tout assistant edge.
- Automatiser des workflows offline
- Le guide automatiser avec n8n et Ollama est applicable tel quel sur Pi (n8n tourne nativement en ARM64). Idéal pour un hub domotique IA autonome.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.