← TravauxTotalEnergies OneTech · DataLab, Pau
La bonne valeur, pour le bon objet : extraction par LLM dans des rapports industriels
Une extraction en deux passes guidée par la structure des documents, sur LLM auto-hébergés et GPU, avec une évaluation qui sépare l'identification des objets de la qualité de leurs attributs.
- Rôle
- Stage M2 — HPC Data Scientist / Data Engineer
- Période
- 04 — 09 · 2026
- Statut
- Prototype évalué, candidat à l'intégration
- Outils
- PythonvLLMMistral · Llama · GemmaGPU L40S / H100SLURMPydanticClearML
01Vue d'ensemble
Des rapports techniques de fin de puits — texte, tableaux, scans OCR, jusqu'à 175 000 tokens — doivent produire des métadonnées fiables pour indexer des objets métier dans des référentiels. Une profondeur juste, attribuée au mauvais puits, devient une erreur de donnée maître.
Stage de fin de master au DataLab de TotalEnergies OneTech (Pau), au sein d'une chaîne existante de traitement de lots de données techniques. Modèles ouverts servis sur l'infrastructure GPU de l'entreprise, données traitées dans son environnement de gouvernance.
Ce que j'ai fait personnellement
- 01Étudié les limites des approches RAG à extraits fixes et à similarité vectorielle sur ces rapports.
- 02Adapté l'extraction en deux passes à une navigation arborescente du document, avec une contrainte d'identité dans les prompts.
- 03Modélisé la hiérarchie métier — puits principal, wellbores, sidetracks, puits offset — pour limiter les erreurs d'affectation.
- 04Intégré les validateurs, le traitement par lots et le routage expérimental des étapes entre modèles.
- 05Construit le cadre d'évaluation L1 / L2 et l'analyse d'erreurs (objets manqués, mal identifiés, sur-générés).
Ce qui ne vient pas de moi —Le principe général d'une extraction en deux passes existait dans un module antérieur du DataLab. Je ne revendique pas l'invention du système : ma contribution porte sur son adaptation, la gestion des identités et l'évaluation.
02Contraintes
- Documents longs et hétérogènes : texte, tableaux, scans OCR de qualité variable, informations dispersées.
- Plusieurs objets par rapport, et des puits « offset » cités comme références géologiques sans être le sujet.
- Modèles ouverts auto-hébergés uniquement, sur GPU partagés (L40S, H100) ordonnancés par SLURM.
- Sorties exploitables par un référentiel : structure imposée, valeurs normalisées, provenance.
03Architecture
Q · Profondeur finale de WELLBORE A-1 ?
§1 · Puits A — synthèse
Profondeur finale 2 450 m
§3 · Wellbore A-1 — forage dévié
Profondeur finale 2 980 m
§7 · Puits offset B — référence géologique
Profondeur finale 3 105 m
Extrait le plus similaire : §7
3 105 m
Valeur plausible… d'un autre puits.
- 01
Index hiérarchique
Chaque rapport Markdown devient une arborescence de sections, titres, résumés et identifiants — pour ne plus chercher partout à l'aveugle.
- 02
Recherche hybride, sans index vectoriel
Sélection guidée par LLM sur l'arbre, complétée par une recherche lexicale de repères métier. « Vectorless » veut dire sans embeddings — pas sans lexical.
- 03
Passe 1 · les objets
Recenser les puits et wellbores sujets, avec leurs identifiants et leur rôle.
- 04
Passe 2 · leurs attributs
Extraire les attributs sous contrainte de la liste établie : une valeur ne peut appartenir qu'à un objet identifié.
- 05
Contrôle et provenance
Normalisation et validation déterministes (Pydantic), marqueur de rôle, extrait source et priorité de revue pour l'opérateur.
Vue conceptuelle, volontairement simplifiée pour diffusion externe.
04Décisions d'implémentation
- 01
Séparer « qui » de « quoi »
Un RAG classique répond à « quelle est la profondeur ? » avec une valeur plausible — parfois celle d'un autre objet. Séparer la détection des objets de l'extraction des attributs rend l'erreur d'attribution visible et mesurable.
- 02
Naviguer au lieu de découper
La structure du rapport porte l'information : le modèle choisit des branches de l'arbre plutôt que de recevoir des extraits fixes sans contexte.
- 03
Router chaque étape vers le bon modèle
Le meilleur modèle pour détecter les objets n'était pas le meilleur pour extraire les attributs. Un système composite affecte chaque étape au modèle le plus adapté, en arbitrant qualité et temps d'inférence.
- 04
Rendre l'expérimentation reproductible
Inférence vLLM sur jobs SLURM, sorties structurées validées, campagnes suivies dans ClearML : chaque chiffre renvoie à une configuration rejouable.
05Difficultés
Plusieurs identifiants, plusieurs profondeurs
Un même rapport disperse des valeurs pour plusieurs objets dans des sections différentes. Mieux formuler le prompt ne suffit pas : il faut établir la liste des objets, conserver leur hiérarchie et contrôler l'affectation.
Les sidetracks
Les branches déviées d'un puits restent difficiles à retrouver : une limite documentée, pas masquée.
La qualité de l'OCR
Certains attributs sont plafonnés par la qualité du texte source, quel que soit le modèle.
06Évaluation
Deux niveaux, mesurés séparément : L1, l'identification des wellbores sujets d'un rapport ; L2, la qualité des attributs sur les objets correctement appariés. Les objets manqués, mal identifiés et sur-générés sont suivis à part. Chaque configuration est comparée sur la détection, l'exactitude des attributs, la latence et l'analyse d'erreurs, sur un corpus de rapports annotés.
Non publiéLes scores détaillés et le volume du corpus restent internes tant que l'entreprise n'en a pas validé la diffusion. Je les présente volontiers en entretien, dans ce cadre.
07Résultats
- Temps de traitement réduit de 75 % sur la chaîne étudiée.
- Meilleure couverture de certains objets, notamment dans les rapports à plusieurs wellbores du corpus testé.
- Un compromis explicite détection / attributs / coût d'inférence, plutôt qu'un score unique.
- Statut : prototype évalué, candidat à l'intégration dans une brique existante. Aucun déploiement autonome n'est revendiqué.
Limites
- Selon certaines conventions de comptage, la précision de détection reste inférieure à celle d'un RAG à embeddings.
- Certaines comparaisons utilisent des moteurs d'inférence différents.
- Aucune supériorité universelle du retrieval sans vecteur n'est démontrée — ni revendiquée.
08Ce que j'en retiens
- 01Mesurer l'attribution, pas seulement la valeur : c'est là que se cachent les erreurs qui coûtent cher.
- 02Un modèle unique « meilleur » n'existe pas quand les étapes ont des exigences différentes.
- 03Écrire les limites dans le même document que les résultats rend les résultats crédibles.
09Preuves
- Mémoire de stage (77 p.) et présentation au Data Science ChapterInternes — consultables avec l'accord de l'entreprise
- Lettres de recommandation de l'encadrementSur demande