Un développeur est parvenu à faire fonctionner un LLM de près de 29 millions de paramètres sur… un ESP32.

Oui, vous avez bien lu. Pas un Raspberry Pi, pas un smartphone… un microcontrôleur à quelques euros.

Pour ceux qui ne connaissent pas, un ESP32 est un microcontrôleur très utilisé dans les objets connectés (domotique, capteurs, robots, électronique embarquée). Il coûte quelques euros et dispose de ressources extrêmement limitées : mémoire rapide < 1Mo et quelques Mo de Flash. On est à des années-lumière des ressources dont dispose le moindre PC moderne.

Avant toute chose, il s’agit d’une preuve de faisabilité (PoC). Ce n’est pas un concurrent de ChatGPT, mais une démonstration extrêmement intéressante d’optimisation logicielle.

❓ Qu’a-t-il modifié ?

Non seulement il a compressé le modèle mais en plus l’auteur a repensé la manière dont le modèle utilise la mémoire :

– le cœur du Transformer (environ 560 000 paramètres) reste dans la mémoire rapide ;

– les 25 millions de paramètres sont stockés dans la mémoire Flash, beaucoup plus grande mais plus lente ;

– les données ne sont lues qu’au moment où elles sont réellement nécessaires

Résultat : environ 9 tokens par seconde sur un ESP32-S3.

🤯 Pourquoi est-ce possible ?

On ne parle pas 29 millions de paramètres manipulés à chaque token généré. En réalité, ici, une grande partie des paramètres est stockée sous forme d’une immense table de correspondance. À chaque génération de token, seule une infime partie est consultée. Cette architecture permet donc de conserver l’essentiel du modèle dans la mémoire Flash tout en gardant uniquement les éléments critiques dans la mémoire rapide.

C’est cette séparation intelligente entre stockage et mémoire de calcul qui rend le PoC possible.

❓ Quels pourraient être les usages ?

Ca ne remplace pas les grands modèles, en revanche, on peut imaginer :

➡️ des assistants ultra-spécialisés embarqués dans une machine industrielle ;

➡️ le pilotage d’un équipement en langage naturel, sans connexion au cloud ;

➡️ des objets connectés capables de dialoguer localement tout en préservant la confidentialité des données.

Ce qui me fascine le plus n’est finalement pas le LLM lui-même. Ceci me rappelle l’époque où l’on cherchait à repousser les limites du matériel grâce à l’ingéniosité du logiciel. Aujourd’hui, la puissance de calcul disponible masque souvent ce type de travail d’optimisation, même si le monde de l’embarqué continue à cultiver cette approche.

Pour moi, l’innovation n’est donc pas d’avoir mis un LLM sur un ESP32. Elle est d’avoir démontré qu’en exploitant intelligemment la hiérarchie mémoire, on peut repousser très loin les limites apparentes du matériel.

💬 Et vous, quel objet du quotidien gagnerait, selon vous, à embarquer un petit LLM fonctionnant entièrement en local, sans dépendre du cloud ?

Source: https://github.com/slvDev/esp32-ai

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.