Commit 31cce7ed authored by Delvallez Delvallez's avatar Delvallez Delvallez

Finalisation rapport S10

parent b0f481ac
......@@ -271,3 +271,5 @@ TODO
- présentaion -> présentation
- intelliegnce -> intelligence
- extrcation -> extraction
- accord du mot noeud + \oe
- scores de perturbation -> socre de pertinence
\ No newline at end of file
\chapter{Lieu du stage, outils et ressources utilisés}
\section{Laboratoire d'Informatique Fondamentale d'Orléans}
Le stage présenté dans ce rapport s'est déroulé au sein du Laboratoire d'Informatique Fondamentale d'Orléans (LIFO), unité de recherche en informatique à l'Université d'Orléans et à l'INSA Centre Val de Loire. Le laboratoire rassemble des enseignants-chercheurs, chercheurs, doctorants et personnels d'appui autour de travaux couvrant un large spectre de l'informatique fondamentale.
Les activités de recherche du LIFO sont organisées en cinq équipes, chacune développant une expertise dans un domaine particulier de l'informatique fondamentale ou appliquée. Cette structuration permet de couvrir un large éventail de thématiques de recherche, allant des fondements théoriques de l'informatique jusqu'au développement de méthodes et d'outils répondant à des problématiques concrètes. Les équipes du laboratoire sont les suivantes :
\begin{itemize}
\item L'équipe \textbf{GAMoC} (Graphes, Algorithmes et Modèles de Calcul) s'intéresse à l'algorithmique dans toutes sortes de structures discrètes (graphes, automates, pavages,...). Ces travaux se divisent en deux thèmes : l'étude des problèmes NP-difficiles et l'étude des nouveaux modèles de calcul.
\item L'équipe \textbf{LMV} (Langages, Modélisation et Vérification) porte sur la fiabilité et la sécurité des logiciels. Ses travaux portent notamment sur la conception d'outils garantissant la présence de propriété critiques pour les logiciels.
\item L'équipe \textbf{PaMDA} s'inscrit dans le domaine des Sciences des Données. Ses travaux se divisent en deux axes. L'axe parallélisme explore les modèle et patterns de programmation spécifiques à certaines architectures. L'axe Base de Données porte sur la structuration et l'optimisation de l'interrogation des données.
\item L'équipe \textbf{SDS} (Sécurité des Données et des Systèmes) s'inscrit dans le domaine de la sécurité informatique au sens large. Son axe sécurité des données porte sur la confidentialité et l'anonymat et l'axe sécurité des systèmes porte sur la conception et la preuve de protocoles de sécurisation.
\item L'équipe \textbf{CA} (Contraintes et Apprentissage) est structurée autour de trois axes. La modélisation et la programmation par contraintes, l'apprentissage automatique sous toutes ses formes (apprentissage supervisé, profond, hybride, par renforcement,...) et le traitement automatique des langues. Ces trois axes intègrent un thème transverse : l'intégration de connaissances et l'interprétabilité des modèles.
\end{itemize}
Dans le cadre de ce stage, j'ai intégré l'équipe Contraintes et Apprentissage sous la supervision de Mme Halftermeyer. Les travaux réalisés s'inscrivent dans l'axe de recherche de l'équipe consacré au traitement automatique des langues naturelles (TALN) et intègrent l'axe transversal à travers mes propositions méthodologiques d'explicabilité.
\section{Outils utilisés durant le stage}
% \md{Annexe}
% \begin{verbatim}
% - Développement de l'architecture et réalisation des expérimentations en python dans 3 formats
% (script, implémentation d'un CLI, notebook)
% - Principales librairies python utilisées : PyTorch, TransformerLens, HuggingFace, PyMuPDF4LLM,...
% - Utilisation de plusieurs git pour assurer le suivi des versions des outils développé lors du stage
% - Pour l'execution de tâches demandantes en charge de calcul (Génération de la base de représentation
% des données, execution des différentes architectures explorées et/ou implémentées) : utilisation des
% grappes de calcul accessibles aux chercheurs du LIFO CaSciModOT et Mirev
% - utilisation d'outils à base d'IA très modérée et pour les tâches de l'ordre de reformulation
% (ChatGPT), traduction (DeepL), exploration de la littérature (LitMaps, Perplexity), rédaction
% de petites fonctions et outils python (ChatGPT)
% \end{verbatim}
Les travaux réalisés au cours de ce stage ont mobilisé différents outils logiciels et ressources de calcul dédiés au développement, à l'expérimentation et à l'évaluation de méthodes d'explicabilité pour les modèles de traitement automatique des langues.
Les développements réalisés durant ce stage ont été principalement effectués en \textbf{Python}, sous trois formats complémentaires : des \textbf{notebooks Jupyter} pour le prototypage et l'exploration des données, des \textbf{scripts} pour l'exécution des expérimentations, et une \textbf{interface en ligne de commande (CLI)} afin de structurer les outils développés et de faciliter leur réutilisation.
Les principales bibliothèques utilisées sont \textbf{PyTorch} \cite{paszke_pytorch_2019} pour le développement et l'exécution des modèles, \textbf{Hugging Face} \cite{wolf_huggingfaces_2020} pour l'accès aux modèles de traitement automatique des langues, \textbf{TransformerLens} \cite{nanda_transformerlens_2022} pour l'analyse interne des architectures Transformer, ainsi que des bibliothèques plus spécialisées telles que \textbf{PyMuPDF4LLM} \cite{artifex_software_pymupdf4llm_2026} pour l'extraction de contenu à partir de documents PDF.
Le suivi du développement a été assuré à l'aide de \textbf{Git} pour faciliter la gestion des versions et le suivi du bon déroulé du stage.
Les expérimentations les plus coûteuses en calcul, telles que la génération des représentations des données ou l'évaluation des différentes architectures étudiées, ont été exécutées sur les grappes de calcul Centre de Calcul Scientifique en région Centre-Val de Loire (\textbf{CaSciModOT}) et \textbf{Mirev}, mises à disposition des chercheurs du LIFO.
Enfin, plusieurs outils d'intelligence artificielle générative ont été utilisés de manière ponctuelle pour des tâches d'assistance : \textbf{ChatGPT} pour la reformulation et le développement de fonctions Python simples, \textbf{DeepL} pour la traduction d'extraits de documents scientifiques, et \textbf{Litmaps} ainsi que \textbf{Perplexity} pour la veille bibliographique et l'exploration de la littérature. Ces outils n'ont pas été utilisés pour la conception des contributions scientifiques présentées dans ce mémoire.
\section{Financement}
Ce travail a bénéficié d'une aide de l’État gérée par l'Agence Nationale de la Recherche au titre de France 2030 portant la référence "Minerve" ANR-22-EXES-0010.
\chapter{Dépôt Git des outils développés durant le stage}
Les outils et scripts développés dans le cadre de ce stage sont disponibles sur le dépôt GitLab suivant :
\begin{quote}
GitLab : \url{https://gogit.univ-orleans.fr/lifo/ah/ragrights}
\end{quote}
Ce dépôt contient notamment :
\begin{itemize}
\item des traces d'exploration bibliographique;
\item les notebooks d'exploration ;
\item les scripts d'expérimentation ;
\item l'interface en ligne de commande développée au cours du stage ;
\item la documentation d'utilisation;
\item les différentes supports de communication et rapports produits dans ce cadre.
\end{itemize}
@misc{nanda_transformerlens_2022,
title = {{TransformerLens}},
url = {https://github.com/TransformerLensOrg/TransformerLens},
author = {Nanda, Neel and Bloom, Joseph},
year = {2022},
}
@misc{wolf_huggingfaces_2020,
title = {{HuggingFace}'s {Transformers}: {State}-of-the-art {Natural} {Language} {Processing}},
shorttitle = {{HuggingFace}'s {Transformers}},
url = {http://arxiv.org/abs/1910.03771},
doi = {10.48550/arXiv.1910.03771},
abstract = {Recent progress in natural language processing has been driven by advances in both model architecture and model pretraining. Transformer architectures have facilitated building higher-capacity models and pretraining has made it possible to effectively utilize this capacity for a wide variety of tasks. {\textbackslash}textit\{Transformers\} is an open-source library with the goal of opening up these advances to the wider machine learning community. The library consists of carefully engineered state-of-the art Transformer architectures under a unified API. Backing this library is a curated collection of pretrained models made by and available for the community. {\textbackslash}textit\{Transformers\} is designed to be extensible by researchers, simple for practitioners, and fast and robust in industrial deployments. The library is available at {\textbackslash}url\{https://github.com/huggingface/transformers\}.},
urldate = {2026-08-25},
publisher = {arXiv},
author = {Wolf, Thomas and Debut, Lysandre and Sanh, Victor and Chaumond, Julien and Delangue, Clement and Moi, Anthony and Cistac, Pierric and Rault, Tim and Louf, Rémi and Funtowicz, Morgan and Davison, Joe and Shleifer, Sam and Platen, Patrick von and Ma, Clara and Jernite, Yacine and Plu, Julien and Xu, Canwen and Scao, Teven Le and Gugger, Sylvain and Drame, Mariama and Lhoest, Quentin and Rush, Alexander M.},
month = jul,
year = {2020},
note = {arXiv:1910.03771 [cs.CL]},
keywords = {Computer Science - Computation and Language},
}
@incollection{paszke_pytorch_2019,
address = {Red Hook, NY, USA},
title = {{PyTorch}: an imperative style, high-performance deep learning library},
abstract = {Deep learning frameworks have often focused on either usability or speed, but not both. PyTorch is a machine learning library that shows that these two goals are in fact compatible: it provides an imperative and Pythonic programming style that supports code as a model, makes debugging easy and is consistent with other popular scientific computing libraries, while remaining efficient and supporting hardware accelerators such as GPUs.In this paper, we detail the principles that drove the implementation of PyTorch and how they are reflected in its architecture. We emphasize that every aspect of PyTorch is a regular Python program under the full control of its user. We also explain how the careful and pragmatic implementation of the key components of its runtime enables them to work together to achieve compelling performance. We demonstrate the efficiency of individual subsystems, as well as the overall speed of PyTorch on several common benchmarks.},
booktitle = {Proceedings of the 33rd {International} {Conference} on {Neural} {Information} {Processing} {Systems}},
publisher = {Curran Associates Inc.},
author = {Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and Desmaison, Alban and Köpf, Andreas and Yang, Edward and DeVito, Zach and Raison, Martin and Tejani, Alykhan and Chilamkurthy, Sasank and Steiner, Benoit and Fang, Lu and Bai, Junjie and Chintala, Soumith},
year = {2019},
}
@article{majewska_semantic_2021,
title = {Semantic {Data} {Set} {Construction} from {Human} {Clustering} and {Spatial} {Arrangement}},
volume = {47},
issn = {0891-2017},
url = {https://doi.org/10.1162/coli_a_00396},
doi = {10.1162/coli_a_00396},
abstract = {Research into representation learning models of lexical semantics usually utilizes some form of intrinsic evaluation to ensure that the learned representations reflect human semantic judgments. Lexical semantic similarity estimation is a widely used evaluation method, but efforts have typically focused on pairwise judgments of words in isolation, or are limited to specific contexts and lexical stimuli. There are limitations with these approaches that either do not provide any context for judgments, and thereby ignore ambiguity, or provide very specific sentential contexts that cannot then be used to generate a larger lexical resource. Furthermore, similarity between more than two items is not considered. We provide a full description and analysis of our recently proposed methodology for large-scale data set construction that produces a semantic classification of a large sample of verbs in the first phase, as well as multi-way similarity judgments made within the resultant semantic classes in the second phase. The methodology uses a spatial multi-arrangement approach proposed in the field of cognitive neuroscience for capturing multi-way similarity judgments of visual stimuli. We have adapted this method to handle polysemous linguistic stimuli and much larger samples than previous work. We specifically target verbs, but the method can equally be applied to other parts of speech. We perform cluster analysis on the data from the first phase and demonstrate how this might be useful in the construction of a comprehensive verb resource. We also analyze the semantic information captured by the second phase and discuss the potential of the spatially induced similarity judgments to better reflect human notions of word similarity. We demonstrate how the resultant data set can be used for fine-grained analyses and evaluation of representation learning models on the intrinsic tasks of semantic clustering and semantic similarity. In particular, we find that stronger static word embedding methods still outperform lexical representations emerging from more recent pre-training methods, both on word-level similarity and clustering. Moreover, thanks to the data set’s vast coverage, we are able to compare the benefits of specializing vector representations for a particular type of external knowledge by evaluating FrameNet- and VerbNet-retrofitted models on specific semantic domains such as “Heat” or “Motion.”},
number = {1},
journal = {Computational Linguistics},
author = {Majewska, Olga and McCarthy, Diana and van den Bosch, Jasper J. F. and Kriegeskorte, Nikolaus and Vulić, Ivan and Korhonen, Anna},
month = apr,
year = {2021},
pages = {69--116},
}
@book{greimas_semiotique_1979,
address = {Paris},
title = {Sémiotique. {Dictionnaire} raisonné de la théorie du langage},
publisher = {Hachette},
author = {Greimas, Algirdas Julien and Courtès, Joseph},
year = {1979},
}
@misc{cohere_rerank_2024,
title = {Rerank {Multilingual} v3.0},
url = {https://docs.cohere.com/docs/rerank},
urldate = {2026-08-24},
publisher = {Cohere},
author = {{Cohere}},
year = {2024},
}
@book{cabre_terminologie_1998,
series = {U. {Linguistique}},
title = {La terminologie : théorie, méthode et application / {Maria} {Teresa} {Cabré}},
......
TODO
\ No newline at end of file
\section{Conclusion}
Au cours de ce stage, j'ai exploré la littérature scientifique portant sur le RAG et son explicabilité. J'ai découvert les différentes perspectives d'évolution de ces systèmes et les perspectives d'explicabilité pour les tâches l'extraction d'information à l'aide des méthodes d'interprétabilité mécaniste. J'ai repris le système RAG proposé par \cite{tran_retrieval_2024} et conçu un dataset type à partir des données fournies par le challenge RAG@EvalLLM. Enfin, j'ai proposé une méthodologie d'usage de l'activation patching avec l'outil MechIR \cite{parry_mechir_2025}. Cette dernière inclus la conception des perturbations ainsi que la visualisation et l'interprétation des résultats fournis par MechIR.
\section{Perspectives générales}
Au cours du stage, j'ai finalement choisi de poursuivre un sujet de thèse différent de celui visé par ce stage. Les travaux réalisés constituent néanmoins une première exploration méthodologique autour de l'interprétabilité mécaniste appliquée aux modèles d'extraction d'information pour le RAG.
Dans l'éventualité d'une reprise de ces travaux, voici quelques perspectives pour tende vers le résultat initialement prévu. Dans un premier temps, L'identification des nœuds proposée ne constitue pas encore une cartographie d'un modèle d'extraction. C'est la première étape. Une fois la cartographie obtenue, l'extraction d'explication du fonctionnement du modèle lors de l'usage doit être définie. Il est nécessaire de garder en tête que l'utilisateur visé n'est pas informaticien. Par conséquent, un travail doit être effectué pour rendre les explications accessible au public visé.
Par ailleurs, d'autres perspectives d'usage d'une telle cartographie existent. Cette dernière peut servir d'orientation pour améliorer ou spécialiser un modèle. De premiers résultats existent déjà sur l'utilisation de l'activation patching appliqué au prunning.
\ No newline at end of file
......@@ -12,7 +12,7 @@
\usepackage{multicol} % pour ecrire sur plusieurs colones localement
\usepackage{xcolor} %metre du texte en couleur
\usepackage{tcolorbox} % boite encart
\usepackage{hyperref} %objets cliquables
\usepackage{subcaption} % figures et sous-figures
% ecrire des maths
\usepackage{amsmath, amsfonts, amssymb}
......@@ -23,6 +23,7 @@
\usepackage{hyperref} %objets cliquables
%%%%%%% COMMANDES
\newcommand{\N}[1]{\mathbb{N}^{#1}}
\newcommand{\append}{\texttt{append }}
......@@ -41,9 +42,41 @@
\date{\today}
\begin{document}
\maketitle
\chapter*{Remerciements}
\thispagestyle{empty}
\setcounter{page}{0}
\begin{center}
\includegraphics[scale=0.4]{images/Logo Minerve_RVB.jpg}
\hspace*{\stretch{1}}
\includegraphics[scale=0.2]{images/France_2030_Logo_rouge_bleu_transparent.png}
\hspace*{\stretch{1}}
\includegraphics[scale=0.5]{images/LIFO.png}
\end{center}
\vfill
\begin{center}
\rule{0.5\textwidth}{1pt}\\
\vspace{0.5 \baselineskip}
\huge \textbf{Rapport de Stage recherche Semestre 10 \newline M2 GPEx Minerve} \\
\Large \textbf{Interprétabilité Mécaniste pour l'Extraction d'Information dans les systèmes de RAG}\\
\normalsize
\rule{0.5\textwidth}{1pt}\\
par \large Marine DELVALLEZ \normalsize \\
\vspace{2cm}
\begin{tabular}{llll}
\emph{Jury} : & Thi-Bich-Hanh DAO &\emph{Tutrice de stage} : & Anaïs HALFTERMEYER\\
& Anaïs HALFTERMEYER & &
\end{tabular}
\vfill
2 Février - 28 Août\\
Année universitaire 2025-2026
\end{center}
%\chapter*{Remerciements}
\tableofcontents
......@@ -54,7 +87,7 @@
\input{sota/sota.tex}
\chapter{Travail préalable et préparation des expériences}
\chapter{Objectifs du stage et préliminaires}
\input{pre-expe/pre-expe.tex}
\chapter{Contribution méthodologique}
......@@ -71,7 +104,9 @@
\bibliographystyle{apalike}
\appendix
\chapter{Résultats bruts d'expériences}
\input{res-expe/res-expe.tex}
% \chapter{Résultats bruts d'expériences}
% \input{res-expe/res-expe.tex}
\input{annexes/annexes.tex}
\end{document}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
\md{À REPRENDRE}
%\md{À REPRENDRE}
\section{Résultats et Analyse}
\subsection{Application à la cartographie du vocabulaire de la défense français dans mE5}
\begin{verbatim}
- Grand nombre de noeuds de la dernière couche du modèle
- pas de noeuds clairement associé au vocabulaire
...
\end{verbatim}
% \begin{verbatim}
% - Grand nombre de nœuds de la dernière couche du modèle
% - Peu de nœud pour certaines perturbations
% - pas de nœuds clairement associé au vocabulaire
% ...
% \end{verbatim}
Les résultats obtenus à l'aide des outils et éléments méthodologiques présenté dans le chapitre précédent ne sont pour l'instant pas très concluants.
La majorité des perturbations permettent de mettre en évidence quelques nœuds sensibles. La majorité d'entre eux se situe dans les dernières couches du modèle, et une grande partie de ces nœuds appartient à la dernière couche du modèle. Il n'est pas exclu que cette sensibilité soit le reflet de l'étalement des documents dans l'espace de représentation appris par le modèle mE5. Le cas échéant, la qualité de l'amélioration qui pourra être déduite de ces informations sera limitée. Il en va de même pour les explications qui pourraient en être déduites.
Au delà de la localisation des nœuds identifiés par les perturbations, il ne semble pas se dégager de tendance permettant d'aboutir à une cartographie de la gestion du vocabulaire de spécialité de la défense. En effet, certains nœuds sont sensibles à plusieurs perturbations portant sur un même mot comme dans la figure~\ref{fig:MatNoeudsSensibles} pour les perturbations portant sur le mot ciblé \textit{aérien}. Cependant, il ne se dégage pas de tendance plus globale regroupant tout ou partie du vocabulaire de spécialité de la défense pour l'instant.
Toutefois, ces faiblesses sont à modérer. L'échelle à laquelle les expérimentations ont été effectuées étant très faible (peu de mots, petit dataset unique, un seul domaine,...) il n'est pas exclu que des résultats supplémentaire apparaissent en passant à plus grande échelle.
\subsection{Préconisations d'utilisation}
\begin{verbatim}
- des perturbations qui couvrent tous ou très grande partie des documents étudiés
- utiliser la question comme document témoin
\end{verbatim}
% \begin{verbatim}
% - des perturbations qui couvrent tous ou très grande partie des documents étudiés
% - utiliser la question comme document témoin
% \end{verbatim}
Afin de profiter pleinement des outils et de la méthode proposée, il est important de rester vigilant sur certains points.
Pour que les perturbations permettent de localiser le vocabulaire spécifique visé ou plus généralement d'identifier une compétence linguistique ou cognitive, les perturbations utilisées doivent couvrir le plus possible l'ensemble de documents ou extraits utilisés. Pour cela, il peut être pertinent d'utiliser plusieurs petits datasets dont le contenu est orienté afin que certains mots de vocabulaire apparaissent plus facilement.
Pour le cas de la localisation du vocabulaire de spécialité, il faut rester vigilant sur le choix des mots à remplacer. Une partie des mots porteurs de sens ne font pas partie du vocabulaire spécifique. Appliquer une perturbation sur ces mots aura un impact sur la distribution des scores de pertinence des documents perturbés cependant elle ne permettra pas de localiser le vocabulaire de spécialité en l'appliquant à l'activation patching.
Une vigilance particulière doit aussi être porté sur le bruit et les biais. Dans le cas des perturbations ayant un impact modéré sur la représentation des documents au sein du modèle, les nœuds peuvent ne montrer qu'une faible sensibilité. Le bruit induit par l'activation patching peut alors prendre le dessus et créer des faux positifs. De la même façon, le choix d'utiliser plusieurs petits datasets augmente le risque d'introduire un biais lors de leur construction. Une analyse systématique et rigoureuse des données fournies par l'activation patching et les étapes préalables permet la plupart du temps de les identifier. Il en va de même pour la construction des perturbations. Elles reposent sur la diversité du vocabulaire et la maîtrise de la langue de spécialité du concepteur.
\section{Perspectives d'évolution de la méthode proposée}
\begin{verbatim}
- échelle pour situer le niveau d'un mot candidat remplaçant en fonction du mot remplacé
- critère d'identification du vocabulaire de spécialité
- intégration d'autres informations au critère de sensibilité
\end{verbatim}
\ No newline at end of file
% \begin{verbatim}
% - échelle pour situer le niveau d'un mot candidat remplaçant en fonction du mot remplacé
% - critère d'identification du vocabulaire de spécialité FAIT?
% - intégration d'autres informations au critère de sensibilité
% - élargir à toute la langue de spécialité (tournues et usages linguistiques)
% - compilation des résulatts obtenus sur plsueiurs datasets
% \end{verbatim}
Au cours de la conception de la méthode proposée, des faiblesses ont été identifiées et des pistes d'amélioration ont été évoquées.
Lors de la formulation des niveaux de perturbation, la notion d'"absence de lien" entre le mot cible et le mot remplaçant était fondée sur une intuition. \cite{greimas_semiotique_1979} propose une définition de l'"incompatibilité" entre deux mots qui pourrai être exploitée afin de garantir le niveau de la perturbation à sa construction. Un outil permettant de faciliter le choix des mots remplaçants reste à construire.
Aucune méthode n'est proposée pour l'instant pour de mettre en perspective les matrices de sensibilité moyenne d'une même perturbation appliquée sur deux datasets différents. Cela reste une piste pour étoffer la méthodologie proposée.
Au delà de ces faiblesses, \cite{parry_mechir_2025} propose deux autres types de perturbations que nous n'avons pas exploité dans la méthodologie. Une diversification des types perturbations et l'adaptation des outils d'interprétation des résultats est une piste d'exploration d'autant plus que les perturbations de type \prepend et \append donnent des résultats intéressants dans ses travaux.
De façon plus générale, il serai pertinent d'étendre la méthode actuelle à l'ensemble de la langue de spécialité. Les travaux actuels ne portent que sur le vocabulaire. La conception de perturbations permettant d'identifier les tournures spécifiques à un domaine de spécialité est une perspective intéressante.
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment