Pratique

Combien de flash faut-il vraiment à un modèle TinyML ?

2026-09-10 · Tilelli Lab · 7 min de lecture

Dimensionnez le runtime avant de choisir la taille du modèle, pas après.

« Combien de flash faut-il à un modèle TinyML » reçoit d'ordinaire pour réponse le nombre de poids, qui est le plus petit des trois nombres qui comptent. Voici l'arithmétique complète, pour dimensionner un composant avant d'entraîner quoi que ce soit.

Les trois postes qui consomment de la flash

PosteCe que c'estTaille typique
PoidsLes paramètres, quantifiésparamètres × octets par poids
RuntimeInterpréteur, noyaux d'opérateurs, tables de dispatch0 à ~40 Ko
Description du modèleGraphe, métadonnées de tenseursquelques Ko, ou zéro si compilé

Le runtime est celui qu'on oublie, et c'est souvent le plus gros. Pour le même réseau de 6 567 paramètres, mesuré :

OctetsMoteur compilé à forme fixeTensorFlow Lite for Microcontrollers
Poids7 04432 800
Runtime en flash8 40038 912
Total15 44471 712

L'interpréteur coûte plus de flash que le modèle. Ce n'est pas une critique de TensorFlow Lite — un interpréteur, c'est ce qui permet de changer de modèle sans reflasher. C'est une critique du dimensionnement fait sur le seul compte de poids.

Octets par poids, selon la quantification

SchémaBits/poids10 000 paramètresMultiplications ?
FP323240 000 ooui, flottantes
int8810 000 ooui, entières
int445 000 ooui, entières
Ternaire, base 3~1,6~2 000 onon — signe, saut ou copie

C'est la RAM qui mord vraiment

La flash est bon marché et le devient de plus en plus. La SRAM, ni l'un ni l'autre. Un composant avec 512 Ko de flash et 20 Ko de SRAM est parfaitement ordinaire, et c'est la SRAM qui décide si votre modèle tourne.

Mesuré, pour la ligne modèle de langage, pic de RAM pile comprise sur une vraie compilation Cortex-M3 : 14,5 Ko pour nano, 27,5 Ko pour small, 52 Ko pour classifier, 104 Ko pour tinystories, 205 Ko pour mid, 411 Ko pour le modèle de production 944K. Le tableau complet est ici.

Une procédure de dimensionnement

  1. Notez la flash et la SRAM réellement disponibles après le reste du firmware.
  2. Retranchez le runtime. Zéro pour un moteur compilé, des dizaines de kilo-octets pour un interpréteur. Avant de choisir une taille de modèle, pas après.
  3. Divisez la flash restante par les octets par poids pour obtenir le plafond de paramètres.
  4. Confrontez ce plafond à la SRAM, pas à la flash. C'est là que la plupart des plans meurent.
  5. Alors seulement, choisissez une architecture — de préférence une dont l'état ne croît pas avec la longueur d'entrée.