Les modèles de langage sur un microcontrôleur semblent absurdes, et jusqu’à récemment, c’était le cas. L’ESP32-S3 dispose de 512 KB de SRAM et jusqu’à 32 MB de PSRAM externe. Un modèle de chat utile nécessite des gigaoctets. L’astuce qui a changé en 2025 était les nanomodèles quantifiés : des transformateurs de 20 à 30 millions de paramètres, quantifiés INT8, ajustés pour une tâche étroite, qui s’inscrivent entre la « détection de mots-clés » et le « LLM cloud ». Un article récent de XDA a guidé un modèle de 28,9M déployé sur un ESP32-S3, et les commentaires ont clarifié que la plus grande question n’est pas « peux-je faire cela » mais « quels outils utilisé-je ». Voici les sept applications de bureau que nous installerions en premier.
Ce qu’il faut rechercher dans une chaîne d’outils LLM pour microcontrôleurs
- Support de quantification de modèles. INT8 est le strict minimum ; INT4 et précision mixte déverrouillent plus d’espace.
- Gestion de la mémoire spécifique à la carte. ESP32-S3 avec PSRAM se comporte différemment d’un RP2040 nu ou d’une carte nRF.
- Une arène tenseur ou un exécuteur de graphe. TensorFlow Lite Micro et TinyMaix sont les deux runtimes dominants.
- Un moniteur série et un chemin d’analyseur logique. Déboguer un modèle bloqué nécessite une télémétrie en direct, pas seulement des déclarations d’impression.
- Une compilation compatible CI. Si le modèle change chaque semaine, la compilation doit être scriptée proprement.
- Un chemin vers les mises à jour en direct. Le flashage par USB est parfait pour le prototypage, douloureux en production.
Comparaison rapide
| Application | Meilleur pour | Plates-formes | Plan gratuit | Remarque |
|---|---|---|---|---|
| TensorFlow Lite Micro | Le runtime d’inférence par défaut des microcontrôleurs | Windows, macOS, Linux | Oui | Bibliothèque C++, s’intègre à n’importe quelle chaîne d’outils |
| Edge Impulse Studio | Pipeline données-à-firmware | Web + CLI de bureau | Niveau gratuit | Entraîne et déploie des modèles à partir d’un navigateur |
| PlatformIO | Build multiplateforme dans VS Code | Windows, macOS, Linux | Oui | Gère ESP32, RP2040, nRF, STM32 dans un projet |
| ESP-IDF | SDK officiel d’Espressif | Windows, macOS, Linux | Oui | Support de première classe pour PSRAM ESP32-S3 et accélérateurs IA |
| Arduino IDE 2 | Déploiement convivial pour les débutants | Windows, macOS, Linux | Oui | Supporte maintenant les paquets de cartes ESP32 par défaut |
| TinyMaix | Runtime le plus léger pour les petits modèles | Linux, macOS, Windows | Oui | Noyau d’inférence de 400 lignes, convivial INT8 |
| llama.cpp | Exécuteur de modèles petits multiplateforme | Windows, macOS, Linux | Oui | La référence pour l’inférence de transformateur petit |
Les applications
1. TensorFlow Lite Micro — Meilleur runtime par défaut
TensorFlow Lite Micro (TFLM) est le runtime que la plupart des projets d’IA des microcontrôleurs standardisent. C’est une bibliothèque C++ sans allocation dynamique, sans dépendances du système d’exploitation et sans accès au système de fichiers. Espressif fournit un composant ESP-IDF officiel qui ajoute des noyaux ESP-NN pour le S3, de sorte que les convolutions INT8 et les couches denses s’exécutent quatre à huit fois plus vite que les noyaux de référence. Si vous êtes novice en IA des microcontrôleurs, c’est le runtime que les tutoriels supposent.
Où ça coince : l’API est C++ et implacable. Le débogage d’une mauvaise entrée de modèle se termine souvent dans une trace de pile sur le port série.
Tarification :
- Gratuit : Apache 2.0
- Payant : aucun
Plates-formes : la chaîne d’outils de bureau s’exécute sur Windows, macOS, Linux
Télécharger : github.com/tensorflow/tflite-micro
Conclusion : la première bibliothèque à ajouter à un nouveau projet d’IA de microcontrôleur.
2. Edge Impulse Studio — Meilleur pipeline données-à-firmware
Edge Impulse Studio est l’application web qui vous permet de passer d’un enregistrement de capteur à un binaire firmware déployable. Téléchargez des données, étiquetez-les, choisissez une architecture de modèle, entraînez, et il émet une bibliothèque C++ ou un sketch Arduino complet ajusté pour la carte cible. Le support pour ESP32-S3, nRF52840, Nicla Vision et Nano 33 BLE Sense est profond. Le CLI de bureau vous permet de scripter l’ensemble du pipeline pour CI.
Où ça coince : le niveau gratuit limite le temps d’entraînement et la taille de l’ensemble de données. Les architectures avancées nécessitent le niveau d’entreprise.
Tarification :
- Gratuit : niveau amateur avec travaux limités dans le temps
- Payant : Professional et Enterprise, devis à la demande
Plates-formes : application Web plus CLI pour Windows, macOS, Linux
Télécharger : edgeimpulse.com
Conclusion : le choix quand vous préférez entraîner dans un navigateur plutôt que dans Colab.
3. PlatformIO — Meilleur environnement de build multiplateforme
PlatformIO est l’extension VS Code qui transforme un projet en build pour l’une des cent cartes. Basculez la cible de ESP32-S3 vers RP2040 vers nRF52 avec une modification de deux lignes dans platformio.ini. Les bibliothèques TensorFlow Lite Micro, TinyMaix et Edge Impulse s’installent toutes via le gestionnaire de paquets intégré. L’intégration du débogueur fonctionne avec n’importe quelle sonde J-Link ou ST-Link.
Où ça coince : le téléchargement initial est lourd. Les performances à la première exécution sont lentes sous Windows.
Tarification :
- Gratuit : IDE complet pour les projets communautaires
- Payant : abonnement PlatformIO Labs pour les équipes, devis à la demande
Plates-formes : Windows, macOS, Linux (comme extension VS Code)
Télécharger : platformio.org
Conclusion : l’environnement qui maintient le même projet en vie sur trois fournisseurs de puces.
4. ESP-IDF — Meilleur quand la cible est spécifiquement ESP32-S3
ESP-IDF est le framework officiel d’Espressif. Si le projet s’engage envers la famille ESP32-S3, c’est l’outillage le plus approfondi : allocateurs PSRAM natifs, noyaux ESP-NN propriétaires et support de mise à jour OTA intégré. Le CLI idf.py pilote menuconfig, flash, monitor et les tests unitaires. S’associe proprement avec TFLM et TinyMaix.
Où ça coince : ESP32 uniquement. Verrouiller tôt limite la portabilité.
Tarification :
- Gratuit : Apache 2.0
- Payant : aucun
Plates-formes : Windows, macOS, Linux
Télécharger : github.com/espressif/esp-idf
Conclusion : le framework quand vous savez que la cible est un ESP32.
5. Arduino IDE 2 — Meilleur pour le premier projet d’IA de microcontrôleur
Arduino IDE 2 est le point de départ de la plupart des gens. Les gestionnaires de cartes pour ESP32, RP2040 et nRF ne sont qu’à un clic, TensorFlow Lite Micro est disponible en tant que bibliothèque fournie, et le moniteur série est directement dans l’application. La version 2.x réécrite a ajouté un vrai débogueur et des sketches par projet.
Où ça coince : les builds plus lentes que PlatformIO ou ESP-IDF, et moins de contrôle sur les drapeaux de compilation.
Tarification :
- Gratuit : IDE complet
- Payant : abonnement Arduino Cloud pour OTA et tableaux de bord
Plates-formes : Windows, macOS, Linux
Télécharger : arduino.cc/en/software
Conclusion : la rampe d’accès que la plupart des premiers projets utilisent avant de passer à PlatformIO.
6. TinyMaix — Meilleur runtime pour les plus petits modèles
TinyMaix est le runtime auquel vous recourez quand TFLM est trop gros. Tout le moteur d’inférence est environ 400 lignes de C. Il supporte les modèles quantifiés INT8 et INT16, l’inférence entière uniquement et les cartes avec aussi peu que 30 KB de RAM. Parfait pour les petits décodeurs de transformateurs qui n’ont besoin que de saluer, classifier ou router.
Où ça coince : couverture opérationnelle plus étroite que TFLM. Les couches personnalisées peuvent nécessiter d’être portées à la main.
Tarification :
- Gratuit : Apache 2.0
- Payant : aucun
Plates-formes : compilations croisées à partir de Windows, macOS, Linux
Télécharger : github.com/sipeed/TinyMaix
Conclusion : le runtime pour le moment « cela rentre-t-il même ».
7. llama.cpp — Meilleur pour repousser le plafond de ce qu’un microcontrôleur peut contenir
llama.cpp n’est pas un runtime microcontrôleur traditionnel, mais la communauté l’a porté vers ESP32-S3, RP2350 et même les cartes Milk-V RISC-V à titre expérimental. Si le modèle en jeu est un transformer de 20 à 60 millions de paramètres distillé à partir d’une base moderne, le pipeline de quantification GGUF de llama.cpp vous permet de le réduire à quelque chose que la carte peut contenir. S’exécute d’abord sur le bureau pour le prototypage, puis compilé en croix.
Où ça coince : l’intégration de la boucle d’inférence dans un RTOS embarqué est un travail manuel. Les performances en temps réel dépendent d’une quantification agressive.
Tarification :
- Gratuit : MIT
- Payant : aucun
Plates-formes : compilations croisées à partir de Windows, macOS, Linux
Télécharger : github.com/ggml-org/llama.cpp
Conclusion : le runtime de référence pour quiconque presse un transformateur « réel » sur une carte.
Comment choisir le bon
- Si vous n’avez jamais fait cela : Arduino IDE 2 plus TensorFlow Lite Micro. Les tutoriels supposent cette combinaison.
- Si le projet cible une carte ESP32-S3 spécifique et nécessite PSRAM : ESP-IDF.
- Si le projet doit être portable sur ESP32, RP2040 et nRF : PlatformIO.
- Si vous voulez entraîner le modèle dans un navigateur et déployer le firmware en un jour : Edge Impulse Studio.
- Si le modèle doit tenir en moins de 100 KB de RAM : TinyMaix.
- Si vous poussez un transformer de 30 millions de paramètres que llama.cpp peut quantifier : llama.cpp pour le prototypage, TinyMaix ou TFLM pour le port final.
FAQ
Un ESP32-S3 peut-il vraiment exécuter un modèle de langage? Un petit. Moins de 30 millions de paramètres, quantifiés INT8, une seule tâche étroite. N’attendez pas ChatGPT. Attendez la classification des intentions, l’extraction structurée ou les réponses écrites courtes qui surpassent la correspondance de modèles.
Quelle est la différence entre TFLM et TinyMaix? TFLM est le runtime plus large maintenu par Google avec une meilleure couverture d’opérations et des noyaux de fournisseurs. TinyMaix est un runtime plus épuré conçu pour les plus petits appareils. Utilisez TFLM par défaut ; basculez vers TinyMaix quand TFLM ne rentrera pas.
Ai-je besoin d’ESP-IDF si j’utilise PlatformIO? PlatformIO offre une copie d’ESP-IDF sous le capot. Vous obtenez le même runtime, enveloppé dans un système de build plus convivial. Utilisez ESP-IDF directement uniquement quand vous avez besoin des dernières fonctionnalités ou de la configuration exacte de CI d’Espressif.
Edge Impulse peut-il entraîner un LLM pour les microcontrôleurs? Pas encore. Le catalogue de modèles d’Edge Impulse couvre les variantes CNN, RNN et transformer dimensionnées pour la classification et la détection, pas la génération de langage. Pour le travail LLM, entraînez dans PyTorch et utilisez llama.cpp ou TinyMaix pour le déploiement.
llama.cpp est-il vraiment utilisable sur un microcontrôleur? Pour la recherche et les démos, oui. Le déploiement de qualité production bascule généralement vers TFLM ou TinyMaix une fois que l’architecture du modèle est définie, car leur empreinte mémoire est plus compacte et leur intégration dans les builds RTOS est plus propre.