Limites

Où il perd

Tout ceci est citable contre nous. C'est le but.

Cette page existe parce qu'un projet qui ne publie que ses victoires ne publie pas des preuves, il publie de la publicité. Tout ce qui suit est un résultat négatif mesuré ou une lacune assumée, et tout est citable contre nous.

L'architecture perd au-dessus d'un million de paramètres environ

Sur TinyStories, 3 000 pas, une seule graine : à 60 000 paramètres le bloc ternaire routé atteint 6,31 de perplexité contre 8,12 pour un transformeur FP32 à paramètres égaux, soit environ 22 % de mieux. À 944 000 paramètres le résultat s'inverse : le modèle flottant gagne d'environ 11 %, 2,54 contre 2,87. Quiconque choisit entre Atome LM et un petit transformeur flottant au-dessus d'un million de paramètres devrait choisir le transformeur flottant.

Une seule graine. Un run multi-graines reste à faire. Une comparaison de perplexité sur une graine est une direction, pas un résultat, et nous ne l'accepterions de personne d'autre.

La précision face à TensorFlow Lite for Microcontrollers est une égalité

0,9095 ± 0,0077 contre 0,9097 ± 0,0154 sur UCI HAR, découpe par sujet sans fuite, 5 graines. La différence appariée vaut -0,000204 contre une bande 2·SE de 0,017222. Ce n'est un gain dans aucun sens. Tableau complet.

Une version antérieure de cette comparaison annonçait un gain à partir d'une seule graine. Elle a été retirée.

La latence par fenêtre est une perte

À arithmétique identique, notre convolution est 2,89× plus lente que CMSIS-NN — 9,13 cycles par multiplication-accumulation contre 3,13. Trois variantes SIMD de la boucle interne ont été essayées ; les trois étaient plus lentes que le code scalaire.

Rien ici n'est une mesure sur silicium

Tous les comptages de cycles viennent d'Unicorn 2.1.4 sur la table DDI 0403E. 61 % des instructions exécutées n'y figurent pas et comptent pour un cycle : les absolus sont des bornes inférieures. Deux anciennes valeurs de latence — 414 493 et 1 027 223 cycles — ont été publiées puis retirées, le banc qui les produisait n'ayant jamais exécuté la moindre inférence.

L'énergie n'a jamais été mesurée

Aucun Joulescope, aucun PPK2, aucune carte. Il n'existe aucun chiffre de joules par jeton pour Atome LM parce que personne n'en a pris.

X-CUBE-AI n'a jamais été exécuté

stm32ai exige un compte ST que nous n'avons pas. Ce qui est mesuré est CMSIS-NN v4.1.0, la bibliothèque que X-CUBE-AI génère en dessous.

Cortex-M33 n'est pas mesuré

La compilation ARMv8-M faute sous le modèle ARM d'Unicorn. Sous QEMU mps2-an505, l'image tourne sans faute mais n'atteint jamais son écriture semihosting : aucun chiffre n'en sort.

Certaines têtes de démonstration tournent sur des données synthétiques

Plusieurs têtes applicatives v2 reposent sur des données synthétiques ancrées dans la physique, étiquetées comme telles. Une précision de 100 % sur des données générées signifie que le générateur était simple.

Un seul jeu de données, une seule carte

Toutes les précisions EDGE viennent d'UCI HAR. Un seul test sur silicium existe, sur un ESP32-WROOM-32. Ni l'un ni l'autre ne se généralise à votre tâche ou à votre composant sans y être exécuté.