Abdoulrazack A.
Me contacter
Parlons de votre projet

Recherche · ML2026

Logic-Lens

Reconnaître l’invariant mathématique d’une fonction JavaScript, et savoir s’abstenir.

Capture du projet Logic-Lens
Rôle
Recherche, machine learning, interface
Stack
TensorFlow.js, Transformer, Acorn, AST, Node.js

Un Transformer Encoder TensorFlow.js classe une fonction parmi 25 formules canoniques, et rejette explicitement le code qui n’en est aucune (open-set recognition) au lieu d’halluciner avec aplomb.

25 + 1formules + classe de rejet
~4 000paires générées
EncoderTransformer
CPUaucun GPU

L’idée

Lire une fonction et reconnaître la formule qu’elle implémente : donner F(n) = F(n−1) + F(n−2) à partir d’un Fibonacci récursif, avec un score de confiance.

Reconnaître une formule connue est facile. Savoir s’abstenir quand le code n’en est aucune, c’est tout l’enjeu.

Un classifieur peut être confiant et faux

Un classifieur fermé répond toujours quelque chose, parfois à 98 % de confiance sur du code sans rapport. Un seuil d’entropie n’attrape pas ces fausses certitudes.

J’ai ajouté une 26ᵉ classe « aucune », entraînée sur du code hors-distribution. L’abstention devient une prédiction de première classe, vérifiable.

Le pipeline

  • Dataset : ~150 variantes par formule via mutation d’AST (renommage, réordonnancement, inlining, équivalences)
  • Encodage des séquences AST en tenseurs
  • Transformer Encoder entraîné sur CPU
  • Interface web en cinq onglets et API
Projet suivantTsundoku Un journal de lecture manga full-stack, pensé comme un objet éditorial.