Antoine Théologien
Salut, moi c'est Antoine. Ingénieur data & IA, en région parisienne.

Un modèle qui marche dans un notebook, c'est bien. Qui marche encore six mois plus tard, c'est mieux.

Je sors tout juste du Master MIND de Sorbonne Université. Pendant mon stage de fin d'études chez SNCF Connect & Tech, j'ai joué les vigies : j'ai construit un outil qui surveille un modèle de recommandation de trajets et qui prévient l'équipe dès que les données commencent à dériver. Il tourne aujourd'hui sur plusieurs modèles.

C'est ce qui me plaît le plus dans le machine learning : tout ce qui se passe après l'entraînement. Comprendre pourquoi un modèle se dégrade, choisir le bon test statistique, automatiser ce qui peut l'être. Et quand j'ai du temps, je creuse des sujets plus pointus, comme les RAG ou le fine-tuning de LLM sans faire exploser la mémoire GPU.

Loin de l'écran (enfin, pas toujours) : beaucoup de cinéma, beaucoup de musique, et du football dès que possible. Assez pour en avoir fait un projet de data.

Postes visés
Data Scientist, ML Engineer
Disponible
Décembre 2026
Basé en
Île-de-France
Langues
Français, anglais (B2)

Projets

En prod
Outil réutilisé sur plusieurs modèles après le stage

Détecter la dérive d'un modèle en production

Stage de fin d'études, SNCF Connect & Tech, 2026

Un modèle de recommandation de trajets se dégrade sans bruit quand les données réelles s'éloignent de celles de l'entraînement. J'ai d'abord exploré les données de production avec PySpark, puis conçu un outil qui compare les deux distributions avec Evidently (distance de Wasserstein, test de Kolmogorov-Smirnov). Il tourne automatiquement via Airflow et envoie une alerte Datadog en cas d'anomalie.

J'ai aussi rédigé toute la documentation, présenté le projet à l'équipe et assuré la maintenance de l'environnement (images Docker, nouvelles versions de librairies).

Comment l'outil fonctionne
  1. Données de prodExtraites et préparées avec PySpark
  2. ComparaisonEntraînement contre production avec Evidently (Wasserstein, KS)
  3. PlanificationExécution automatique orchestrée par Airflow
  4. AlerteEnvoyée dans Datadog si une dérive est détectée
PySpark, Evidently, Airflow, Datadog, Docker. Code propriétaire, non publié.
0,81 → 0,94
MRR, de la baseline BM25 au meilleur modèle SPLADE

Un RAG qui retrouve mieux ses sources

Recherche d'information, 2025

Un pipeline RAG de bout en bout sur le jeu de données LoTTE. J'ai comparé une baseline BM25, un SPLADE entraîné moi-même (LoRA, distillation) et un SPLADE pré-entraîné, puis testé une fusion hybride et une expansion de requêtes par LLM. Le SPLADE pré-entraîné l'emporte nettement ; avec peu de ressources, l'entraîner soi-même reste loin derrière.

MRR par méthode de recherche
BM25 baseline
0,807
SPLADE entraîné localement
0,549
SPLADE pré-entraîné
0,942
Hybride BM25 + SPLADE
0,942
Recall@5 passe aussi de 0,73 à 0,87. La fusion hybride n'apporte rien de plus : le meilleur poids pour BM25 est quasi nul.
Python, PyTorch, Hugging Face, PyTerrier
−80 %
de mémoire GPU à l'entraînement avec QLoRA

Fine-tuning complet, LoRA ou QLoRA ?

Benchmark, 2025

Trois façons d'adapter un modèle de langage (DistilBERT, classification AG News), comparées avec Hugging Face PEFT sur la précision, la mémoire GPU, la vitesse et la sensibilité au rang. De quoi choisir la bonne méthode selon le matériel disponible.

Mémoire GPU supplémentaire à l'entraînement
Fine-tuning complet précision 0,880
1,14 Go
LoRA, r = 16 précision 0,872
0,46 Go
QLoRA 4 bits précision 0,874
0,22 Go
Même précision à 1,5 point près, avec 1,3 % des paramètres entraînés. En contrepartie, QLoRA s'entraîne environ 1,8 fois plus lentement que LoRA.
PyTorch, Hugging Face PEFT, quantification 4 bits

Et aussi

Mixture-of-Memories, réimplémenté depuis l'article

Un modèle de séquences longues à complexité linéaire, alternative plus économe aux Transformers, réimplémenté à trois à partir du papier : une version PyTorch et des noyaux Triton optimisés. Master MIND, 2025.

Voir le code

Répondre à des questions sur des tableaux Wikipédia

Des LLM nettoient des tableaux désordonnés (Mistral 7B, CodeLlama), puis OmniSQL traduit les questions en SQL, évalué contre la vérité terrain sur WikiTableQuestions. Projet de groupe.

Voir le code

Typage d'entités dans un graphe de connaissances

Fine-tuning de LLM enrichi de connaissances sémantiques pour mieux attribuer un type aux entités d'un graphe de connaissances. Projet de groupe.

Voir le code

Prédire les matchs de football européen

5 400 matchs sur trois saisons, tests statistiques, ACP et régression logistique interprétable. AUC de 0,77. Master MIND, 2025.

Voir le code

Moodvie

Une application web en cours de développement, avec une API en FastAPI. Projet personnel.

Parcours

Expérience

Février à août 2026
ML Engineer, stage de fin d'études
SNCF Connect & Tech, Saint-Denis
2023 à 2024
Développeur web full-stack, deux stages
Groupe Europe Handling, Roissy-en-France. Deux applications internes (Symfony, JavaScript, SQL).

Formation

2024 à 2026
Master MIND, mention Bien
Sorbonne Université, Paris
2021 à 2024
Licence Informatique, Cursus Master Ingénierie
Université de Reims Champagne-Ardenne
Langages
Python, SQL, Java
ML et stats
scikit-learn, PyTorch, TensorFlow, Hugging Face, tests statistiques, LLM
Données
Spark (PySpark), PostgreSQL, Oracle, Airflow
Production
Evidently, Datadog, MLflow, Docker, Kubernetes, AWS, Git, Linux

On en parle autour d'un café ?

Je cherche un poste de Data Scientist ou de ML Engineer à partir de décembre 2026. Le plus simple pour me joindre, c'est par mail.

theologiena@gmail.com