Amar Merabti · carnet
EN
Portrait d'Amar Merabti

La version courte

Amar Merabti, data scientist

Disponible en octobre 2026 — thèse CIFRE ou CDI data scientist · partout en France, idéalement en Île-de-France
Formation
M2 Données, Connaissances et Intelligence, Université Paris Cité — major de promotion (16/20). Licence et M1 SII à l'USTHB, Alger.
Expérience
Nricher (2026, 6 mois) : vérification d'attributs produit par inférence textuelle et TabPFN, 0,925 d'exactitude équilibrée. ENAGEO, groupe Sonatrach (2023–2024) : stage puis un an de CDD sur des diagraphies de puits traitées comme des séries temporelles (LSTM) : imputation (MAE 12,7) et prédiction d'un puits à l'autre, corrélation portée de 0,52 à 0,82.
Projets
Un modèle de langue de 36,3 M de paramètres entraîné de zéro pour le kabyle ; un benchmark de LLM open source ; des agents qui apprennent le football par self-play.
Outils
Python, PyTorch, Transformers, scikit-learn · Kafka, Spark, MongoDB, SQL · Java, C/C++
Langues
Français et anglais (bilingue), arabe (courant), kabyle (langue maternelle)
Carnet de travauxMis à jour le 17 septembre 2026

Amar Merabti

Data scientist — modèles de langue, NLP, données imparfaites

Disponible en octobre 2026 pour une thèse CIFRE ou un CDI data scientist · partout en France, idéalement en Île-de-France

En entreprise, j'ai travaillé sur des données que personne n'avait préparées pour moi. Chez Nricher, j'ai conçu une vérification automatique d'attributs produit qui valide 68 % des valeurs à 99 % de précision. Chez ENAGEO, groupe Sonatrach, j'ai reconstruit par LSTM des mesures de puits manquantes, d'un puits à l'autre. Et pour comprendre les modèles de langue de l'intérieur, j'en ai entraîné un de zéro pour le kabyle, ma langue maternelle.

16/20
major de promotion, M2 DCI, Université Paris Cité
36,3 M
paramètres de mon modèle kabyle, entraîné de zéro
22
dépôts open source, du compilateur au LLM
Joueur 1 0 – 0 joueur 2
joueur 1joueur 2ballon
Fig. 1 — Aucune règle de jeu n'est codée : les deux joueurs sont une seule politique PPO entraînée contre elle-même, 36 millions de pas en 48 minutes sur un portable. Rien n'est enregistré : le réseau joue ici, dans votre navigateur, dix décisions par seconde et par joueur. Déplacez les joueurs ou le ballon : le match repart de la position que vous posez. Voir l'expérience
§ 1

Dix expériences

Chaque projet part d'une question. Je note ce que j'ai fait, ce que j'ai mesuré, et ce qui n'a pas marché : c'est souvent là que j'ai le plus appris.

  1. Exp. 01
    2026
    projet personnel

    Peut-on entraîner un modèle de langue pour une langue qui n'a presque pas de données ?

    Tout le kabyle écrit disponible représente environ 40 millions de tokens, en partie enfermés dans des PDF aux polices d'avant Unicode. J'ai écrit le décodeur de ces polices, construit un corpus de 120 millions de caractères, puis pré-entraîné un Transformer de type Llama avant de l'affiner sur des messages de discussion.

    Ce qui n'a pas marchéMon premier modèle (43 M de paramètres pour 1 M de tokens) a appris son corpus par cœur : perte de 1,33 à l'entraînement, 6,21 en validation. Il était environ 800 fois trop gros pour ses données.

    1,977
    bits par caractère en validation après pré-entraînement et fine-tuning, contre 2,046 sans pré-entraînement
    Courbes de perte du pré-entraînement et du fine-tuning
  2. Exp. 02
    2026
    stage Nricher
    mémoire de M2, Pr. Salima Benbernou

    Comment vérifier une valeur extraite d'une fiche produit quand le catalogue du client n'est pas fiable ?

    Chaque couple attribut/valeur devient une hypothèse, confrontée phrase par phrase à la description du produit par inférence textuelle (mDeBERTa-v3). Ces scores, complétés par des embeddings BGE-M3, alimentent TabPFN. Le banc d'essai réunit 4 catalogues de production : 35 attributs, 30 919 lignes et 5 635 exécutions appariées, avec une référence construite sans annotation manuelle.

    Ce que l'ablation a montréRetirer les 4 scores d'inférence coûte 8,9 points ; retirer les 50 composantes d'embedding n'en coûte que 1,9 (test de Wilcoxon). C'est l'orientation de la représentation du texte, pas sa richesse, qui décide.

    68 %
    des valeurs validées automatiquement, à 99 % de précision
    0,925
    d'exactitude équilibrée, contre 0,808 pour la règle d'inférence seule et 0,898 pour TabSTAR, 28 fois plus coûteux
  3. Exp. 03
    2026
    projets personnels

    Que peuvent apprendre des agents à qui l'on ne donne aucune règle ?

    J'ai écrit un moteur de football 2D en NumPy (proportions FIFA, possession, tacles, collisions) et entraîné par PPO une seule politique qui joue les deux camps : deux joueurs apparaissent au hasard sur le terrain et cherchent à marquer, sans qu'aucune règle de jeu ne soit codée dans l'agent. 36 millions de pas en 48 minutes, sur un portable sans GPU. En parallèle, un quadrupède simulé avec pymunk apprend à marcher jusqu'à un drapeau avec Stable-Baselines3.

    Ce qui n'a pas marchéLe shaping par potentiel, pourtant le plus sûr en théorie, ne donne aucun signal quand tous les matchs se terminent : 1 % de victoires. Le réservoir d'adversaires à la AlphaStar perd contre le self-play miroir. Et mes premières évaluations, sur 12 matchs depuis un coup d'envoi fixe, ne mesuraient en réalité qu'un seul match répété. Le quadrupède, lui, n'atteint jamais sa cible au milieu d'obstacles (0/20).

    73 %
    de victoires contre un joueur scripté, sur 500 matchs, contre 19 % de défaites
    Le quadrupède simulé marche sur sol plat jusqu'au drapeau
    Quadrupède : 20/20 cibles atteintes sur sol plat, 16/20 sur terrain ondulé
  4. Exp. 04
    2025
    M1 DCI
    encadré par Pr. Themis Palpanas

    Pour combler les trous d'une série temporelle, le deep learning bat-il une méthode classique ?

    Des compteurs électriques de 3 127 foyers, 12 864 mesures chacun, 30 à 50 % de valeurs masquées. Nous avons comparé un plus proche voisin, un autoencodeur LSTM, un U-Net à convolutions partielles, un Transformer auto-supervisé et une décomposition STL réécrite en PyTorch pour tourner sur GPU.

    RéponseNon, pas ici. La STL gagne sur les deux scénarios, y compris sur 1 098 foyers jamais vus : saisonnalité et tendance sont exactement la structure de ces données, et les modèles profonds ont dû être réduits pour tenir sur 4 GPU.

    0,262
    MAE de la STL sur GPU, contre 0,327 pour le meilleur modèle profond (U-Net)
    Comparaison des erreurs des méthodes d'imputation
  5. Exp. 05
    2025
    TER de M1

    Que valent trois LLM open source de 7 milliards de paramètres en maths, en bon sens et en code ?

    LLaMA 2, Mistral et DeepSeek-R1 distillé, servis par Ollama sur 4 GPU L4 : GSM8K en 8-shot, HellaSwag et HumanEval en 0-shot, avec exécution du code généré dans un bac à sable et analyse des types d'erreurs Python.

    NuanceDeepSeek-R1 domine le code, mais son raisonnement long le rend environ 100 fois plus lent, et il n'a donné de réponse exploitable qu'à 258 questions de maths sur 500. Mistral offre le meilleur compromis entre précision et latence.

    128/164
    problèmes HumanEval résolus par DeepSeek-R1 (78,0 %), contre 52 pour Mistral et 15 pour LLaMA 2
    Taux de réussite HumanEval des trois modèles
  6. Exp. 06
    2023–2024
    ENAGEO, groupe Sonatrach
    stage puis CDD

    Peut-on reconstruire une mesure de puits là où elle manque, et la prédire dans un autre puits ?

    Le long d'un puits, on mesure à intervalles réguliers des caractéristiques de la roche comme l'élasticité ou la densité. Ces séries ont des trous (appareil défaillant, données perdues) et les mesures coûtent cher. En stage, j'ai testé des modèles classiques d'un puits à l'autre et livré une application Java Swing aux géophysiciens. En CDD, j'ai traité ces séries comme des séries temporelles, avec des LSTM et des RNN : pour combler les trous d'un même puits, puis pour prédire la même caractéristique dans un autre puits.

    Ce qui n'a pas marchéEn stage, la régression linéaire (r = 0,15) et le SVM (0,29) ne généralisaient pas d'un puits à l'autre. Et même à 0,82 avec les LSTM, la prédiction ne suffisait pas encore pour être exploitée par l'entreprise : j'ai laissé le projet en cours en partant en France.

    0,52 → 0,82
    de corrélation d'un puits à l'autre, du stage (MLP) au CDD (LSTM), avec une MAE passée de 21,4 à 15,8
    12,7
    de MAE pour combler les trous d'une série dans un même puits (RMSE 15,2)
  7. Exp. 07
    2026
    projet personnel

    Quand un humain ne peut annoter que deux cents exemples, lesquels lui donner ?

    Cinq stratégies de sélection comparées à budget fixe, sur deux jeux de données et deux classifieurs : vingt tirages indépendants par stratégie, comparaisons appariées et test de Wilcoxon. Le bac à sable de la page vous met à la place de l'annotateur.

    NuanceL'entropie, la stratégie la plus enseignée, fait pire que le tirage au hasard au démarrage : 0,687 contre 0,799 à cinquante étiquettes. Et sur un problème binaire facile, toutes les stratégies se rejoignent — l'apprentissage actif ne paie que sur les tâches difficiles.

    99 %
    de la performance finale atteinte avec 16 % des étiquettes, contre 96 % pour un tirage au hasard de même taille
    Courbes d'exactitude des cinq stratégies de sélection
  8. Exp. 08
    2026
    projet personnel

    Peut-on ouvrir un Transformer et montrer, tête par tête, comment il s'y prend ?

    Un modèle de 105 000 paramètres — deux couches, deux têtes — entraîné en 2,3 minutes sur un portable à retrouver dans son contexte ce qu'il doit écrire, puis disséqué : ablation de chaque tête, signature de son attention, mesure de ce qu'elle apportait. Le modèle tourne dans la page, avec un interrupteur par tête.

    Ce qui n'a pas marchéMa première version de la tâche gardait un motif de longueur fixe : un modèle à une seule couche la résolvait à 100 % par simple décalage, et mon contrôle négatif ne contrôlait rien. Période tirée au hasard, il retombe à 40 %.

    24,7 %
    ce qu'il reste de la recopie quand on coupe la seule tête « jeton précédent » — 99,5 % avant, 5,5 % si l'on coupe aussi la couche d'induction
    Apparition de la recopie en contexte au fil de l'entraînement
  9. Exp. 09
    2026
    projet personnel

    Comment savoir si un détecteur d'anomalies fonctionne vraiment ?

    Vingt jours de mesures d'un serveur, 38 capteurs, 9,5 % d'anomalies étiquetées. Un autoencodeur convolutif de 27 000 paramètres face à trois références — dont un score tiré au hasard — évalués sous les deux protocoles du domaine. Le détecteur tourne dans la page : dessinez un signal, il réagit.

    Ce que ça changeMesuré honnêtement, point par point, l'autoencodeur gagne vingt points de F1 sur la meilleure référence simple (0,741 contre 0,543). Le protocole standard, lui, est incapable de le montrer : il donne presque la même note à tout le monde.

    0,963
    de F1 obtenu par un détecteur aléatoire avec le protocole d'évaluation le plus utilisé du domaine — mieux que l'autoencodeur
    F1 des quatre méthodes sous les deux protocoles
  10. Exp. 10
    2026
    projet personnel

    Jusqu'où peut-on réduire un modèle de langue pour une langue peu dotée ?

    KabyLLM-nano : 1,6 million de paramètres, quantifiés en 8 bits, 2,07 Mo au total — le modèle écrit du kabyle dans la page, à huit millisecondes le jeton, sans serveur ni connexion. Tokenizer entraîné sur la langue, coût de la quantification mesuré.

    Ce que ça vaut1,84 bits par caractère sur la validation après 20 000 pas, contre 2,09 après 4 200 — et la courbe baissait encore. À cette taille le modèle apprend l'orthographe et la morphologie, pas des connaissances — et c'est écrit sur la page.

    2 048
    entrées de vocabulaire suffisent à découper le kabyle aussi finement que NLLB-200, qui en a 256 204
Sommet enneigé sous un ciel bleu, au-dessus d'une petite ville
Photo : Amar Merabti — décembre 2021
§ 2

Parcours, en diagraphie

Mes premiers modèles prédisaient des diagraphies de puits. Voici mon parcours dessiné de la même façon : la profondeur, ce sont les années ; les colonnes, ce que j'ai appris et où.

Puits MERABTI-1 · Alger → Paris · 2020–2026Survolez ou utilisez ↑ ↓ pour lire une année

Courbes : intensité d'usage de chaque domaine, estimée par moi. Motifs : formations ; bandes orangées : entreprises.

Version texte du parcours
  1. 2020Baccalauréat sciences expérimentales, mention Bien (Algérie).
  2. 2020 – 2023Licence informatique, USTHB (Alger). Premiers jeux en C avec SDL, gestion de bibliothèque en C (L2), messagerie Android Aqessar, compilateur Flex/Bison, extraction d'information avec Unitex.
  3. févr. – juin 2023Stage machine learning chez ENAGEO (groupe Sonatrach) : mémoire de licence sur la prédiction de paramètres géomécaniques.
  4. 2023 – 2024M1 Systèmes Informatiques Intelligents, USTHB, en parallèle d'un CDD de développeur IA chez ENAGEO : diagraphies traitées comme des séries temporelles avec des LSTM, imputation et prédiction d'un puits à l'autre (corrélation portée à 0,82).
  5. 2024 – 2025M1 Données, Connaissances et Intelligence, Université Paris Cité : benchmark de LLM, imputation de séries temporelles, solveur d'argumentation.
  6. 2025 – 2026M2 DCI, major de promotion (16/20) : qualité des données, streaming, extraction temporelle. Stage de data scientist chez Nricher (févr. – août 2026), KabyLLM et agents RL.
  7. oct. 2026Prochaine étape : thèse CIFRE ou CDI de data scientist.
§ 3

L'atelier

Les autres projets, des premiers jeux en C aux pipelines de données. Tous sont publiés sur GitHub, avec leur README.

Essayer deux de ces projets dans le navigateur →un réseau de neurones à régler jusqu'au XOR, un débat à trancher

16 projets
  • 2026

    Siwel

    Appels de groupe audio et vidéo entre téléphones, y compris derrière des réseaux mobiles restrictifs, grâce à un serveur TURN auto-hébergé.

    Kotlin · WebRTC · Firebase · Node.js Code ↗
  • 2026

    Prévision de l'activité de pêche

    Challenge shipd.ai : prédire les heures de pêche d'un navire à 1, 2 et 3 jours, sur 480 192 lignes.

    LightGBM · XGBoost · CatBoost · PyTorch Code ↗
  • 2025–2026

    Recommandation e-commerce en temps réel

    Des événements rejoués dans Kafka, des recommandations recalculées à chaque action, leur pertinence mesurée en direct.

    Kafka · PySpark · MongoDB · Streamlit Code ↗
  • 2025–2026

    Qualité des données NYC Taxi

    Mesurer puis réparer : complétude, exactitude, cohérence et unicité, pondérées selon l'usage ; coordonnées GPS reconstruites par la formule de Haversine.

    pandas · GeoPandas · ydata-profiling Code ↗
  • 2025

    Extraction d'expressions temporelles

    HeidelTime contre BERT sur des textes historiques, médicaux et des tweets : BERT atteint un F1 de 95,5 % sur les tweets (correspondance souple), loin de son domaine d'origine.

    BERT · HeidelTime · Java Code ↗
  • 2024–2025

    Sentiment sur 1,6 million de tweets

    Une première version en Keras (LSTM), reprise un an plus tard avec Spark ML et une base MySQL.

    Keras · Spark ML · MySQL Code ↗
  • 2025

    Visualiseur de réseaux de neurones

    Construire un réseau à la souris, régler poids et biais, et voir la propagation avant neurone par neurone.

    Python · Tkinter Essayer →Code ↗
  • 2024–2025

    Solveur d'argumentation abstraite

    Extensions complètes et stables d'un système d'argumentation de Dung, acceptation crédule et sceptique.

    Python Essayer →Code ↗
  • 2024–2025

    WatchBid

    Site d'enchères de montres de collection : comptes, catalogue filtrable, mise en vente et offres.

    Flask · SQLAlchemy · Bootstrap Code ↗
  • 2024

    Sac à dos multiple

    Recherche en profondeur, en largeur, A*, algorithme génétique et essaim d'abeilles, comparés dans une interface Java.

    Java · Swing Code ↗
  • 2023

    Compilateur MiniPy

    Analyse lexicale et syntaxique d'un langage inspiré de Python, table des symboles et génération de quadruplets.

    C · Flex · Bison Code ↗
  • 2022–2023

    Médicaments et posologies avec Unitex

    Un dictionnaire construit depuis le Vidal, enrichi par le contexte, puis des graphes de règles pour repérer doses, rythmes et durées.

    Unitex · Python Code ↗
  • 2022

    Aqessar

    Une messagerie Android avec une interface en kabyle : comptes, invitations, discussions en temps réel.

    Java · Firebase Code ↗
  • 2022–2023

    Sketches Processing

    Snake, démineur, billard, jeu de la vie, fourmi de Langton et fractales.

    Java · Processing Code ↗
  • 2021–2022

    Gestion d'une bibliothèque

    Ouvrages, étudiants, emprunts et pénalités, avec des files d'attente premium et classique écrites à la main sur des listes chaînées.

    C · listes chaînées · files Code ↗
  • 2021

    Mini-jeux SDL

    Mes premiers programmes graphiques, appris seul : un shoot'em up, un serpent, un pong et un mini-golf.

    C++ · SDL 1.2 Code ↗
Grand nuage éclairé par le couchant au-dessus d'une rue et d'un lampadaire
Photo : Amar Merabti — février 2021
§ 4

Ce que je cherche

À partir d'octobre 2026, deux voies m'intéressent autant l'une que l'autre.

Voie 1

Une thèse CIFRE

Je cherche un sujet où la donnée pose problème : rare, bruitée, incomplète ou peu fiable. Modèles de langue et NLP, données tabulaires, médicales ou biologiques, physique, chimie : le domaine m'importe moins que la question scientifique et son utilité pour l'entreprise.

  • Une première expérience de recherche en entreprise : mon mémoire chez Nricher portait sur 4 catalogues de production.
  • Des protocoles rigoureux : références sans annotation manuelle, ablations, tests appariés, calibration.
  • L'habitude d'implémenter moi-même, du Transformer au moteur de simulation.
Voie 2

Un CDI de data scientist

Je veux rejoindre une équipe qui construit des modèles utilisés pour de vrai, et où l'on mesure ce qu'ils valent avant de les déployer.

  • Des chaînes complètes : ingestion avec Kafka et Spark, modèle, évaluation, application.
  • Deux expériences en entreprise avec des résultats mesurés : ENAGEO (0,52 → 0,82) et Nricher (68 % automatisé à 99 % de précision).
  • Une aisance avec les LLM, du fine-tuning au benchmark.
Disponible : octobre 2026 Mobilité : toute la France, idéalement l'Île-de-France Langues : français, anglais, arabe, kabyle
§ 5

Azul — bonjour, en kabyle.

Le kabyle est ma langue maternelle, et très peu d'outils numériques le comprennent. KabyLLM et Aqessar viennent de là ; mes premiers programmes, eux, étaient des jeux en C écrits seul en 2021.

J'ai fait ma licence et mon premier master à l'USTHB, à Alger, en travaillant en parallèle pour ENAGEO. J'ai ensuite rejoint l'Université Paris Cité pour le master DCI, terminé major de promotion.

En dehors des modèles : le football, la musique et la photographie. Les photos de ce site sont les miennes.

Langues
Kabyle (maternelle)
Français, anglais (bilingue)
Arabe (courant)
Outils du quotidien
Python, PyTorch, Transformers
scikit-learn, pandas
Kafka, Spark, MongoDB, SQL
Java, C/C++, LaTeX
Sur le web
github.com/MerabtiAmar
LinkedIn
Contact

Un sujet de thèse, un poste, une question sur un projet ?

merabtiamar91@gmail.com