Projets
Tout ce que j’ai construit, en deux volets : des systèmes d’IA appliquée qui tournent pour de vrais utilisateurs, et des modèles de deep learning que j’ai reconstruits à partir des principes de base. Ouvrez un projet pour la présentation complète, les exemples et la stack technique.
Systèmes d’IA appliquée
Travaux orientés production autour des LLM, du RAG, des agents, de l’évaluation et des plateformes de données — des systèmes qui tournent pour de vrais utilisateurs.

Alert Agent — Investigation d’incidents propulsée par MCP
Code privé (travail en entreprise / pour un client)
Un agent LLM développé chez Dailymotion qui récupère les alertes de la plateforme data depuis Slack et les investigue via des serveurs MCP dédiés à Airflow, GCP et BigQuery.
Construit avec:
Gemini
MCP
Airflow
BigQuery
GCP
Slack

Code-Hinter — Correction par IA intégrée à VS Code
GitHub: Code-HinterVidéo de démo: Code-HinterWeb app codeWeb app demo
Un projet d’équipe à Centrale Lyon : les professeurs créent des exercices dans VS Code, les étudiants soumettent depuis l’éditeur et un modèle d’IA évalue selon les critères du professeur.
Construit avec:
TypeScriptVS Code API
Python
Flask
Next.js

Juridia — RAG juridique multilingue
Code privé (travail en entreprise / pour un client)
Un système de recherche et de questions-réponses en production sur plus de 100 000 documents juridiques en arabe et en français, combinant recherche sémantique, par mots-clés et par métadonnées.
Construit avec:
FastAPI
PostgreSQLQdrantLlamaIndex
React

CadQuery Agent — Du texte ou d’une image à un modèle 3D éditable, en local
Un agent local et respectueux de la vie privée qui transforme un texte, une image de référence ou les deux en code Python CadQuery éditable et en géométrie STL/STEP exportable, à l’aide de modèles à poids ouverts.
Construit avec:
Python
FastAPICadQuery
Ollama
Docker
Three.js

Coflow — Carte du code pour VS Code
Une extension VS Code qui dessine comment votre code s’exécute : du système entier et du fichier qui lance tout, jusqu’à chaque ligne d’une fonction. Tourne en local, gratuite.
Construit avec:
TypeScriptVS Code API
Python

Glitch — Application Android contre les gestes en pilote automatique
Projet privé : j’y vois un vrai potentiel, le code reste donc fermé pour l’instant.
Une petite application Android qui affiche vos applications dans un nouvel ordre aléatoire, pour regarder avant de toucher. Aucune permission, pas d’internet, aucun pistage.
Construit avec: KotlinJetpack ComposeAndroid
GitHub Actions

Kinetra — Compagnon de fitness propulsé par l’IA
Projet privé : j’y vois un vrai potentiel, le code reste donc fermé pour l’instant.
Un coach sportif IA : des séances guidées, un coach caméra qui vérifie votre posture, des mesures corporelles à partir d’une photo, et une communauté bienveillante.
Construit avec:
FastAPI
PostgreSQLExpoMediaPipe
ONNX
Deep learning et recherche
Des modèles construits à partir des principes fondamentaux : transformers, apprentissage multimodal, vision par ordinateur, modèles génératifs (GAN, diffusion, texte-vers-image), apprentissage par renforcement, apprentissage sur graphes, parole et audio temps réel.

NatVC — Conversion vocale neuronale en temps réel
Code privé (travail en entreprise / pour un client)
Conversion vocale any-to-any qui tourne en temps réel sous le budget de latence d'une application live — mon mémoire de master à Centrale Lyon, réalisé pendant mon stage chez SteelSeries.
Construit avec:
PyTorch
Accelerate (multi-GPU)StreamVCLLVC
TensorBoard

Bilingual Net — Traduction anglais ↔ darija
GitHub: Bilingual NetVidéo de démo: Bilingual Net
Un Transformer encodeur–décodeur écrit de zéro pour traduire entre l'anglais et la darija marocaine — un dialecte à faibles ressources — avec une attention résiduelle pré-LN et cinq stratégies de décodage.
Construit avec:
PyTorch
Streamlit
PoetryBeam search

Tiny LLM — GPT-2 réimplémenté de zéro
Un modèle de type GPT-2 reconstruit de zéro pendant mon stage chez 3D Smart Factory : Flash Attention, blocs pré-LayerNorm et fine-tuning LoRA. Mon dépôt le plus étoilé.
Construit avec:
PyTorchLoRAOpenWebText

Image-to-CadQuery — Modèle vision-vers-code sur mesure
Code privé (travail en entreprise / pour un client)
Un réseau de neurones image-vers-CadQuery sur mesure qui traduit des images de CAO en tokens de modélisation exécutables, sans appeler de LLM ni d’API de modèle hébergé.
Construit avec:
PyTorchResNet18Transformer
Hugging Face Datasets
pytest

CartPole RL — Douze méthodes de RL sur un même benchmark
CartPole-v1 résolu de douze façons dans une seule petite base de code PyTorch : Q-learning tabulaire, SARSA et contrôle Monte Carlo, DQN avec ses variantes double, dueling, à replay priorisé et n-step, REINFORCE, acteur-critique, A2C et PPO, plus des politiques CNN qui apprennent à partir des pixels rendus, le tout sous un même protocole d'évaluation.
Construit avec:
PyTorchGymnasium
NumPyMatplotlib
pytest

Diffusion Workbench — Modèles de diffusion et de flux sur une même boucle
DDPM (prédiction de ε, de x0 et de v, DDIM), SDE de score (VP, VE), flow matching, EDM et guidage sans classifieur (classifier-free guidance) en PyTorch pur, partageant un même U-Net ou DiT, une même boucle d'entraînement, une même interface de sampler et une même évaluation, comparés sur MNIST avec un FID sur features de classifieur et des courbes qualité en fonction du NFE.
Construit avec:
PyTorch
torchvisionMatplotlib
pytest

English-to-Arabic Translator — Traduction automatique par Transformer
GitHub: English-to-Arabic Translator
Traduction automatique neuronale de l'anglais vers l'arabe avec un Transformer encodeur-décodeur écrit de zéro en PyTorch, avec un tokenizer BPE partagé, une recherche en faisceau (beam search) et une évaluation BLEU / chrF ; le même code fonctionne pour n'importe quelle paire de langues.
Construit avec:
PyTorchCustom TransformersBeam search
Hugging Face Datasets
pytest

FrozenLake RL — Méthodes classiques d’apprentissage par renforcement confrontées à l’optimum exact
FrozenLake, Taxi et CliffWalking résolus avec quatorze méthodes classiques d’apprentissage par renforcement, de l’itération sur les valeurs et du contrôle Monte Carlo à SARSA(lambda), Dyna-Q et un DQN sur états one-hot, chacune évaluée exactement à partir du modèle de transition et sur 1,000 épisodes réels.
Construit avec:
Python
NumPyGymnasium
PyTorchMatplotlib

GAN Workbench — Dix variantes de GAN sur une seule boucle d’entraînement
Dix types de GAN (GAN, DCGAN, cGAN, ACGAN, LSGAN, WGAN, WGAN-GP, SNGAN, pix2pix, CycleGAN) écrits en PyTorch pur derrière une seule boucle d’entraînement, un seul pipeline de données et une seule évaluation : changer de méthode tient en un flag, et la comparaison sur MNIST et sur des formes synthétiques est équitable.
Construit avec:
PyTorch
torchvisionMatplotlib
pytest

LunarLander RL — Onze méthodes de deep RL sur un même benchmark
LunarLander-v3 entraîné avec DQN, double et dueling DQN, REINFORCE, A2C, PPO et SAC discret sur l’atterrisseur discret, et DDPG, TD3, SAC et PPO gaussien sur la version continue : chaque algorithme tient dans un fichier PyTorch lisible, et tous partagent les mêmes réseaux, graines, évaluation et tableau comparatif.
Construit avec:
PyTorchGymnasium
NumPyMatplotlib
pytest

MountainCar RL — Toutes les familles de RL sur une seule tâche à récompense rare
MountainCar, en version discrète et continue, résolu avec le Q-learning et SARSA tabulaires, le tile coding, des variantes de DQN, REINFORCE, A2C, PPO, DDPG, TD3, SAC et la méthode de l’entropie croisée dans une seule base de code PyTorch, avec le reward shaping et des bonus de nouveauté activables par options pour montrer quelles méthodes trouvent le drapeau seules.
Construit avec:
PyTorchGymnasium
NumPyMatplotlib
pytest

Pendulum RL — Swing-up et Acrobot avec toutes les méthodes classiques de RL
Le swing-up du pendule (couple continu) et Acrobot (actions discrètes) résolus avec DDPG, TD3, SAC, PPO, A2C, REINFORCE, la méthode de l’entropie croisée, des variantes de DQN et SARSA(lambda) avec tile coding dans une seule base de code PyTorch, avec le même budget de pas, la même évaluation et les mêmes graphiques.
Construit avec:
PyTorchGymnasium
NumPyMatplotlib
pytest

Pong RL — Pong à partir des pixels avec sept méthodes de deep RL
Pong à partir des pixels bruts avec le gradient de politique de Karpathy, REINFORCE avec baseline, A2C, PPO, DQN, double DQN et dueling DQN (avec replay priorisé et retours n-step) dans une seule base de code PyTorch ; un Pong numpy 40x40 intégré permet à chaque méthode de battre son adversaire en quelques minutes sur un seul thread CPU, et le même code tourne sur Atari Pong.
Construit avec:
PyTorchGymnasium
NumPyMatplotlib
pytest

Speech Emotion Recognition — 8 classifieurs audio testés sur des locuteurs inconnus
GitHub: Speech Emotion Recognition
Huit façons de classer l’émotion dans la parole comparées sur RAVDESS : forme d’onde brute, MFCC, spectrogramme log-mel, caractéristiques manuelles et un WavLM gelé, tous entraînés sur le même découpage et testés sur des acteurs jamais entendus à l’entraînement, avec le surapprentissage mesuré et corrigé.
Construit avec:
PyTorch
Hugging Face Transformerslibrosa
scikit-learn

STT Workbench — Approches de reconnaissance vocale en PyTorch
Reconnaissance vocale construite from scratch en PyTorch : CTC, encodeur-décodeur à attention, LAS, hybride CTC/attention et RNN-Transducer sur des encodeurs BiLSTM, Transformer ou Conformer, avec tous les algorithmes de décodage et l’évaluation WER/CER, testés sur de petits jeux de données à 8 kHz.
Construit avec:
PyTorchBeam search
ONNX
Kaggle
pytest

Text2Image — Douze architectures texte-vers-image côte à côte
Douze architectures texte-vers-image (U-Net de Stable Diffusion, DiT, JiT, MMDiT, DiT à flux unique, SANA, MeanFlow, Transfusion, autorégressif, MaskGIT, VAR, MAR) en PyTorch qui partagent un même jeu de données, tokenizer de texte, boucle d’entraînement et évaluation automatique, entraînées et comparées sur CPU sur une tâche de formes légendées.
Construit avec:
PyTorchCustom Transformers
NumPy
pytest

TTS Workbench — Approches de synthèse vocale en PyTorch
Synthèse vocale construite from scratch en PyTorch : Tacotron 2, Transformer-TTS, FastSpeech 2, VITS et un vocodeur HiFi-GAN, avec un aligneur intégré et une évaluation MCD / F0 / MOS, comparés sur de petits jeux de données à 8 kHz.
Construit avec:
PyTorch
NumPyMatplotlib
Kaggle
pytest

U-Net Image Segmentation — Six variantes de segmentation mesurées sur les mêmes données
GitHub: U-Net Image Segmentation
U-Net en PyTorch où chaque choix de conception est un drapeau (skip connections, max-pooling ou convolution à pas, convolution simple ou double, blocs résiduels, un modèle de type SegNet sans skips et une baseline entièrement connectée), tous entraînés sur des formes synthétiques et Oxford-IIIT Pet et comparés avec l’IoU, le Dice et un balayage de seuil.
Construit avec:
PyTorch
torchvision
pytestMatplotlib

PairVC — Conversion de voix en temps réel apprise sur des paires
GitHub: PairVCDémo en ligne: PairVC
Un petit convertisseur de voix causal qui transforme votre voix en une voix cible en direct, 20 ms à la fois sur un seul cœur de CPU. Il apprend d’un gros modèle enseignant hors ligne, sur des paires de paroles.
Construit avec:
PyTorch
ONNX
Streamlit
JavaScript
Kaggle

JointVC — Conversion de voix démêlée, entraînée en une seule passe
Privé pour l’instant : j’explore encore cette recherche, le code n’est donc pas encore publié.
Recherche en cours : un petit convertisseur de voix en temps réel dont l’encodeur de contenu, l’encodeur de locuteur et le décodeur apprennent ensemble, et la question ouverte au cœur du projet, le démêlage (disentanglement) : garder qui parle hors de ce qui est dit.
Construit avec:
PyTorch
ONNX
Hugging Face Transformerstorchaudio

HR-Jev — GPT-2 pour la prédiction d'indicateurs RH
Un modèle GPT-2, écrit de zéro et initialisé à partir des poids pré-entraînés, qui lit des dossiers d'employés rédigés sous forme de phrases et prédit l'attrition, le niveau de poste, la satisfaction au travail et le revenu mensuel.
Construit avec:
PyTorch
Hugging Face
Gradio
pytest
TensorBoard

Text Classification — Détection d’émotions avec des RNN, LSTM et GRU
Classification des émotions de courtes phrases anglaises avec des modèles RNN, LSTM et GRU en PyTorch, chacun construit avec nn.* et from scratch, alimentés par des embeddings one-hot ou GloVe : 12 modèles, une seule recette, 91 à 92 % de précision en test.
Construit avec:
PyTorchGloVeNLTK
Pandas
pytest

GNN Molecular — Sept GNN pour les propriétés moléculaires
Le code est pour l'instant dans un dépôt privé.
Sept réseaux de neurones sur graphes (GCN, MPNN, DCNN, GIN, GAT, GraphSAGE, AttentiveFP) qui prédisent la solubilité moléculaire (ESOL) à partir du graphe des atomes et des liaisons, comparés sur un même split dans un package Python testé.
Construit avec:
PyTorch
PyTorch GeometricRDKitMoleculeNet
pytest

Image Captioner — Légendage d'images multimodal
Un modèle de légendage d'images écrit à la main en PyTorch : un encodeur de type ViT transforme l'image en tokens visuels et un décodeur Transformer rédige la légende.
Construit avec:
PyTorchCustom Transformers
Poetry

ViT Image Classifier — Vision Transformer écrit de zéro
Un Vision Transformer construit de zéro en PyTorch : embedding par patchs, encodage positionnel, attention multi-têtes, token [CLS] et fine-tuning.
Construit avec:
PyTorch
PoetryViT

ImageGen — GAN et diffusion derrière une seule boucle d’entraînement
Un DCGAN, un GAN ResNet de type SNGAN/BigGAN et un U-Net DDPM en PyTorch pur derrière une seule boucle d’entraînement, un seul sampler et un seul format de checkpoint, tous conditionnés par classe avec poids EMA, avec des presets pour MNIST, CIFAR-10 et les visages d’animaux AFHQ, et un entraînement sur CPU, un GPU, plusieurs GPU ou plusieurs machines.
Construit avec:
PyTorch
torchvision
Hugging Face Datasets
torchrun
pytest

MusicGen — Transformer vs LSTM vs RNN pour la musique
Génération de musique symbolique comparée entre Transformer, LSTM et RNN sur le même corpus, avec une application Streamlit qui génère des morceaux téléchargeables.
Construit avec:
PyTorch
Keras
StreamlitABC notation

MyTorcha — Un framework de deep learning écrit de zéro
Un framework de deep learning construit de zéro sur NumPy : un moteur d'autograd sur tenseurs avec des couches CNN, RNN, LSTM, GRU, d'attention et Transformer, 20 fonctions d'activation, 10 fonctions de perte et 8 optimiseurs, chaque gradient étant vérifié par différences finies et contre PyTorch. Le moteur scalaire d'origine est conservé comme chapitre pédagogique.
Construit avec:
Python
NumPy
pytest
PyTorch

SegNet Semantic Segmentation — Étiquetage pixel par pixel avec unpooling par indices de pooling
GitHub: SegNet Semantic Segmentation
SegNet implémenté en PyTorch à partir de l’article : un encodeur VGG16, un décodeur qui suréchantillonne avec les indices de max-pool sauvegardés, une perte d’entropie croisée plus soft dice, la précision pixel et le mIoU, entraîné sur des formes jouets, Oxford-IIIT Pet et des scènes de rue Mapillary Vistas.
Construit avec:
PyTorch
torchvision
pytest
Kaggle

YOLO Object Detector — YOLOv1 depuis l’article, en PyTorch
YOLOv1 écrit depuis l’article en PyTorch : le réseau à 24 couches, la perte en somme des carrés des erreurs, l’encodage des cibles, le décodage, la suppression des non-maxima et le mAP, entraîné à partir de poids aléatoires sur des formes synthétiques, des chiffres MNIST, PASCAL VOC ou n’importe quel jeu de données au format YOLO.
Construit avec:
PyTorch
torchvision
pytest
Kaggle