TensorFlow Lite Micro et outils pour l'IA des microcontrôleurs

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

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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

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.