Présentation du modèle

Un modèle de langage de 28,9 millions de paramètres a été mis en œuvre sur un microcontrôleur ESP32-S3, qui coûte environ 8 dollars. Ce modèle génère du texte directement sur le microcontrôleur, sans envoyer de données à un serveur, et affiche chaque mot sur un petit écran connecté au microcontrôleur à raison d'environ 9 jetons par seconde.

Architecture et fonctionnement

Le modèle utilise une idée issue des modèles Gemma de Google, appelée Per-Layer Embeddings, qui permet de stocker la majeure partie du modèle dans la mémoire flash au lieu de la mémoire RAM. Cela signifie que seules les parties du modèle nécessaires pour traiter chaque jeton sont chargées en mémoire RAM, réduisant ainsi les besoins en mémoire rapide. Le microcontrôleur ESP32-S3 dispose de 512 ko de SRAM, ce qui est très limité pour stocker des modèles de langage de grande taille.

Implémentation et performances

L'implémentation de ce modèle sur un microcontrôleur tão petit est une réalisation notable, car elle permet de dépasser les limites de taille de modèle imposées par la mémoire RAM disponible. Le modèle a été formé sur la base de données TinyStories, ce qui signifie qu'il génère des histoires courtes et simples, mais il n'est pas conçu pour répondre à des questions, suivre des instructions ou générer du code.

Limites et analyse

La limite de ce modèle réside dans la petite partie du modèle qui effectue le raisonnement, et la technique de stockage en mémoire flash ne change pas cela. Cependant, l'architecture de ce modèle est intéressante, car elle montre comment il est possible de mettre en œuvre un grand modèle de langage sur un petit microcontrôleur, en utilisant des techniques de stockage et de traitement efficaces.