BLOG
mini-AGI : un modèle de langage au niveau octet en apprentissage continu, entraîné de zéro sur un GPU 8 Go
Déconstruction technique : analyser les cadres techniques de l’IA — explication, analyse, évaluation technique, jugement de valeur, mise en œuvre. Auteur : Yong Liang
Les modèles de langage actuels, l’entraînement est un achat unique : on lit d’un seul coup une énorme quantité de corpus, on le solidifie en socle, et les nouvelles connaissances ne peuvent ensuite être ajoutées que par des cycles de correctifs de fine-tuning. Trop de correctifs et on oublie ; pour vraiment continuer à apprendre, il faut réentraîner. Le 21 septembre 2026, le projet mini-AGI de l’auteur GitHub Alexey Borsky a renversé cet ordre de bout en bout et a été publié sur Show HN, obtenant 255 votes favorables et 56 commentaires. Son affirmation est limpide : lire et s’entraîner sont une seule et même chose — le modèle lit le flux de caractères par blocs, effectue une étape de gradient à chaque bloc lu, sans jamais être gelé, sans jamais « diplômé ». Cet article le décompose en six volets : ce que c’est, pourquoi ça vaut le coup, comment fonctionne le mécanisme, les chiffres et les limites, qui peut le faire tourner, et pour qui il est adapté.
一、Ce que c’est
mini-AGI est un modèle de langage au niveau octet : l’alphabet se compose des 256 valeurs d’octet, sans tokenizer — tous les types de données, texte, code, parties d’échecs, conversations, entrent sans nécessiter de nouveau vocabulaire. Son identité centrale est celle d’un « modèle en apprentissage continu » : il lit en continu le flux de caractères et met à jour ses poids à chaque bloc traité, lecture, inférence et apprentissage empruntant le même chemin de code. La phrase de positionnement du README mérite d’être retenue telle quelle : « pas de phase de fine-tuning distincte, pas de socle gelé, lire et s’entraîner sont une seule et même chose ».
Ce qui est le plus contre-intuitif, c’est la manière dont sont stockés les paramètres. Les poids ne résident pas sur la carte graphique, ils habitent sur le disque et sont paginés dans la mémoire vidéo à la demande — la limite du nombre de paramètres est donc déterminée par la capacité du disque, et non par celle de la mémoire vidéo. C’est comme la mémoire virtuelle d’un système d’exploitation : l’espace d’adressage vu par le programme est bien plus grand que la mémoire physique ; de même, l’espace de paramètres vu par le modèle est bien plus grand que la mémoire vidéo — les poids inutilisés dorment sur le disque, et c’est celui qui en a besoin qui les charge. Ce renversement est le point de départ de toute la conception : la carte graphique ne détermine plus la taille que le modèle peut atteindre, mais seulement la vitesse à laquelle il tourne. L’ensemble du projet compte 42 fichiers, 30 fichiers Python, pèse 17 Mo et est sous licence MIT.
Mais la mesure doit être fixée d’abord : l’auteur lui-même la plante dans le README : « « as of now this is a small toy-level model. Do not expect a frontier level capabilities. » » C’est une petite expérience visant à prouver que l’apprentissage continu peut exister sans oubli catastrophique, pas une percée de capacités. Les poids ne sont pas non plus encore publiés — le premier corpus n’a pas encore été entièrement lu, il faudra encore plusieurs semaines selon l’auteur, qui veut dire qu’on reparlera des chiffres une fois cette passe terminée. C’est avec ces deux phrases en tête qu’il faut lire la suite : le considérer comme une expérience de contrôle menée sérieusement, et non comme un produit semi-fini.
二、Pourquoi ça vaut le coup aujourd’hui
La raison de s’y intéresser n’est pas la puissance du modèle, mais le fait qu’il se place du côté opposé du paradigme actuel.
La posture standard pour obtenir un modèle aujourd’hui est : geler le socle, puis ajouter une fine couche de fine-tuning — LoRA, adapter, continuation de pré-entraînement spécifique au domaine, tout ça dérive de cette logique. Le socle est un actu sacré, immuable ; les nouvelles connaissances sont des bagages ajoutés en externe. Cette voie est mature sur le plan de l’ingénierie, mais elle a un coût structurel : le modèle ne « grandit » jamais vraiment, il ne fait que charger des bagages de plus en plus lourds, jusqu’à un moment où ils commencent à se faire la guerre — l’oubli catastrophique.
La réponse de mini-AGI est de supprimer la frontière entre « entraînement » et « utilisation ». Chaque seconde de vie du modèle est une phase d’apprentissage : lire Wikipédia, c’est apprendre ; lire des parties d’échecs, c’est apprendre ; converser avec vous, c’est aussi apprendre. C’est conceptuellement proche de l’être humain : personne ne compresse vingt ans de lecture dans une unique « phase de pré-entraînement » pour ensuite refermer le dossier. Le coût de sa mise en œuvre est de maintenir les états de l’optimiseur pour des mises à jour de gradient en ligne en permanence, ce qui est bien plus exigeant en ingénierie que de geler après entraînement — c’est pourquoi cela est resté longtemps un concept de papier — jusqu’à ce que quelqu’un le fasse tenir sur une carte graphique grand public de 8 Go. Cette compression en elle-même est le principal sujet de cet article.
Les réactions sur Hacker News témoignent aussi de la nature du projet. Certains partisans disent que voir « Mini-AGI » et « 8 Go de mémoire vidéo » dans la même phrase est comme une bouffée d’air frais — faire tourner un modèle en apprentissage continu en local semble devenu moins inaccessible. Un développeur travaillant sur l’apprentissage continu déclare qu’il cherchait justement des solutions qui ne soient que des correctifs a posteriori, et qu’il est ravi de voir un système construit dès le départ pour prévenir l’oubli catastrophique, qui mérite d’être cloné et lu ligne par ligne. D’autres ont ramené la dimension historique : avant l’essor de l’ordinateur personnel, les anciens experts pensaient que les grandes entreprises s’empareraient de l’intelligence artificielle en premier, mais la voie dominante s’est révélée une impasse — après la démocratisation de la puissance de calcul, ce sont les explorations en périphérie qui ont fait naître de nouvelles choses. Les 255 votes ne récompensent pas un produit, mais un échantillon alternatif sérieusement ingéniérisé.
三、Mécanismes techniques centraux
La conception entière est dictée par trois contraintes dures : tenir dans 8 Go de mémoire vidéo, ne pas quantifier, ne pas oublier, pouvoir lire n’importe quel type de données. Ne pas quantifier est une règle absolue — l’entraînement nécessite des gradients, et les gradients plus les états de l’optimiseur représentent environ trois fois le volume des poids, donc les poids doivent résider sur disque et la carte graphique ne garde que l’ensemble de travail courant. Pouvoir lire n’importe quoi impose une entrée au niveau octet — sans vocabulaire, on n’a pas le problème de « rencontrer une donnée inconnue nécessitant d’élargir le vocabulaire et de réentraîner les embeddings ».
L’architecture est une structure à trois niveaux : 2 blocs denses de prélude, plus 1 bloc en boucle appliqué au même lot de caractères au maximum 24 fois. La profondeur est un halting adaptatif de type PonderNet : un halting head note chaque caractère à chaque ligne et juge si calculer une ligne de plus changerait la réponse — les caractères simples s’arrêtent après une seule ligne, les caractères difficiles calculent automatiquement davantage. Cela transforme « la puissance de calcul suit la difficulté » d’un slogan en une stratégie d’exécution caractère par caractère.
Le routage est une variante de l’approche par experts mixtes : lors des 26 applications de bloc, chacune choisit indépendamment ses top-8 experts ; un même caractère peut choisir le même expert plusieurs fois à différentes profondeurs. Les experts n’ont pas de thèmes assignés manuellement, le routage soft top-k répartit spontanément les différentes capacités entre les experts. Cela s’accompagne de mécanismes de croissance et d’élagage — si la capacité est insuffisante, on crée de nouveaux experts ; si un expert n’est plus utilisé depuis longtemps, on le supprime. L’auteur a ajouté sur Hacker News une explication très imagée : c’est très « organique », en dehors de la rétropropagation classique, il y a en arrière-plan une couche de sélection naturelle, chaque nouvel expert ayant 16 « parents ».
Le codage de position retenu est le rotary, sans paramètre d’apprentissage — ce point sert directement l’apprentissage continu : la fenêtre de contexte n’a pas besoin d’être réinitialisée, elle peut être élargie par simple entraînement supplémentaire. Pour un modèle qui lit sans cesse de nouvelles données, c’est une nécessité et non une optimisation : si la fenêtre est figée par des embeddings de position appris, l’élargir revient à faire oublier la moitié du système de coordonnées au modèle et à tout recommencer. La symétrie lecture/écriture est une autre conception à retenir : lecture et écriture partagent la même propagation avant, mais l’écriture consomme plus de profondeur que la lecture — en moyenne environ 9,9 lignes par caractère pour l’écriture contre environ 8,0 pour la lecture — générer un caractère demande des hésitations répétées, comprendre un caractère se fait en une seule étape, et cette asymétrie correspond exactement à l’expérience humaine. L’ensemble de travail est réélu toutes les 64 caractères ; le décodage glouton est entièrement déterministe, deux exécutions donnent la même phrase. Dans une époque où tout le monde parle de stochasticité, un petit modèle qui inscrit la « reproductibilité » dans ses objectifs de conception est un véritable souffle d’air frais.
四、Chiffres et limites
Selon les données du README : le modèle a lu 318,1 M de caractères et a développé 169 experts ; la perte hold-out sur les huit domaines est de 0,8336 ± 0,0331 nats/caractère, soit 1,2026 bits/octet. Par domaine, les écarts sont importants : chess 0,796, stories 0,919, arithmetic 0,948, code 1,066, reasoning 1,145, chat 1,199, chat_hermes 1,699, wikipedia 1,847 — les données structurées et aux règles claires se digèrent facilement, le texte ouvert est plus difficile, et cet ordre correspond à l’intuition. Notamment, les deux niveaux de chat diffèrent de près de 0,5, ce qui montre que « bavarder comme un humain » est précisément la matière la plus coûteuse pour ce petit modèle, là où les règles sont bon marché.
La mesure elle-même est bruitée : l’ordonnancement des experts sur CUDA est non déterministe, deux exécutions de la même configuration diffèrent d’environ 0,014, et l’auteur recommande de considérer 0,03 comme le seuil d’une « différence réelle ». Cette honnêteté qui inscrit les barres d’erreur dans le README mérite d’être saluée.
Le tableau de mise à l’échelle des données est celui qui a le plus de saveur de recherche dans le projet : la perte décroît en loi de puissance par rapport à la quantité de données, avec un exposant de -0,239 et un R² = 0,96 — se situant entre celui de Kaplan (0,095) et celui de Chinchilla (0,28). Le groupe de comparaison est encore plus parlant en termes d’efficacité : MambaByte-353M, de même ordre de grandeur en paramètres et de FLOPs similaires, doit lire 94 fois plus de données pour atteindre un niveau comparable ; Transformer-320M doit en lire 251 fois. L’auteur en déduit : atteindre 1,00 BPB nécessite environ 0,75 milliard de caractères et 6 jours ; atteindre 0,80 BPB nécessite environ 1,92 milliard de caractères et 24 jours — le tout dans la limite d’une seule passe sur le corpus de 7,87 milliards de caractères. L’échelle de jours à partir de jours, c’est la puissance d’une carte graphique de portable.
Mais les limites doivent être dites clairement : « pouvoir apprendre en continu » ne signifie pas « pouvoir généraliser ». Sur Hacker News, un sceptique a demandé directement : cette architecture généralise-t-elle, ou repose-t-elle principalement sur la mémorisation ? Des tâches de base comme faire des additions ont-elles été testées ? La réponse de l’auteur ne laisse aucune ambiguïté : le modèle est trop petit, l’entraînement est insuffisant, aucune déclaration de généralisation n’est faite, les benchmarks seront passés une fois l’intégralité du corpus lue. Un niveau de 1,2 bits/octet est encore très loin d’être utilisable en production. Ce tableau de projection est une extension de l’expérience par l’auteur, pas une promesse.
五、Comment le faire tourner, qui peut s’y mettre
La barrière est plus basse qu’on ne le pense, mais il y a une condition sine qua non : une carte graphique CUDA, à partir de 8 Go de mémoire vidéo. La machine de référence est un RTX 3070 Laptop — une carte graphique de portable, pas un équipement de laboratoire. Le logiciel requiert Python 3.10 ou supérieur, le code est sous licence MIT, un clone et on peut entraîner. Pas de cluster, pas de file d’attente, pas de quota, pas de facture cloud — ce qu’on entraîne et la quantité d’électricité brûlée, tout est sous les yeux de chacun.
Trois catégories de personnes peuvent se lancer maintenant : les étudiants en cycle supérieur en apprentissage continu, qui disposent ici d’une implémentation de référence qu’on peut faire tourner et modifier, avec tous les mécanismes clairement visibles, pour un coût bien moindre que de reproduire un article de zéro ; les ingénieurs souhaitant étudier le routage par experts mixtes et la profondeur de calcul adaptative, car la combinaison des 26 applications, du routage top-8 et du halting PonderNet est découplée et lisible dans ce code, on peut modifier un élément et observer son effet ; ainsi que les passionnés de matériel qui veulent simplement vérifier « que peut bien produire 8 Go » — et observer au passage comment les 169 experts se sont développés à partir des données.
Deux catégories doivent attendre : ceux qui veulent des poids prêts à l’emploi pour des évaluations — les poids ne sont pas publiés, il faut attendre la fin de la première passe du corpus, soit plusieurs semaines ; ceux qui attendent une expérience produit clé en main — c’est du code de recherche, pas un service, pas d’interface, pas d’API, tout commence en ligne de commande.
六、Jugement de valeur et public cible
En séparant la valeur d’échantillon de recherche de la valeur de productivité, le visage du projet devient clair.
Valeur d’échantillon de recherche : élevée. C’est un échantillon d’ingénierie complet qui fait passer « apprentissage continu, sans oubli catastrophique » du concept de papier à une carte graphique grand public de 8 Go — poids sur disque avec pagination de l’ensemble de travail, encodage rotary sans paramètre d’apprentissage, croissance et élagage : chaque conception sert directement l’objectif unique d’« apprendre sans interruption », le tout est open source et entièrement lisible. Le tableau de mise à l’échelle dont l’exposant se situe entre Kaplan et Chinchilla est en soi une donnée primaire qui mérite d’être citée. Ceux qui travaillent sur l’apprentissage continu et les architectures efficaces devraient lire le README jusqu’au bout.
Valeur de productivité : actuellement nulle, et l’auteur est du même avis. Les poids ne sont pas publiés, les capacités sont auto-évaluées comme étant de niveau jouet, le niveau de perte de 1,2 bits/octet, la capacité de généralisation n’est pas déclarée — aujourd’hui, l’utiliser pour quoi que ce soit n’est ni fiable ni justifié. Toute affirmation qui le présenterait comme une « réalisation de l’AGI » est une mauvaise lecture du projet ; le nom du projet n’est qu’un nom, ce que l’auteur a prouvé, c’est que « l’apprentissage continu peut exister sans oubli », pas que « l’intelligence est là ».
Pour qui : les chercheurs en apprentissage continu et en architectures efficaces, les développeurs qui veulent comprendre toute l’implémentation de l’apprentissage en ligne, et les observateurs attentifs à la piste « que peut faire avec si peu de mémoire vidéo ».
Pour qui ne s’adresse pas : les équipes cherchant des modèles prêts à la production ; ceux qui attendent une percée de généralisation dès la fin de l’entraînement — l’auteur dit clairement que la généralisation sera testée après la fin de la lecture complète du corpus, et avant cela, toute réponse à la question « que peut-il faire ? » reste inachevée.
Références
- Dépôt GitHub : volotat/mini-AGI (README, LICENSE), au 2026-09-22
- Hacker News : Show HN « Mini-AGI – Dynamic continual learning model trained on 8GB VRAM », story 49783133, 255▲ / 56💬, 2026-09-21
- Tableau de benchmarks et de mise à l’échelle du README (318,1 M caractères / 169 experts, hold-out 1,2026 BPB, bits/octet par domaine, loi de puissance -0,239, tableau de projection) ; réponse de l’auteur sur HN à la质疑 sur la généralisation