Egis
Amphi 2 - SESSION 2.2 - 07/02/2018 14h20 > 14h50


Du NLP aux LLM pour l'extraction automatisée d'exigences



Introduction

Lors de l'analyse d'un programme technique dans le domaine de l'ingénierie de la construction, de nombreux fichiers très hétérogènes sont reçus de la part du client. La prise de connaissance de ces éléments, leur compréhension, et la catégorisation des exigences qu'ils couvrent représentent une tâche laborieuse quantifiée à plusieurs milliers de jours-hommes par an, plusieurs centaines de milliers d'euros. Ce travail présente la création d'un outil permettant d'identifier et de classifier automatiquement les exigences se rapportant à chaque catégorie métier, diminuant ainsi le temps passé à réaliser ces tâches. Nous couvrirons la création d'un modèle de classification en traitement automatique du langage naturel (NLP en anglais), la construction d'une application en permettant l'exploitation, et la montée de version vers l'utilisation d'un grand modèle de langage (LLM en anglais) suite aux premiers retours d'adoption de l'outil. Le projet a commencé en septembre 2022 par une preuve de valeur, et la solution a été mise en production en juin 2023.

Méthodologie

La méthodologie a été déclinée en plusieurs phases : la création d'un prototype utilisant l'intelligence artificielle, la création d'une première version de l'application sans ce modèle IA, l'intégration du modèle dans l'application, la mise à disposition de l'outil aux utilisateurs et la création d'une version améliorée sur la base des retours.

Les objectifs scientifiques de la phase de prototypage étaient d'entraîner un modèle d'apprentissage automatique basé sur des plongements (word embeddings) dans le but de prédire la catégorie d'une phrase trouvée dans un programme technique. On disposait pour cela de documents (au format pdf notamment), traités par des moteurs d'extraction de texte. Plusieurs centaines d'exemples, pour chaque catégorie (plusieurs dizaines), ont été validés par les experts métiers. Ces données étaient alors préparées en suivant les meilleures pratiques NLP avant plongement, la classification multi-classes était réalisée par un modèle de type arbres de décision avec gradient boosting.

Ensuite il fallait concevoir et développer une application web capable de traiter les documents en donnant la possibilité d'identifier et de catégoriser les exigences détectées, sans le modèle de classification dans un premier temps, et ensuite en intégrant la prédiction faite par le modèle construit précédemment. L'architecture technique utilisée était le framework python Django, avec un front-end en React. Une phase d'expérimentation de 2 mois, auprès d'une population de 20 utilisateurs, a permis de mesurer l'utilité de cette application et de remonter un certain nombre d'idées d'amélioration. Cette phase a été essentielle dans l'identification des limitations du premier modèle : bonne précision mais trop de faux positifs, sous la forme d'un trop grand nombre d'exigences détectées.

La prise en compte de ces retours utilisateurs a fait l'objet d'une autre phase pendant laquelle le cœur du modèle a été revu en se basant sur une approche alternative utilisant des LLM (Large Language Model ou Grand Modèle de Langage), dans le but de dépasser les limites de l'approche NLP plus classique présentée précédemment.

Originalité / perspective

Le travail scientifique initial a été entamé en 2022, un tout premier prototype avait été présenté en 2022 avec des retours positifs et l'établissement d'une référence de performance. Cela a permis d'avancer vers la réalisation d'une application aux standards de qualité industriels. Ainsi, l'apport de valeur au métier a été possible avec une approche NLP classique, et n'a pas nécessité une performance parfaite pour prouver son utilité.

De nombreux challenges ont été rencontrés et relevés :
- Extraction d'information pertinente provenant de documents très hétérogènes (pdf à la mise en page variée, contenant images, tableaux, etc) ;
- Choix du nombre de classes et étiquetage ;
- Choix de l'indicateur de performance ;
- Choix restreint de bibliothèques logicielles python pour travailler en français.

La précision de la classification est proche de 80% avec la métrique top-3 (la vraie classe fait partie des 3 prédites comme les plus probables). La diminution du temps passé par les utilisateurs est également bien observée.

Une prochaine étape est de tirer les enseignements de la phase d'expérimentation avec les utilisateurs, afin d'affiner l'approche à base de LLM, sur plusieurs axes pressentis : fine-tuning complémentaire sur le domaine métier particulier d'Egis, amélioration de la reproductibilité

Références
br> PDFMiner - 3k https://pypi.org/project/pdfminer3k/
Bibliothèque python pour extraction d’information dans des fichiers pdf.
Fasttext - https://fasttext.cc/
Bibliothèque logicielle pour l’apprentissage des plongements (word embeddings) et la classification de textes multilingues.
LightGBM - https://lightgbm.readthedocs.io/en/stable/
Bibliothèque python implémentant l’algorithme d’apprentissage automatique LightGBM, à base d’arbres de décision


Revoir le live :



Joseph MCDONNELL
Software Enginee


Thomas LESAGE
Responsable du département développement de produits numériques
S'inscrire !
Nos sponsors

Les stands partenaires

{\rtf1}