Soheib BOUAZZAOUI
Je construis des pipelines de données et des modèles d'IA, et je mène une recherche en neurosciences computationnelles.
Bio
J'ai toujours eu besoin de comprendre comment les choses marchent, et souvent je finis par les reconstruire depuis zéro pour y arriver. Mes études m'ont amené en master IA et Big Data à l'ESIEE-IT, mais l'IA n'est qu'une partie de ce qui m'intéresse. Il y a aussi les maths derrière les modèles, et la façon dont le vivant traite l'information : comment des mécanismes très simples finissent par produire des comportements complexes.
Je passe d'un domaine à l'autre : machine learning, neurosciences computationnelles, apprentissage par renforcement, robotique, systèmes embarqués. Ce que je préfère, ce sont les cas où la théorie et l'expérience ne disent pas la même chose, parce que c'est là que je teste mes hypothèses. Et quand une question m'intrigue, je la suis, même si elle m'emmène dans un domaine où je n'avais pas prévu d'aller.
Plus l'IA répond à notre place, plus je tiens à réfléchir par moi-même. Je l'utilise pour aller plus loin, mais une réponse ne m'apprend rien tant que je ne l'ai pas comprise.
Je ne sais pas encore sur quelles questions je vais travailler ces prochaines années, et c'est aussi pour ça que la recherche m'attire.
Je traverse le temps par variations infinitésimales, ignorant quelle courbe naîtra de l'intégrale de mes jours et quelles dimensions attendent encore mon premier élan.Je traverse le temps par variations infinitésimales,ignorant quelle courbe naîtra de l'intégrale de mes jourset quelles dimensions attendent encore mon premier élan.
Connectome
L'agencement des connexions d'un système nerveux aide-t-il à apprendre ?
J'ai converti la reconstruction MaleCNS v1.0 de Janelia, le système nerveux central complet d'une drosophile mâle, en un réseau de neurones impulsionnels branché sur un œil artificiel et huit actions. Je l'ai comparé à des copies recâblées qui conservent les neurones, les degrés, les signes et les poids, ainsi que la profondeur sensorimotrice et la latéralité ; seul l'agencement des connexions diffère.
- 170 000
- neurones impulsionnels (environ)
- 80
- copies recâblées servant de témoins
- 2
- tâches visuelles apprises par récompense
- 55 h
- de calcul GPU (environ)
Résultat principal Sur les deux tâches, le connectome apprend plus vite que chacun des graphes témoins de l'étude principale, de 6 à 11 écarts-types au-dessus de leur moyenne.
Sujets
Câblage et vitesse d'apprentissage
Un réseau qui reçoit l'organisation mesurée d'un vrai système nerveux apprend-il mieux qu'un réseau de mêmes dimensions dont les connexions ont été redistribuées ?
Des modèles nuls fidèles
Les témoins conservent la profondeur sensorimotrice et la latéralité. Un recâblage naïf créerait des raccourcis directs entre les entrées sensorielles et les muscles, ce qui fausserait la comparaison.
Apprendre avec une règle locale
Une règle à trois facteurs modifie les connexions vers les neurones de sortie. Elle combine l'activité des deux neurones reliés et un signal de récompense.
Super Mario Bros.
Au départ, je voulais savoir si un connectome de drosophile pouvait apprendre à jouer à Super Mario Bros. Le jeu sert aujourd'hui de contrôle, et le connectome FlyWire 783 sert à répliquer les résultats.
IA
-
nanoGPT en NumPy
Un GPT au niveau caractère écrit uniquement avec NumPy, sans PyTorch ni différentiation automatique. J'ai dérivé chaque rétropropagation à la main, puis je les ai vérifiées par différences finies. Entraîné 25 minutes sur deux cœurs de processeur avec le texte des Misérables, il atteint 2,45 bits par caractère, 29 % de moins qu'un modèle bigramme.
-
Graphes de citations en PyTorch
Un réseau de neurones sur graphe classe 169 000 articles d'informatique d'arXiv dans 40 catégories, à partir de leur résumé et des 1,2 million de citations qui les relient. Pour mesurer l'apport des citations, je le compare à un MLP qui n'utilise que le texte, avec le protocole officiel de l'Open Graph Benchmark. L'expérience est en cours.
-
Consommation électrique à J+1
Chaque jour à midi, un modèle LightGBM prévoit la consommation électrique française des 48 demi-heures du lendemain, à partir des données ouvertes de RTE et de prévisions météo archivées. Des tests vérifient qu'il n'utilise aucune donnée postérieure à midi. Sur 2025, année exclue de l'entraînement, son erreur moyenne est de 1,70 %, contre 2,67 % pour la prévision J-1 publiée par RTE. Une fois son biais corrigé, la prévision de RTE atteint le même niveau ; le README détaille cette comparaison.
Big Data
-
Ventes immobilières, Spark contre DuckDB
Les ventes immobilières publiées en open data (DVF, 20 millions de lignes sur cinq ans) passent par un pipeline en trois couches, bronze, silver et gold, que j'ai écrit deux fois : en PySpark et en DuckDB. Les deux versions produisent des tables identiques, et 49 contrôles qualité interrompent l'exécution dès qu'une couche présente une anomalie. Sur une seule machine, DuckDB traite l'ensemble en 4 min 14 s, contre 16 min 37 s pour Spark.
-
Suivi des modifications de Wikipédia
Les modifications de tous les wikis Wikimedia arrivent en continu dans Redpanda, compatible avec l'API de Kafka. Un moteur de fenêtrage que j'ai écrit en Python, sans Flink ni Spark, les agrège en temps d'événement et détecte les pics d'édition. Sur un essai de 32 minutes, il a traité 61 événements par seconde avec une latence médiane de 1,1 s. Après deux arrêts brutaux de la machine, aucun événement n'avait été perdu ni compté deux fois.
ScreenPad
Piloter le second écran des ZenBook depuis Linux.
Une application pour la zone de notification qui règle la luminosité du ScreenPad Plus, l'allume et l'éteint. Elle fonctionne sous X11 et sous Wayland, sur Arch Linux et ses dérivées.
- La luminosité passe par brightnessctl et logind, directement sur le pilote du noyau, sans droits root.
- Avant l'extinction, la luminosité est enregistrée de façon atomique, puis restaurée au rallumage.
- Une seule instance à la fois, un lancement automatique à la connexion et un widget QML pour la barre d'Omarchy.
- Distribuée en paquet Arch et en releases GitHub, avec des tests automatisés.
RetroSave
Synchronise les sauvegardes d'émulateurs entre Android, Windows et Linux, via un serveur auto-hébergé.
- Avant chaque remplacement, une copie locale est conservée et l'écriture est atomique. En cas de conflit, les deux versions restent disponibles jusqu'à ce que le joueur choisisse.
- Chaque version reste restaurable, et l'export produit des fichiers utilisables sans RetroSave.
- Le moteur de synchronisation existe en C++ et en Kotlin, et des vecteurs de test communs vérifient que les deux se comportent de la même façon.
- Neuf connecteurs : PPSSPP, melonDS, Azahar, Dolphin, DuckStation, PCSX2, mGBA, RetroArch, et un dernier pour n'importe quel dossier.
- Installateur Windows, archive Linux, APK signé et guide d'auto-hébergement en HTTPS.
Phantom
Une application pour sortir d'une addiction, avec un fantôme en pixel art pour compagnon.
- Blocage DNS directement sur le téléphone, via VpnService.
- Un compteur de jours et des points d'expérience, une aide au moment d'une envie, un journal et un coach IA.
- Communauté sous pseudonyme, modérée côté serveur.
- L'application fonctionne hors ligne avec Room et se synchronise avec Supabase, protégée par des règles RLS testées.
Arabic Dial
Noor, un cadran Wear OS personnalisable à chiffres arabes.
- Six styles, huit palettes et trois formes d'aiguilles, à combiner comme on veut.
- Deux complications au choix, une trotteuse optionnelle et un mode ambiant sur fond noir.
- Un générateur Python produit le XML du Watch Face Format et toutes les images à partir d'une seule description du design.
LexVault
Le transfert de fichiers confidentiels pour les cabinets d'avocats.
- Les fichiers sont chiffrés sur le poste de l'utilisateur, avant l'envoi.
- Chaque transfert a ses contrôles de partage et son journal d'audit.
- Une application web et une application de bureau en Electron.
- Les emails d'invitation, de code à usage unique et de notification ont été testés en conditions réelles.
SOS Médecins
Données, intégrations et outils internes.
- Pipelines de données en production.
- Intégration entre Doctolib et Sobek par automatisation du navigateur.
- Outils de téléphonie connectés à Genesys, en C# et ASP.NET.
- Maintenance d'applications Classic ASP.
Écrivez-moi
Je cherche un poste en data engineering, en IA ou en recherche, à partir de septembre 2027.