Résultats honnêtes

Benchmark de petit LLM : où le ternaire gagne, et où il perd

2026-06-03 · Tilelli Lab · 7 min de lecture

La plupart des pages de modèles montrent le benchmark qu'elles gagnent et passent le reste sous silence. Celle-ci montre les deux directions, car l'endroit où Atome perd est la chose la plus utile que nous sachions sur l'architecture. Tous les chiffres ci-dessous proviennent des journaux d'entraînement publics du dépôt et sont reproductibles sur un CPU.

Le protocole

Les deux modèles sont entraînés sur TinyStories avec un tokeniseur au niveau de l'octet, et la référence « vanilla » est un transformeur décodeur FP32 pré-norm standard, ajusté par force brute pour tomber à quelques paramètres près de la cible Atome (à paramètres égaux) ou dans le même budget flash (à flash égal). C'est une comparaison à armes égales, pas un homme de paille : la référence est l'architecture qu'utilisent tous les articles publics sur les petits LM.

La victoire : 60K paramètres (le régime MCU)

ModèleParamètresDisquePerplexité (plus bas = mieux)
Atome 3-pathway, ternary60,80015.1 KB6.31
Vanilla GPT FP32 (param-fair)60,808237.5 KB8.12
Vanilla GPT FP32 (flash-fair)5,96823.3 KB13.10

À nombre de paramètres égal, Atome atteint 6,31 de perplexité contre 8,12 pour le transformeur FP32 — environ 22 % de moins — tout en utilisant environ 16× moins de disque. À budget flash égal, où le modèle flottant ne peut s'offrir qu'environ 6K paramètres, l'écart se creuse à 6,31 contre 13,10, soit environ 52 % de moins. La victoire survit aussi à trois graines dans un run plus court séparé (perplexité moyenne 7,77 contre 9,82), ce n'est donc pas une seule graine chanceuse.

Le renversement : 944K paramètres

ModèleParamètresPerte valPerplexité
Atome 3-pathway, ternary944,6401.05452.87
Vanilla GPT FP32 (param-fair)950,6080.93372.54

Portez la même recette à environ 944K paramètres et le résultat s'inverse. La référence FP32 atteint 0,9337 de perte de validation et 2,54 de perplexité, battant les 1,0545 et 2,87 d'Atome d'environ 11 % — même corpus, même découpe de validation, même graine. Nous le publions bien en évidence parce que le cacher serait malhonnête et, franchement, moins utile.

Pourquoi le renversement est le chiffre important

Le renversement dit exactement à quoi sert l'architecture. Le bloc ternaire à trois voies est un biais inductif qui compense la capacité quand elle est rare, et qui gêne dès qu'on en a assez. Le pari d'Atome est donc le régime sous le million de paramètres, classe microcontrôleur — pas « le petit ternaire bat tout ». Connaître le point de bascule permet de choisir correctement : en dessous d'environ un million de paramètres, Atome ; au-dessus, un transformeur classique si votre matériel peut se le permettre.

Ce que le benchmark n'affirme pas

Ce que disent les ablations

Au-delà du duel, le run public à trois graines inclut des ablations qui retirent une voie à la fois, et elles expliquent d'où vient la victoire. Avec les trois voies, la perplexité moyenne est de 7,77 ; retirez la convolution locale et elle monte à 8,99, retirez le modèle d'état et elle est de 8,05, retirez l'attention parcimonieuse et elle est de 7,93. Chaque voie contribue, et la convolution locale — la moins chère des trois — compte le plus à cette échelle. C'est un signal de conception utile : la combinaison routée n'est pas une décoration redondante, elle fait un vrai travail, et le routeur apprend à s'appuyer sur la convolution pour la structure à courte portée qui domine le texte au niveau de l'octet.

Lire la perplexité sans se tromper

La perplexité est un indicateur, pas une métrique produit. Une réduction de 22 % de perplexité à 60K paramètres est un signal architectural significatif dans une comparaison contrôlée, mais elle ne signifie pas en soi que le modèle écrit une bonne prose — à cette échelle, aucun des deux ne le fait, car TinyStories à l'échelle du kilooctet est un benchmark de structure, pas de fluidité. La manière honnête de lire ces chiffres est comparative : à entraînement identique, même corpus et même graine, le bloc ternaire routé tire davantage d'un budget fixe de paramètres ou de flash qu'un transformeur classique, jusqu'à environ un million de paramètres, après quoi le modèle classique prend l'avantage. Le benchmark renseigne sur l'efficacité de l'architecture dans un régime, pas sur la qualité conversationnelle.

Si vous voulez reproduire tout cela, le dépôt fournit les points de contrôle entraînés et les journaux d'entraînement pas à pas, et la comparaison 60K tourne en environ une demi-heure sur un CPU portable. Nous préférons que vous vérifiiez les chiffres plutôt que de les croire.

Comment lancer la comparaison vous-même

La chose la plus forte que nous puissions dire de ces chiffres, c'est que vous n'avez pas à nous croire sur parole. Le dépôt regroupe les points de contrôle entraînés pour Atome et pour la référence vanilla, la configuration d'entraînement exacte, et les journaux pas à pas derrière chaque chiffre de cette page, de sorte que la comparaison est auditable plutôt qu'affirmée. Le balayage 60K à paramètres égaux et à flash égal se reproduit en environ une demi-heure sur un CPU portable ordinaire, sans GPU, et le renversement plus grand à 944K est documenté avec ses propres journaux. Nous publions les résultats ainsi à dessein : un benchmark que vous pouvez régénérer est une affirmation à laquelle vous pouvez vous fier, et un que vous ne pouvez pas régénérer n'est qu'un chiffre sur une diapositive. Si vous trouvez un écart, c'est un rapport de bug que nous voulons, pas un résultat que nous défendrons.

En résumé

Le benchmark bidirectionnel est l'honnête : un bloc ternaire routé bat un transformeur FP32 à nombre de paramètres égal d'environ 22 % à 60K paramètres et perd contre lui d'environ 11 % à 944K, les ablations montrant que chaque voie contribue. Le renversement est la partie utile, car il dit exactement où se situe l'architecture — le régime sous le million de paramètres, classe microcontrôleur — et où elle ne se situe pas. Lisez la perplexité comme un signal comparatif d'efficacité, pas comme une affirmation de fluidité, et reproduisez les chiffres à partir des points de contrôle et journaux fournis plutôt que de les croire. C'est à cela que sert un benchmark.

Questions fréquentes

Un LLM ternaire bat-il un transformeur normal ?

À très petite échelle, oui : Atome bat un transformeur FP32 équivalent d'environ 22 % en perplexité à 60K paramètres. À environ 944K paramètres, le modèle flottant gagne d'environ 11 %. Cela dépend de l'échelle.

Ces chiffres de benchmark sont-ils reproductibles ?

Oui. Les points de contrôle entraînés et les journaux d'entraînement pas à pas sont fournis dans le dépôt public, et la comparaison 60K se reproduit en environ 30 minutes sur un CPU.

← Tous les articles Code & données sur GitHub