Projets & Recherches
Contributions majeures dans le domaine du NLP, de la cryptographie et de l'intelligence artificielle.
AG-BPE (Attention-Guided Byte-Pair Encoding)
Tokéniseur qui combine BPE et attention Transformer multi-couches pondérée (v4) pour des décisions de fusion sémantiquement cohérentes. Compression 3,85x, décodage 0,03ms, zéro OOV dur sur du texte multilingue (français, coréen, symboles mathématiques, emojis).
- NLP
- Tokenization
- Python
- Transformers
- Stars : 3
- Views : 1K
- Downloads : 1K+
- Citations : 0
- Compression : 3,85x
- Décodage : 0,03ms
Zenodo
GitHub
Hugging Face
Détails techniques
-
Attention pondérée multi-couches —
Un ContextAnalyzer à 6 couches Transformer (12 têtes, dimension 768) calcule un score d'attention par paire de caractères sur chaque couche, agrégé avec des poids appris qui privilégient les couches profondes — plus sémantiquement riches. Le score de fusion final combine fréquence brute et attention pondérée (λ = 1000).
-
Robustesse multilingue parfaite —
Zéro token hors-vocabulaire "dur" sur un corpus de test mêlant français, coréen (안녕하세요), symboles mathématiques et emojis — malgré un entraînement uniquement sur corpus français. Exemple : AG-BPE segmente correctement "cor|éen" là où GPT-2 casse le mot en "cor|é|en".
-
Benchmark contre GPT-2, BERT, T5 et tiktoken —
Avec un vocabulaire de 18 000 tokens, AG-BPE v4 obtient le meilleur ratio efficacité/taille (0,0149 par Ko) parmi les tokeniseurs de production testés, et un décodage 20 à 30 fois plus rapide que GPT-2, BERT-base ou T5-base.
-
Pensé pour la production —
Nettoyage Unicode avancé (normalisation NFKC, filtrage par catégories Unicode), checkpoints automatiques toutes les 1000 fusions avec reprise sur panne, gestion mémoire adaptative (échantillonnage à 100K contextes pour éviter les OOM) et sauvegarde double format (binaire + JSON lisible).
LISP-7 (Linguistic Irreversible Scrambling Protocol)
Nouveau paradigme de sécurité — Destructive Semantic Encoding (DSE) — distinct de la cryptographie, du hachage et de la compression classiques. 7 niveaux hiérarchiques de brouillage sémantique culminant en une mutation d'alphabet aléatoire unique par compression (26! permutations). Résistance >10^35 ans au brute-force, testé sur 40 000+ phrases françaises.
- Cryptography
- Compression
- Security
- Algorithm
- Resistance : >10^35 yrs
- Compression : 60-75%
- Espace d'états : ~10^60
- Corpus : 40K+ phrases
Paper (PDF)
GitHub
Comment ça marche
-
Un paradigme intentionnellement irréversible —
Contrairement à AES ou RSA — réversibles avec la bonne clé mathématique — LISP-7 détruit intentionnellement l'information. La reconstruction exige une compréhension sémantique et un dictionnaire interne, pas une formule à casser : c'est une sécurité linguistique, pas mathématique.
-
7 niveaux de chaos progressif —
Du simple retrait des voyelles (niveau 1) à la mutation complète de l'alphabet (niveau 7), en passant par l'extraction triadique (1ère + milieu + dernière lettre), la permutation de lettres et le brouillage de l'ordre des mots. Chaque niveau ajoute une couche de désordre linguistique contrôlé.
-
Le verrou à deux clés du niveau 7 —
Chaque compression génère une permutation aléatoire unique des 26 lettres (26! combinaisons possibles), stockée dans le dictionnaire. Le même texte compressé deux fois produit deux résultats totalement différents : sans la bonne combinaison texte chiffré + clé d'alphabet, aucune reconstruction n'est possible, même avec le dictionnaire.
-
Validé sur 40 000+ phrases, résistant à GPT-5 —
Testé sur un corpus français du XIXe siècle (40 607 phrases, 29 339 mots uniques) : 100% de reconstruction exacte avec le dictionnaire, contre 0 à 2% de succès pour GPT-5 sans lui. Espace d'états d'environ 10^60 sur un cas réel de 22 mots — plus de 10^35 années de calcul à l'échelle exascale pour l'épuiser.
RDTvlokip Search
Moteur de recherche indépendant axé sur la vie privée et la transparence. Crawler from-scratch (RDTvlokipBot), algorithme BM25 adaptatif + PageRank (24 signaux de scoring), 5 021 846+ pages indexées, hébergé en Allemagne — zéro tracker publicitaire.
- Search Engine
- Privacy
- Transparency
- Web
- From-Scratch
- Pages indexées : 5 021 846+
- Signaux ranking : 24
- Domaines uniques : 321 717+
- Hébergement : Allemagne 🇪🇺
Accéder
Pourquoi j'ai construit ça
-
Le vide laissé par Qwant —
Qwant utilise Bing en arrière-plan. Ce n'est pas un moteur indépendant — c'est une interface Microsoft avec un drapeau tricolore.
-
Philosophie from-scratch —
Un vrai crawler, un vrai index, un vrai algorithme. Dépendre de Bing pour un moteur "indépendant", c'est une contradiction.
-
RDTvlokipBot, un crawler qui respecte le web —
Respect intégral de robots.txt (RFC 9309) et de l'extension Content-Signal: search=no. Délai adaptatif par domaine, circuit breaker après 5 échecs consécutifs, retry exponentiel, filtre qualité (≥50 mots, dédoublonnage, respect du canonical). User-Agent transparent et vérifiable par reverse DNS — jamais d'usurpation de navigateur.
-
24 signaux, un vrai algorithme de ranking —
BM25 adaptatif dont les poids changent selon l'intention de la requête (navigationnelle, informationnelle, mixte), PageRank calculé par matrices creuses (scipy), synonymes français (~200 groupes) et stemming vectorisé NumPy — plus un modèle BERT-like maison (~20M paramètres, PyTorch) entraîné pour désambiguïser les requêtes ambiguës, comme "python" (langage ou animal).
-
Souveraineté numérique concrète —
70-80% du cloud européen contrôlé par AWS/Azure/Google. La dépendance numérique est une vulnérabilité réelle — RDTvlokip Search est ma réponse concrète.
-
Bien plus qu'un moteur de recherche —
Filtres temporel, géographique et anti-tracking (82 signatures détectées), opérateurs de recherche avancés (site:, intitle:, inurl:, filetype:), page d'inspection d'URL, graphe interactif des domaines, agrégateur RSS de 66 sources francophones, messagerie chiffrée @rdtvlokip.fr, éditeur de texte chiffré, page de preuve de non-suivi : la transparence et la vie privée sont au cœur de chaque fonctionnalité.
-
Le défi —
5 021 846+ pages indexées seul, à 20 ans, sur VPS Hetzner + GTX 1080 Ti. Prouver que c'est faisable sans équipe de 50 ni millions d'euros.
RDTSearch CLI
Client terminal officiel pour RDTvlokip Search, mon moteur de recherche indépendant français axé sur la vie privée (~5 021 846 pages indexées, crawler maison). Recherche directe en <200ms, autocomplete intelligent, détection de trackers et de contenu adulte, stats live du moteur, analyse SEO/backlinks complète (graphe de liens, duel entre domaines, export CSV/JSON) et une interface TUI interactive complète. Outil Python 3.8+ mono-fichier, zéro dépendance (stdlib uniquement), bilingue FR/EN, Windows en priorité (Linux/macOS supportés), sous licence AGPLv3.
- CLI
- Python
- Open Source
- Search Engine
- Developer Tool
pip install rdtsearch
- Latence recherche : < 200ms
- Dépendances : 0
- Licence : AGPLv3
- Plateformes : Win/Linux/macOS
Site
GitHub
PyPI
Fonctionnalités
-
Un TUI interactif, pas juste un CLI —
Lance rdtsearch sans argument pour ouvrir l'interface interactive : sidebar de stats live, palette de commandes, complétion fantôme façon fish (la suite probable apparaît en gris, acceptée avec →), historique au clavier, et un chiffre pour ouvrir un résultat dans le navigateur.
-
Détection tracker et contenu adulte intégrée —
Indicateurs visuels du niveau de tracking (●/●/●) et badge 18+ affichés directement dans les résultats, avant même de cliquer.
-
De l'outillage SEO en ligne de commande —
Graphe global de liens, top domaines, backlinks par domaine (source, ancre, nofollow/sponsored/UGC), distribution des ancres, historique d'évolution et export CSV/JSON — avec un cache local par jour pour économiser le quota anonyme (10 backlinks par analyse, 3 analyses par jour).
-
Zéro dépendance, un seul fichier —
Écrit en Python 3.8+ stdlib uniquement, mono-fichier, Windows en priorité (Linux/macOS supportés), avec repli automatique en ASCII sur les vieilles consoles Windows. Licence AGPLv3, aucune donnée collectée — uniquement des appels à l'API RDTvlokip Search.
Cadence, Nomade & Focal — LLM français 15M
Famille de trois LLM français de 15M de paramètres entraînés from scratch (aucun poids pré-entraîné, aucune dépendance à 🤗 Transformers) sur un unique GTX 1080 Ti, pour étudier les transformers en boucle (recurrent-depth) et le calcul adaptatif par token. Cadence applique 4 fois les 8 blocs Transformer (profondeur effective 32) sans sortie anticipée ; Focal et Nomade y ajoutent une sortie anticipée par token, respectivement à seuil d'entropie absolu et à seuil percentile invariant à la taille du modèle. Résultat : -7% de perplexité de validation pour Cadence (28,9 vs 31,2 baseline), mais aucun des trois modèles ne domine sur tous les critères.
- NLP
- LLM
- From-Scratch
- Adaptive Computation
- Research
- Paramètres : 15M ×3
- Perplexité (Cadence) : 28,9 (-7%)
- Corpus : 425M tokens
- GPU d'entraînement : 1× GTX 1080 Ti
Cadence
Nomade
Focal
Le détail de la recherche
-
Trois façons de boucler un même transformer —
Les 8 blocs Transformer (style LLaMA : RoPE, RMSNorm, SwiGLU, QK-Norm) sont appliqués 4 fois — profondeur effective 32 — avec zéro paramètre ajouté au-delà d'un petit embedding de profondeur par itération. Cadence boucle sans sortie anticipée ; Focal arrête un token dès que son entropie de sortie passe sous un seuil fixe (1,0 nat) ; Nomade utilise un seuil percentile (30% des tokens les plus confiants gèlent à chaque itération) — la seule variante dont le critère se transfère à une autre taille de modèle.
-
Aucun modèle ne gagne partout —
Cadence réduit la perplexité de validation de 7% (28,9 vs 31,2 baseline) et est plus cohérente dans le domaine d'entraînement. Focal pousse encore plus loin la cohérence in-domain (44,1) mais s'effondre hors domaine (29,1). Nomade sacrifie la perplexité (31,0, quasi identique à la baseline) pour devenir le seul modèle bouclé qui bat la baseline hors domaine (41,8) et qui invente le moins de noms (0,094). Le compromis in-domain / out-of-domain est le vrai résultat de l'étude, pas un gagnant unique.
-
Protocole de recherche rapide, pas un run de production —
Entraînement from scratch (aucun poids 🤗 Transformers) sur un unique GTX 1080 Ti, avec seulement 20% du corpus d'entraînement (425M tokens au total) sur 2 époques, évalué sur une seule seed (50 prompts × 200 tokens). Les tendances sont cohérentes mais les magnitudes ne sont pas validées statistiquement — traité comme un carnet de laboratoire, pas un benchmark définitif.
-
Construit sur des épaules connues, sans revendiquer de nouveauté —
La famille s'inscrit explicitement dans la lignée d'ACT (Graves, 2016), Universal Transformer (Dehghani et al., 2018), Recurrent-Depth Transformer / Huginn-3.5B (Geiping et al., 2025), CALM (Schuster et al., 2022) et LoopViT (Shu et al., 2026) — avec pour base directe deux études de boucles from-scratch reproduites en français (Kohli et al. 2026, COLM ; Chen 2026). Chaque model card le dit explicitement : « no claim of novelty ».
RDTRL
Banc expérimental testant si un réseau de neurones peut apprendre à produire du langage à partir d'une simple récompense scalaire, avec des poids initiaux aléatoires, sans pré-entraînement ni paires entrée/sortie. Les espaces de recherche sont assez petits pour être énumérés exhaustivement : masse de validité, modes effectifs, optimum de Gibbs et structure conditionnelle sont calculés exactement plutôt qu'estimés. Le Test 1 (copier une phrase fixe) montre que le succès vient de la décomposabilité de la récompense, pas de la recherche elle-même. Le Test 2 (grammaire écrite à la main, jugée par un parseur déterministe) atteint 99,9% de grammaticalité sans aucune règle apprise — mais les deux « succès » se révèlent vides à y regarder de près. Le Test 3 (jeu référentiel à deux agents) conclut que seule la paramétrisation du réseau produit de la compositionnalité, jamais sélectionnée par l'entraînement lui-même. v0.5.0, cinq rounds de relecture externe par Dipankar Sarkar.
- NLP
- Reinforcement Learning
- Research
- Language Models
- Grammaticalité (Test 2) : 99,9%
- Tests : 3
- Relectures Sarkar : 5
- Version : v0.5.0
Zenodo
GitHub
Comment ça marche
-
Récompense scalaire, zéro supervision —
Poids initiaux aléatoires, sans pré-entraînement, sans paires entrée/sortie : le réseau n'apprend qu'à partir d'une récompense scalaire. Les espaces de recherche restent assez petits pour être énumérés exhaustivement, donc la masse de validité, les modes effectifs, l'optimum de Gibbs et la structure conditionnelle sont calculés exactement — pas estimés.
-
Test 1 : copier une phrase, pour comprendre pourquoi ça marche —
Copier une phrase fixe montre que le succès vient de la décomposabilité de la récompense, pas de la recherche elle-même.
-
Test 2 : une grammaire, un parseur déterministe, 99,9% —
Une grammaire écrite à la main jugée par un parseur déterministe atteint 99,9% de grammaticalité sans aucune règle apprise, et isole la cause de l'effondrement de mode (mode collapse) — un « succès » qui se révèle vide une fois qu'on regarde comment il est obtenu : le réseau se cache dans un sous-langage à un seul nombre où la contrainte d'accord est vide de sens.
-
v0.3.0 → v0.4.0 : une borne jamais dépassée, qui survit au changement de grammaire —
Une politique sans couplage déterminant-nom a un support produit, donc à validité totale, elle est plafonnée par le plus grand produit pleinement valide dans le sous-langage qu'elle atteint. Cette borne n'est jamais dépassée sur 70 runs, atteinte exactement par la moitié d'entre eux — un plateau, pas un bassin. La v0.4.0 confirme que la borne tient face à un changement de grammaire : un lexique à trois genres donne un ratio de 3 au lieu de 2, prédit avant l'expérience et vérifié sans exception sur 70 seeds.
-
Test 3 : un jeu référentiel à deux agents —
27 référents, 27 messages, un émetteur et un récepteur entraînés par renforcement pur. Résultat : la compositionnalité n'a jamais été sélectionnée par l'entraînement — seule la paramétrisation du réseau la rend possible ou impossible. Huit hypothèses réfutées en cours de route, dont le certificat théorique importé du Test 2, qui ne survit pas au passage à deux agents.
-
Relecture externe : Dipankar Sarkar —
La borne du produit est due à Dipankar Sarkar (chercheur indépendant, membre ACM & IEEE, 138+ citations), qui a dérivé les marginales d'ordre 1 indépendamment à partir de l'article publié, puis a montré que les deux coins dégénérés contiennent le même nombre de phrases valides mais pas le même produit maximal. Cinq rounds de ses critiques ont aussi corrigé plusieurs erreurs de méthode, de la couverture des déterminants jusqu'au seuil de significativité du Test 3.
RDTChess
Réseau résiduel de 11,05M de paramètres (128 canaux × 8 blocs, récurrence ×2, mémoire à porte, Squeeze-and-Excitation) qui joue aux échecs en une seule passe avant — sans recherche, sans MCTS, sans livre d'ouvertures. C'est RDTChess2, le modèle actuellement en ligne sur le bot Lichess. Entraîné from-scratch sur un seul GTX 1080 Ti par clonage de comportement sur ≈10,99M de parties Lichess (≥1800 Elo des deux côtés), soit 801 295 726 positions vues. 61,5% de précision sur le premier coup de 23 845 puzzles Lichess, mais le réseau exécute toujours les tactiques plutôt qu'il ne les initie : le coup d'entrée discret reste le point faible, à 33,3% en position difficile contre ~90% sur la dernière étape d'une combinaison forcée.
- Chess
- PyTorch
- Policy Network
- Value Network
- ResNet
- Recurrent Depth
- Behavioral Cloning
- From-Scratch
- Paramètres : 11,05M
- Parties d'entraînement : ~11M
- Positions vues : 801,3M
- Puzzles (1er coup) : 61,5%
Hugging Face
GitHub
Lichess
Comment ça marche
-
Encodage canonique : toujours « Blancs, qui avancent » —
Quand c'est aux Noirs de jouer, chaque case est reflétée (case ^ 56) et les couleurs des pièces inversées. Résultat : la tête de valeur répond toujours à une question bien posée — « à quel point est-ce bon pour le joueur au trait » — et une position et son miroir couleur-inversé partagent une seule représentation, donc chaque partie entraîne les deux couleurs à la fois.
-
Une seule passe avant, zéro recherche —
Pas de MCTS, pas de livre d'ouvertures, pas de table de finale. La tête de politique émet des logits bruts (pas un softmax), pour pouvoir masquer les coups illégaux avant de normaliser — softmaxer sur les 4096 actions puis en annuler ~99% gaspillerait la capacité d'un réseau de cette taille.
-
Récurrence ×2, porte apprise, et vision globale du plateau —
La tour résiduelle 128×8 est appliquée deux fois par coup, avec les mêmes poids de convolution (profondeur effective ×2, sans coût de paramètres supplémentaire). Une porte apprise décide combien de l'état précédent conserver contre écraser (~88% conservé par défaut). Le Squeeze-and-Excitation ajoute, dans chaque bloc, une échelle et un biais par canal calculés sur le plateau entier — une interaction longue distance (a1–h8) sans creuser la profondeur convolutive.
-
Quatre instruments, trois convergent, un reste bruité —
Comparé à la même architecture sans récurrence ni porte ni SE, mêmes données, même graine : en tête sur les puzzles (8/8 tranches), sur Maia-1100/1500/1900 (23/24), et sur le tournoi toutes-paires (7/7, 27 300 parties) — jamais inversé sur ces trois instruments. Face à un minimax profondeur 2, qui cherche plutôt que d'imiter : 4/8, sans direction stable. Aucun Elo absolu n'est revendiqué.
-
Il exécute les tactiques, il ne les initie pas —
Sur les mêmes 23 845 puzzles : 61,5% de précision sur le premier coup, 42,5% sur la ligne entière. La précision sur le dernier coup d'une combinaison avoisine toujours 90%, mais le coup d'entrée discret (non forcé) tombe à 33,3% en position difficile (2400+), contre 59,9% pour une capture — un écart quasi identique à l'architecture sans les ajouts (32,8%). Récurrence, porte et SE améliorent la précision partout ; ils ne changent pas quel type de coup reste dur à initier.
-
Une seule graine, un seul run —
Chaque chiffre vient d'une seule graine (123), étendue séquentiellement sur 8 tranches de données via --resume. Le point de départ à 1,38M de parties a été confirmé sur trois graines indépendantes avant cette extension — l'extension elle-même ne l'a pas été. Le modèle n'a jamais affronté de pool coté, donc aucun Elo absolu n'est revendiqué.
InfiniGPT
Collaboration avec LMC. Développement d'un tokenizer GPT-2 optimisé pour le traitement du langage naturel à grande échelle.
GitHub
Hugging Face
WhisperWatch
Moniteur de disponibilité dédié aux bots Discord et à vos sites/APIs. Détection instantanée des pannes via l'intent Presence, surveillance HTTPS avec vérification de sécurité des URLs (anti-phishing, certificat TLS, âge du domaine), embeds d'alertes personnalisables, détection d'instabilité et dashboard web complet.
- Discord
- Bot
- Monitoring
- SaaS
- Dashboard
- Commandes slash : 21
- URLs surveillées (Free) : 10
- Plan Premium : 0€
- Bots max (Free) : 5
Site