OMEGA·Ω
Recherche & méthode

Une architecture cognitive de la double route.

OMEGA est né comme un moteur de pendu français — un banc d'essai exigeant pour une idée : une machine qui raisonne sur la langue (phonologie, orthographe, morphologie) plutôt qu'elle ne consulte un oracle. Le correcteur dys en est le débouché appliqué.

La doctrine : mesurer ou rejeter

Une seule règle gouverne le projet : rien n'est gardé sans mesure. Tout module est désactivé par défaut, et la base de référence reste byte-identique tant qu'un gain n'est pas prouvé. Les idées séduisantes qui ne tiennent pas à la mesure sont falsifiées et documentées — pas enterrées.

« Cognition > oracle » : la valeur est dans le raisonnement, pas dans la triche. La configuration de référence ne lit jamais le mot caché.

La décision n'est pas un argmax mais une jointe probabiliste : on marginalise sur les hypothèses latentes — Σφ P(φ|indice)·P(lettre|φ,contexte) — au lieu de parier sur la plus probable. On croise, on ne devine pas.

Le banc d'essai : le pendu

Deviner un mot français lettre par lettre, sous contrainte, est un test sévère de modèle de langue : il faut intégrer la structure orthographique, les voisins, la phonotactique. La configuration cheat-free intégrale (qui ne lit jamais le mot caché — ni ses lettres, ni son son : cohorte « board-dérivée ») atteint ≈ 97,3 % de parties gagnées en lexique ; le plafond oracle (qui, lui, triche) est à 98,7 %.

Plus sévère encore : le hors-lexique (mot jamais vu, façon Trexquant). Et ici on dit d'où vient le score, parce que c'est la thèse du projet — distinguer la cognition de la consultation statistique : la cognition seule ne généralise pas en sous-lexical (≈ 11 %), l'orthographe pure plafonne à ≈ 33 %. Ce qui porte le hors-lexique, c'est une voie d'agrégation n-gram — statistique mais cheat-free (structure positionnelle des lettres pré-calculée du lexique, jamais le mot caché) — à ~62 %, que le raisonnement gap-aware (plus proche voisin révélé) pousse à ≈ 64 % (stable sur 3 graines). Sur les mêmes mots, ce système bat un étalon n-gram naïf (46,7 %) de +17 points — c'est là qu'est la valeur ajoutée de la méthode — dans la bande des bons solveurs (65-68 %), dans un seul fichier HTML, sans entraînement ni GPU.

≈ 97,3 %victoires en lexique, sans jamais lire le mot caché
≈ 64 %hors-lexique, cheat-free (agrégation n-gram + gap-aware)
+17 ptsvs étalon n-gram naïf, même jeu
155 kmots embarqués (≈ 89 k jouables, ≥ 7 lettres)
OFFtous les modules par défaut (R66)

Quand OMEGA évolue

Au-delà de jouer, OMEGA peut se copier, varier et être sélectionné par le pendu lui-même : une boucle darwinienne sur un moteur cognitif. Il reconstruit son propre code de décision — la copie est vérifiée à l'octet près, et le pendu rejoue à l'identique — puis une variation le modifie, et la fitness du jeu garde le meilleur.

La boucle évolutionnaire d'OMEGA Se reproduire (copie vérifiée), puis varier (le génome = les paramètres), puis sélectionner (la fitness du pendu), répété de génération en génération. Phases P1 se copie, P2 communiquent, P3 générations : faites ; travail de groupe (O1) et mesure multi-usage (O2) : testés — O1 négatif (subsumé par l'arbitrage interne), O2 révèle un compresseur de structure domaine-agnostique. 🧬SE REPRODUIREcopie vérifiée ✓ 🎲VARIERgénome = paramètres 🎯SÉLECTIONNERfitness du pendu génération suivante P1 · se copiequine vérifié ✓ P2 · communiquentlangage émergent ✓ P3 · générationsmeilleure version ✓ testésO1 groupe · O2 multi-usage

Deux pistes plus loin, désormais testées — et l'honnêteté prime sur l'effet :

  • Travail de groupe (O1) — négatif, assumé. Faire coopérer plusieurs versions ne bat pas la meilleure seule : de vraies versions sont fortes et trop semblables (toutes ~97 % en lexique, désaccord ≤ 10 %), et le routage utile est déjà l'arbitrage interne du moteur. La coordination externe est subsumée par l'architecture.
  • Mesure multi-usage (O2) — positif, et révélateur. Mesurer le seul pendu en lexique est aveugle : lexique et hors-lexique dissocient (un génome champion au pendu peut être catastrophique en généralisation). Et ça mène à une question de fond — juste en dessous.

Et si on l'enlève du français ? Le cœur est un compresseur.

La vraie question d'O2 : ce qui porte OMEGA hors-lexique, est-ce du français, ou un mécanisme général ? On a pointé son substrat (l'agrégation n-gram) sur du code — sans le lexique français — et mesuré la compression. Car prédire, c'est compresser (Shannon) : la compression dit en bits par caractère combien de structure un modèle capture.

domainehasardsubstrat n-gramstructure capturée
Français3,98 b/car2,97 b/car−1,01 b
Code (identifiants, sans Lex4)4,17 b/car3,05 b/car−1,12 b
Code brouillé (structure détruite)4,17 b/car4,41 b/car+0,24 b — rien

Il compresse le code aussi bien — un peu mieux même — que le français, et ne gagne rien quand on brouille la séquence. → le cœur transférable d'OMEGA est un compresseur de séquences structurées, domaine-agnostique : il marche partout où il y a de la structure, pas seulement en français. Puissant et général — mais c'est de la capture de structure, pas de la compréhension (ça, ce serait un LLM, un autre projet).

Mesuré de deux façons indépendantes, même verdict : reconstruction façon pendu (evo_o2_crossdomain.js) et compression en bits (evo_o2_compression.js).

Et le sens, alors ? On a tenté — et voici la frontière.

Un compresseur capture la forme, jamais le sens. Peut-on en ajouter un avant-goût ? On a essayé la sémantique distributionnelle (« le sens = la compagnie qu'un mot fréquente », Firth) pour désambiguïser des homophones — méthode Golding & Roth 1999 (prior × contexte, held-out, corpus UD réel). Le contexte aide — surtout les homophones grammaticaux (son/sont 55→88 %, ce/se 53→76 %, et/est 60→77 %). Mais la précision plafonne à 77-88 %.

Or le correcteur a une garde absolue : FP=0 — ne jamais souligner du juste. À 77-88 % de précision, il créerait trop de fausses alertes. On a balayé le seuil de confiance pour trouver un filet FP-safe :

seuil de confiancerecallprécision
≥ 0,9056 %91 %
≥ 0,9927 %96 %
FP = 0  (conf > 0,9999)1,6 %100 %

Pas de filet : pour atteindre FP=0, le recall s'effondre à 1,6 % — le signal « sens » est trop bruité pour passer le portier. Contraste mesuré : le levier lexical du genre (propre) passe FP=0 naturellement — il a été câblé (+6 pts de recall) ; le sens statistique, lui, est recalé. → la compréhension reste hors-doctrine (ce serait un LLM). OMEGA maîtrise la forme ; le sens est la frontière, assumée et chiffrée.

Mesuré : evo_o2_homophone_context.js (désambiguïsation Golding&Roth) · evo_o2_sense_fpzero.js (balayage FP=0).

Rejouable : evo/evo_o1_real.js · evo_o2_multitask.js · evo_o2_crossdomain.js · evo_o2_compression.js · plan : evo/EVO_ROADMAP.md.

Mais une mutation n'est utile que si l'on mute le bon niveau. Muter le code source casse presque tout — aucune amélioration possible. Muter les paramètres ouvre un paysage lisse où 30 % des mutations sont bénéfiques : c'est l'évolvabilité (Wagner & Altenberg, 1996). Basculez :

💀 létales
🔻 délétères
⚪ neutres
🔼 utiles
erreurs utiles :

Mesuré bout-à-bout : P1 se copie (quine vérifié), P2 communiquent (un code émerge du seul reward), P3 générations (une meilleure version trouvée, validée hors-échantillon). Certains chiffres aux grandes longueurs restent seed-dépendants — gardés tels quels. Détail : evo/EVO_ROADMAP.md, evo/EVO_P3_EVOLVABILITY.md.

Le substrat partagé : la double route phono↔ortho

Pendu et correcteur sont la même machine pointée dans deux directions sur le canal son ↔ écriture :

  • Le pendu modélise P(orthographe) et complète le masqué — il encode la structure.
  • Le correcteur inverse le bruit sur cette même structure : d'une surface corrompue, il remonte à l'intention — il décode.

Chacun combine une voie lexicale (le mot existe-t-il ?) et une voie sublexicale (règles graphème↔phonème), arbitrées par leur fiabilité — exactement la double route de la lecture chez l'humain.

De la défaite du pendu à la dyslexie

Le constat-clé : le profil de défaite du pendu ressemble à une signature dyslexique — il échoue majoritairement sur les confusions voisée / sourde (p/b, t/d…), exactement le type d'erreur phonologique au cœur de la dyslexie. Quand le moteur perd, il perd comme un lecteur dys.

D'où le sous-projet dictée diagnostique, puis le correcteur dys : le moteur qui modélise le canal d'erreur devient l'outil qui le corrige.

Le débouché : le correcteur dys

Détecter et corriger sans corrigé, en contexte, avec une garde cardinale : zéro faux positif. Un résultat récent illustre la méthode — la garde « §3 » : là où une règle plate lisait un étiquetage grammatical dur (et souvent faux : « faute » étiqueté verbe alors que 99 % de ses usages sont des noms), un posterior fréquentiel P(catégorie|forme) tranche correctement — récupérant des corrections justes et baissant les fausses alertes à la fois.

0faux positif (batterie dys)
6 % → 2 %fausses alertes sur français réel
3moteurs en parité (app · extension · Python)

Voir le correcteur, côté produit →

Ce qu'on a essayé… et rejeté

L'honnêteté des résultats négatifs fait partie de la méthode. Mesuré, puis écarté :

  • un « C cognitif » léger appris, puis un transformer lourd — parité au mieux avec une heuristique simple, parfois pire.
  • le pendu de phrases comme levier de victoire — le partage de lettres fuit les fins de mots.
  • plusieurs élargissements du correcteur (edit-distance 2, relâche de gardes…) — chacun rouvrait des faux positifs, donc non câblé.

Garder la trace de ce qui ne marche pas évite de le refaire — et rend crédible ce qui marche.

Un second dérivé : OMEGA·KEY — messagerie chiffrée

Le même moteur, pointé ailleurs : une messagerie chiffrée de bout en bout tenant dans un seul fichier HTML, hors-ligne. OMEGA fournit le lexique (passphrases françaises prononçables) ; toute la cryptographie repose sur la WebCrypto standard du navigateur — aucun algorithme maison.

Le chat. Une carte Conversation chiffrée tient un fil de bulles, avec deux transports : sans serveur — le chiffré se copie tout seul, tu le colles à ton correspondant ; ou via un relais minimal (auto-hébergeable sur Deno Deploy en ~2 min) qui pousse les messages en temps réel (SSE) et établit le ratchet DH automatiquement (échange des clés publiques, sans copier-coller) — le relais ne voit que du chiffré, et le numéro de sécurité détecte une interception.

  • Passphrases FR prononçables — mots réels (12 bits/mot) ou pseudo-mots (8 bits/syllabe), entropie tirée de crypto.getRandomValues, sans biais modulo (listes en 2ⁿ, lecture de bits exacte — vérifié).
  • Clé partagée — PBKDF2-SHA256 310 000 itérations → AES-256-GCM, empreinte de clé vérifiable des deux côtés.
  • Double Ratchet — ECDH P-256 → forward secrecy et récupération post-compromission.
  • Par message — IV aléatoire 96 bits, intégrité par tag GCM. Le relais (optionnel, auto-hébergeable) ne voit jamais le clair.

⚠️ Démo, pas un produit de sécurité

Briques standard et bien employées (WebCrypto, IV uniques, pas de Math.random dans les clés), tests crypto automatisés en CI (entropie, round-trip, KAT du ratchet), numéro de sécurité anti-interception et historique chiffré au repos — mais le protocole reste assemblé à la main et n'a pas eu d'audit cryptographique formel. Pour de vrais secrets, utilise Signal.

À savoir : le relais voit les métadonnées (salon, horaires, tailles) · échange la passphrase par un canal sûr et compare le numéro de sécurité avec ton correspondant.

Ouvrir OMEGA·KEY Rapport / mode d'emploi

Aller plus loin

Les documents de fond (denses, en cours d'actualisation) :

Note d'honnêteté : le pendu est un banc de mesure, pas un produit. Le produit, c'est le correcteur. Ces deux pages décrivent l'état réel du projet, pas une vitrine.