Pour une machine lente, on préfère toujours sous-promettre. Les fourchettes du guide sont donc construites en prenant les mesures publiées les plus basses quand plusieurs sources se contredisent, et en se limitant aux chiffres obtenus avec Ollama (et non avec llama.cpp, plus rapide de 10 à 20 % sur le même matériel). Les mesures faites avec un ventilateur, un SSD et une alimentation officielle sont retenues ; celles faites avec un Pi surchauffé ou sur microSD ne le sont pas.
1.Le plafond théorique (bande passante mémoire)
Générer un jeton oblige à relire une fois la totalité des poids du modèle depuis la mémoire vive. Le débit maximal possible n'est donc pas une question de puissance de calcul mais de bande passante :
Pi 5 : LPDDR4X-4267 sur un bus de 32 bits
4267 MT/s × 32 bits ÷ 8 = 17,1 Go/s
jetons/s (plafond absolu) ≈ 17,1 ÷ taille du modèle en Go
modèle de 2,0 Go -> 8,5 j/s maximum
modèle de 2,5 Go -> 6,8 j/s maximum
modèle de 5,2 Go -> 3,3 j/s maximum
Fiche technique officielle du Pi 5 (mémoire LPDDR4X-4267, BCM2712)
- raspberrypi.com — Buy a Raspberry Pi 5 / Specification : raspberrypi.com/products/raspberry-pi-5 (« LPDDR4X-4267 SDRAM (1GB, 2GB, 4GB, 8GB, and 16GB) », « Broadcom BCM2712 2.4GHz quad-core 64-bit Arm Cortex-A76 »). C'est aussi la source du fait que la mémoire est soudée par variante : on ne l'augmente pas.
- Le calcul 17,1 Go/s et la formule « jetons/s = bande passante ÷ taille du modèle » sont exposés et appliqués modèle par modèle ici : localaimaster.com — Raspberry Pi 5 LLM Guide: Which Models Fit and How Fast. Cette page rappelle aussi la limite de crédibilité : « tout benchmark annonçant plus de ~8,6 j/s pour un modèle 3B sur Pi 5 annonce quelque chose que le bus mémoire ne peut pas faire ».
- La même analyse, avec le seuil des 80/85 °C (bridage BCM2712) : tinyweights.dev — Running LLMs on Raspberry Pi 5 (« all inference runs on the CPU — neither llama.cpp nor Ollama can use the VideoCore VII GPU for matrix operations »).
2.Les mesures réelles (Ollama, Pi 5, CPU)
2.1 Jeff Geerling / ai-benchmarks — le jeu de données le plus complet
Mesures Ollama sur Pi 5, CPU uniquement, Pi OS Bookworm, plusieurs firmwares testés (les écarts entre firmwares montrent la sensibilité de la machine aux réglages mémoire). Source : github.com/geerlingguy/ai-benchmarks — issue #7 (benchmark Pi 5 16 GB) et, pour la comparaison 8 Go, github.com/geerlingguy/ollama-benchmark — issue #1.
| Machine | Modèle (Ollama) | Débit mesuré | Puissance |
|---|---|---|---|
| Pi 5 16 Go | llama3.2:3b | 4,51 – 4,88 j/s | 11,0 – 11,9 W |
| Pi 5 16 Go | llama3.1:8b | 1,87 – 2,17 j/s | 10,8 – 11,6 W |
| Pi 5 16 Go | llama2:13b | 1,20 – 1,36 j/s | 10,5 – 10,9 W |
| Pi 5 8 Go | llama3.2:3b | 4,61 j/s | 13,9 W |
| Pi 5 8 Go | llama3.1:8b | 1,99 j/s | 13,2 W |
| Pi 5 8 Go | llama2:13b | DNF (ne rentre pas) | — |
C'est de cette source que viennent, par analogie de taille, les fourchettes du guide pour un 8B (1,5–2,5 j/s) et pour un 3B (4–5,8 j/s). À noter : un 13B ne rentre pas dans 8 Go — DNF signifie « Did Not Finish », c'est-à-dire échec de chargement, et non lenteur.
2.2 DFRobot — comparaison multi-modèles sur Pi 5 8 Go
Ollama, Pi 5 8 Go, Raspberry Pi OS. dfrobot.com — Performance Analysis of SLM on Raspberry Pi 5
| Modèle | Taille | Débit mesuré |
|---|---|---|
| qwen2.5:0.5b-q4 | 398 Mo | 19,4 j/s |
| phi3.5:3.8b-q4 | 2,2 Go | 3,42 j/s |
| phi3:3.8b-q4 | 2,2 Go | 3,06 j/s |
| gemma2:2b-q4 | 1,6 Go | 2,97 j/s |
| llama3.1:8b-q4 | 4,7 Go | 1,18 j/s |
| mistral:7b-q4 | 4,1 Go | 0,97 j/s |
| llama2:7b-q4 | 3,8 Go | impossible à charger |
Lecture importante : un 7B annoncé à ~4 j/s « en théorie » tombe en pratique à 1 j/s ou moins. C'est exactement pourquoi les tableaux du guide sont pessimistes.
2.3 Vitesse d'absorption du prompt (la phase qui fait « attendre 10 minutes »)
Le seul chiffre qui décide du confort réel de Hermes sur un Pi, car Hermes envoie un préambule fixe volumineux avant votre message. Mesures llama.cpp sur Pi 5 8 Go avec ventilateur, Llama-3.2-3B Q4_K_M, 4 threads :
| Quantification | Taille | Absorption du prompt | Génération |
|---|---|---|---|
| Q4_0 | 1,92 Go | 34,1 j/s | 6,1 j/s |
| Q4_K_M | 2,02 Go | 31,7 j/s | 5,8 j/s |
| Q8_0 | 3,42 Go | 19,3 j/s | 2,9 j/s |
| F16 | 6,43 Go | 10,1 j/s | 1,6 j/s |
Source : quickfixsurrey.ca — Llama 3.2 3B Raspberry Pi 5 Benchmark
(256 jetons en entrée, 256 en sortie, médiane de 3 passes, Pi 5 8 Go, refroidissement actif).
Cette page documente aussi l'effet du nombre de threads : 4 threads = 5,8 j/s,
3 threads = 5,0 j/s, 8 threads = 4,4 j/s (moins bien que 3 !). D'où le réglage
OLLAMA_NUM_PARALLEL=1 recommandé dans le guide.
Avec 28 j/s d'absorption et un préambule Hermes d'environ 16 000 jetons, le calcul du guide est : 16 000 ÷ 28 ≈ 570 s ≈ 9,5 minutes pour la première réponse d'une session. On retient « 5 à 12 minutes » comme fourchette.
2.4 Comparaisons entre moteurs, et le petit modèle le plus rapide
- Stratosphere Laboratory — How Well Do LLMs Perform on a Raspberry Pi 5? (juin 2025) :
llama.cpp est 10 à 20 % plus rapide qu'Ollama sur le même Pi ;
leurs modèles les plus efficaces sont
gemma3:1bpuisqwen2.5:1.5b; BitNet B1.58 2B atteint ~8 j/s avec une empreinte mémoire minimale. C'est la source de la recommandation « gemma3:1b est le plus rapide » du §4.2 — modèle sans appel d'outils, donc conversation uniquement. - tinyweights.dev : TinyLlama-1.1B Q4_0 → 14,4 j/s (llama.cpp) et 13,75 j/s (Ollama), avec 108 j/s contre 80 j/s en absorption de prompt. Confirme à la fois l'ordre de grandeur des 1B et l'écart Ollama / llama.cpp.
- r/LocalLLaMA — benchmarks gemma4 et autres sur Raspberry Pi 5 :
gemma4 E2B-it Q8_0(4,69 Go) → 41,8 j/s en absorption, 4,52 j/s en génération ;gemma4 E4B-it Q8_0(7,62 Go) → 22,2 j/s et 2,28 j/s. C'est la base des fourchettes données pour les variantesgemma4:e2b-it-qatetgemma4:e4b-it-qat(plus compactes que les Q8_0 mesurés, donc légèrement plus rapides). - Note honnête sur cette dernière source : elle vient d'un fil communautaire, pas d'un laboratoire. Les conditions exactes (modèle de Pi, refroidissement, version de llama.cpp) n'y sont pas toutes documentées. Elle sert à encadrer un ordre de grandeur, pas à promettre un chiffre.
3.Tailles des modèles et support des outils
Toutes les tailles et les capacités tools viennent des fiches officielles
de la bibliothèque Ollama, consultées lors de la rédaction :
- ollama.com/library/qwen3 — capacités
affichées : tools, thinking. Tailles retenues :
0.6b523 Mo ·1.7b1,4 Go ·4b2,5 Go ·8b5,2 Go. - ollama.com/library/llama3.2 —
capacités : tools. Tailles :
1b1,3 Go ·3b2,0 Go. - ollama.com/library/gemma4 —
capacités : vision, tools, thinking, audio (fonction calling natif).
Tailles retenues :
e2b-it-qat4,3 Go ·e4b-it-qat6,1 Go ·e2b(Q4_K_M) 7,2 Go ·e4b(Q4_K_M) 9,6 Go. ⚠️ les versions non QAT sont nettement plus grosses à qualité équivalente : c'est pour cela que le guide recommande les variantes-qat. - ollama.com/library/gemma3 —
capacités : vision uniquement, pas
tools. C'est pourquoigemma3:1best présenté comme « conversation seulement ». - ollama.com/library/qwen2.5 —
aucune capacité
toolsaffichée sur la fiche : le guide ne le propose donc pas, même s'il est efficace en conversation.
Vérification qui vaut toutes les fiches : sur votre propre machine,
ollama show qwen3:4b liste les capacités réelles du modèle téléchargé
(section Capabilities). C'est le contrôle à faire, pas celui du site.
4.Documentation du logiciel
Hermes Agent
- Installation et prérequis, option
--skip-browser, mise en place du lanceur dans~/.local/bin/hermes, dépannage : docs/getting-started/installation - Modèles locaux, contextes, gestion mémoire : docs/user-guide/local-models
- Le guide qui correspond exactement à ce site — Ollama comme backend,
choix du modèle, support des appels d'outils, réglage du contexte, temps
d'attente : docs/guides/local-ollama-setup.
C'est la source de
HERMES_API_TIMEOUT=1800, du fait que Hermes relève automatiquement son délai de lecture pour les points de terminaison locaux (120 s → 1 800 s), et de l'avertissement sur le prefill qui peut durer plusieurs minutes. - Fournisseur « custom »,
model.default/model.provider/model.base_url, réglage du contexte (et le piège documenté :/api/showd'Ollama rapporte la taille maximale du modèle, pas lenum_ctxeffectif) : docs/reference/faq - Variables d'environnement (dont
HERMES_API_TIMEOUTetHERMES_STREAM_READ_TIMEOUT) et la règle « secrets dans.env, réglages dansconfig.yaml» : docs/reference/environment-variables - Passerelle de messagerie :
hermes gateway setup/install/start,enable-linger, service système : docs/user-guide/messaging - Telegram (BotFather, identifiant numérique via @userinfobot, allowlist, privacy mode
des groupes, jeton dans
.env) : docs/user-guide/messaging/telegram - Mises à jour, sauvegarde automatique avant mise à jour, journal
~/.hermes/logs/update.log, retour arrière : docs/getting-started/updating - Index complet de la documentation (une ligne par fonctionnalité) : docs/llms.txt · documentation entière en un fichier : docs/llms-full.txt
Ollama
- Installation Linux (script officiel, paquet ARM64, service systemd) : docs.ollama.com/linux
- Longueur de contexte,
OLLAMA_CONTEXT_LENGTH,ollama ps,PROCESSOR: docs.ollama.com/context-length - Foire aux questions — contexte par défaut 4 096 jetons, Flash
Attention (
OLLAMA_FLASH_ATTENTION) et compression du cache KV : docs.ollama.com/faq - Intégration Hermes officielle (commande
ollama launch hermes, prompts exacts de l'assistant, URLhttp://127.0.0.1:11434/v1) : docs.ollama.com/integrations/hermes
Ubuntu et Raspberry Pi
- Installation d'Ubuntu Server sur Raspberry Pi (carte, cloud-init, SSH) : ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi
- Fiche produit / spécifications et seuils thermiques du Pi 5 : raspberrypi.com/products/raspberry-pi-5
5.Ce qui reste incertain (à vérifier sur la machine)
- Le débit exact sur votre Pi n'est pas prédictible. Il dépend de la
température ambiante, du refroidissement, de la qualité de l'alimentation, du support de
stockage et de la version d'Ollama. Les fourchettes du guide encadrent le résultat ;
la seule mesure qui compte est
ollama run --verbosechez vous (§4.4). - La taille réelle du cache KV est un calcul, pas une mesure. Le guide
utilise la formule standard (~144 Ko par jeton pour un modèle 4B en f16) et vérifie le
total avec
ollama ps. Selon l'implémentation de l'attention (fenêtre glissante ou non), la valeur réelle peut être plus faible — jamais plus élevée. - Flash Attention et le cache KV quantifié sur ARM/CPU ne sont pas garantis. Ollama active Flash Attention « quand le backend et les appareils le supportent » sans promettre le support CPU sur Pi. C'est présenté dans le guide comme une piste à tester, pas comme un réglage recommandé.
- Le préambule exact de Hermes dépend de votre configuration. Les
~16 000 jetons mesurés (23 455 B de prompt système + 40 612 B de schémas d'outils) viennent
d'une installation Hermes réelle et complète. Une installation au démarrage réduite, avec
moins de skills et d'outils, enverra moins — d'où l'étape «
hermes prompt-sizeavant/après » du §8.4. - Les versions logicielles bougent. Les noms de modèles
(
qwen3,gemma4…) et les numéros de version cités datent de la rédaction du guide. Avant de télécharger, vérifiez ce que votre version d'Ollama propose réellement — et surtout, conservez le réflexe décisif :ollama show <modèle>doit affichertoolsdans Capabilities, sinon Hermes ne pourra pas agir.