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

Finalisation rapport S10

parent b0f481ac
...@@ -271,3 +271,5 @@ TODO ...@@ -271,3 +271,5 @@ TODO
- présentaion -> présentation - présentaion -> présentation
- intelliegnce -> intelligence - intelliegnce -> intelligence
- extrcation -> extraction - 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, @book{cabre_terminologie_1998,
series = {U. {Linguistique}}, series = {U. {Linguistique}},
title = {La terminologie : théorie, méthode et application / {Maria} {Teresa} {Cabré}}, title = {La terminologie : théorie, méthode et application / {Maria} {Teresa} {Cabré}},
......
TODO \section{Conclusion}
\ No newline at end of file
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
\section{Environnement du stage} \section{Événements ayant jalonné ce stage}
\begin{verbatim} % \begin{verbatim}
- Stage à lieu au LIFO, dans l'équipe CA, encadré par ... % - Stage à lieu au LIFO, dans l'équipe CA, encadré par ...
- Stage de fin de master d'informatique Minerve GPEx % - Stage de fin de master d'informatique Minerve GPEx
- Challenge@EvalLLM comme cas d'usage, participation envisagée mais timing pas OK % - Challenge@EvalLLM comme cas d'usage, participation envisagée mais timing pas OK
- différents événements et sorties organisées pendant le stage % - différents événements et sorties organisées pendant le stage
- TransIA : Tours, Présentations pluridisciplinaires sur l'intégration de l'IA (sous toutes ses formes) % - TransIA : Tours, Présentations pluridisciplinaires sur l'intégration de l'IA (sous toutes ses formes)
dans la société % dans la société
- TAL-I : journée du GDR TaL-I à Paris (Jussieu) sur les travaux portant sur l'interprétabilité et % - TAL-I : journée du GDR TaL-I à Paris (Jussieu) sur les travaux portant sur l'interprétabilité et
l'explicabilité dans le contexte des tâches de traitement de la langue naturelle % l'explicabilité dans le contexte des tâches de traitement de la langue naturelle
- Frugal % - Frugal
- 2nd Symposium on Mental Health and AI : deux jours de conférence (suivi en pointillé en distanciel) % - 2nd Symposium on Mental Health and AI : deux jours de conférence (suivi en pointillé en distanciel)
présentation des travaux à la croisée entre santé mentale et intelligence artificielle (impact, outils % présentation des travaux à la croisée entre santé mentale et intelligence artificielle (impact, outils
de détection, de prise en charge) % de détection, de prise en charge)
- Place du Numérique : événement public de sensibilisation et de communication sur le Numérique % - Place du Numérique : événement public de sensibilisation et de communication sur le Numérique
organisé place du Martoi à Orléans (Des événements similaires organisés dans chaque département % organisé place du Martoi à Orléans (Des événements similaires organisés dans chaque département
de la région CVL) J'ai participé à la tenue du stand de l'université, été ambassadrice de l'événement % de la région CVL) J'ai participé à la tenue du stand de l'université, été ambassadrice de l'événement
et ai joué le rôle d'un témoin dan sle tribunal des génération futures portant sur "L'IA nous % et ai joué le rôle d'un témoin dan sle tribunal des génération futures portant sur "L'IA nous
contrôle-t-elle? % contrôle-t-elle?
- Présentation aux journées d'équipe CA % - Présentation aux journées d'équipe CA
\end{verbatim} % \end{verbatim}
Ce mémoire restitue les travaux et réflexions que j'ai porté à l'occasion de mon stage de fin de master ARIAS, parcours Minerve GPEx au sein de l'équipe Contraintes et Apprentissage du Laboratoire d'Informatique Fondamentale d'Orléans (LIFO) au cours duquel j'ai été encadré par Mme Halftermeyer. Au cours de ces six mois de stage et en parallèle de mon travail au sein du LIFO, j'ai pu suivre et participer aux événements scientifiques et de dissémination suivants: Ce mémoire restitue les travaux et réflexions que j'ai portés à l'occasion de mon stage de fin de master ARIAS, parcours Minerve GPEx au sein de l'équipe Contraintes et Apprentissage du Laboratoire d'Informatique Fondamentale d'Orléans (LIFO) au cours duquel j'ai été encadré par Mme Halftermeyer. Au cours de ces six mois de stage et en parallèle de mon travail au sein du LIFO, j'ai pu suivre et participer aux événements scientifiques et de dissémination suivants:
Le colloque pluridisciplinaire \textbf{Sociétés en transition à l'ère de l'intelligence artificielle} (TransIA) portait sur les impacts de l'Intelligence Artificielle sur la société et les différents pans de la recherche. Il regroupait des présentations issues des différentes disciplines allant des Sciences de l'éducation au droit privé et public en passant par l'étude le l'impact social et environnemental de l'IA. Il m'a permis d'aborder la recherche au sujet de l'intelligence artificielle sous l'angle de son son impact et d'avoir un regard plus ouvert sur les autres disciplines de recherche et leur application à l'IA. Le colloque pluridisciplinaire \textbf{Sociétés en transition à l'ère de l'intelligence artificielle} (TransIA) portait sur les impacts de l'Intelligence Artificielle sur la société et les différents pans de la recherche. Il regroupait des présentations issues des différentes disciplines allant des Sciences de l'éducation au droit privé et droit public en passant par l'étude le l'impact social et environnemental de l'IA. Il m'a permis d'aborder la recherche au sujet de l'intelligence artificielle sous l'angle de son impact et d'avoir un regard plus ouvert sur les autres disciplines de recherche et leur application à l'IA.
La journée du Groupe de Recherche \textbf{TAL-I} regroupait des présentations et une session poster portant sur l'interprétabilité dans le contexte du Traitement Automatique des Langues Naturelles. Cette journée organisée à Paris m'a permis de compléter ma découverte du paysage de l'explicabilité pour le TALN effectuée durant mon immersion au semestre précédent et d'échanger avec d'autres chercheurs sur mon projet individuel ainsi qu'à propos de leur travaux. La journée du Groupe de Recherche \textbf{TAL-I} regroupait des présentations et une session poster portant sur l'interprétabilité dans le contexte du Traitement Automatique des Langues Naturelles. Cette journée organisée à Paris m'a permis de compléter ma découverte du paysage de l'explicabilité pour le TALN effectuée durant mon immersion au semestre précédent et d'échanger avec d'autres chercheurs sur mon projet individuel ainsi qu'à propos de leur travaux. C'est à l'occasion d'un de ces échanges que j'ai choisi d'orienter mon sujet de stage sur l'utilisation d'outils d'explicabilité post-hoc.
J'ai aussi eu l'occasion de suivre en distanciel les présentations de la \textbf{Journée Frugalité en TAL et ML} qui portaient sur les enjeux et les impacts environnementaux et sociaux du développement du TAL et du ML et les solutions actuellement étudiées pour les prendre en compte et les réduire. Ces présentationsm'ont permi de prendre conscience de l'importance des ses enjeux et mieux comprendre quels sont les leviers pour les prendre en compte dans des travaux de recherche en IA. J'ai aussi eu l'occasion de suivre en distanciel les présentations de la \textbf{Journée Frugalité en TAL et ML} qui portaient sur les enjeux et les impacts environnementaux et sociaux du développement du TAL et du ML et les solutions actuellement étudiées pour les prendre en compte et les réduire. Ces présentations m'ont permise de prendre conscience de l'importance des ses enjeux et mieux comprendre quels sont les leviers pour les prendre en compte dans des travaux de recherche en IA.
Le \textbf{Second Symposium on Mental Health and AI} regroupait des présentations de travaux à la croisée entre l'intelligence artificielle, les sciences cognitives et la psychologie. J'ai pu suivre certaines présentations en lien avec le projet collaboratif que nous avions présenté avec Eva Troupillon au semestre précédent dans le cadre du module Défi Appel à Proposition de Projet. Le \textbf{Second Symposium on Mental Health and AI} regroupait des présentations de travaux à la croisée entre l'intelligence artificielle, les sciences cognitives et la psychologie. J'ai pu suivre certaines présentations en lien avec le projet collaboratif que nous avions présenté avec Eva Troupillon au semestre précédent dans le cadre du module Défi Appel à Proposition de Projet.
À l'occasion des \textbf{journées de l'équipe CA}, j'ai pu découvrir les travaux en cours au sein de l'équipe. J'y ai moi-même présenté les premières contributions méthodologiques et les difficultés auxquelles je faisais face dans le cadre de mon stage. J'ai pu prendre conscience de l'importance des échanges et de la collaboration au sein de la recherche et de la capacité de ces échanges à faire prendre du recul sur ses travaux et permettre d'avancer. À l'occasion des \textbf{journées de l'équipe CA}, j'ai pu découvrir les travaux en cours au sein de l'équipe. J'y ai moi-même présenté les premières contributions méthodologiques et les difficultés auxquelles je faisais face dans le cadre de mon stage. J'ai pu prendre conscience de l'importance des échanges et de la collaboration au sein de la recherche et de la capacité de ces échanges à faire prendre du recul sur ses travaux et permettre d'avancer. C'est à partir d'un échange avec Mme Dao à la suite de ma présentation que certaines propositions de conception de perturbation sont nées.
\md{Évoquer dès maintenant le challenge?} J'ai aussi pu participer à un \textbf{challenge RAG} organisé par l'atelier EvalLLM. La tâche à laquelle je me suis inscrite permettait de compléter le paysage de mon sujet, notamment par un dataset francophone spécialisé dans la défense. Malheureusement, le calendrier ne m'a pas permis de soumettre de résultat valable et je n'ai donc pas pu concourir jusqu'au bout.
\md{Ajouter les sémainaires du lundi} Mon intégration au LIFO m'a aussi facilité l'accès aux \textbf{séminaires organisés régulièrement} le lundi au sein du laboratoire. J'ai pu suivre plusieurs présentations de sujet d'étude de collèges de chercheurs du laboratoire. Ces présentations sur divers sujets (Traitement de la Langue, Automatisation des outils de développement, Graph Neural Networks appliqués,...) me permettent de compléter ma culture des sujets de recherche d'actualités au sein du laboratoire et de ses partenaires qu'ils ce soient connexes au domaine de mon stage ou non.
En dehors des événements internes au monde de la recherche et de l'informatique, j'ai aussi pu marrainer la \textbf{Place du Numérique} organisée à Orléans le 9 juin dernier. Cet événement vise à faire connaître et rendre accessible la diversité du monde du numérique dont la recherche en informatique fait partie. J'ai notamment joué le rôle de témoin dans le \textit{tribunal des générations futures} questionnant l'influence de l'intelligence artificielle sur notre comportement. En dehors des événements internes au monde de la recherche et de l'informatique, j'ai aussi pu marrainer la \textbf{Place du Numérique} organisée à Orléans le 9 juin dernier. Cet événement vise à faire connaître et rendre accessible la diversité du monde du numérique dont la recherche en informatique fait partie. J'ai notamment joué le rôle de témoin dans le \textit{tribunal des générations futures} questionnant l'influence de l'intelligence artificielle sur notre comportement.
\section{Outils utilisés durant le stage} \section{Contexte et problématiques traités dans ce mémoire}
\subsection{Contexte}
% \begin{verbatim}
% - Intro RAG :
% - les modèles ont des souci pour gérer la connaissance (hallucination, péremption des modèles)
% - on a couplé les modèles génératifs avec un base de connaissance entrenue et maitrisée par concepteur et/ou utilisateur
% - Intro XAI
% - modèles opaques
% - besoin de confiance
% - méthode d'explications pour rendre comportement accessible et anticipable
% - methodes qui ouvrent la boite, observent et donnent des explications
% - On souhaite cartographier ces modèles
% - On choisi un outil
% - On découvre les difficultés et problématiques à l'usage
% - On propose une méthodologie pour exploiter cet outil dans l'optique de cartographier la langue de spécialité
% \end{verbatim}
\begin{verbatim} Au sein de la recherche en deep learning, le développement de l'intelligence artificielle connaît une explosion depuis plusieurs années. Des modèles de plus en plus gros et de plus en plus complexes voient le jour et repoussent leurs limites très régulièrement. Une des grande difficultés de ces modèles et de contenir une très grande quantité et diversité d'informations leur permettant non seulement d'aborder une grande diversité de sujet de façon assez poussée mais le tout en générant des contenu de très grande qualité que ce soit sous forme d'images, de bande sonore ou de texte. \\
- Développement de l'architecture et réalisation des expérimentations en python dans 3 formats Pour répondre à ce problème, \cite{lewis_retrieval-augmented_2020} propose de coupler des modèles capables de générer des contenus de grande qualité à des bases de données capable de fournir les connaissances nécessaires à la génération de contenu pertinent à l'aide d'un modèle d'extraction d'information. L'objectif d'une telle architecture, appelée \textbf{architecture RAG} (\textit{Retrieval Augmented Generation}), est de libérer les modèles générateurs de la charge de la connaissance sans sacrifier le format de sortie pour un simple moteur de recherche. De plus, entretenir une base de connaissance sous la forme de texte ou d'embedding est plus aisé et et moins coûteux en calcul que de ré-entraîner régulièrement un modèle à plusieurs milliards de paramètres.
(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}
La croissante complexité des modèles profond engendre aussi un problème de confiance. En effet, les modèles profond suivent des structures élaborées rendant le raisonnement sous-jascent totalement opaque à l'utilisateur, qu'il soit spécialiste de ces machines ou non. Cependant, cette opacité est problématique dans certains cas d'usage. Lorsque l'impact d'une mesure est grande, il est central de pouvoir justifier son intérêt avant de l'appliquer. De façon plus générale, il est inenvisageable de confier à un outil dont on n'est pas capable de justifier la fiabilité des tâches sensibles. C'est pour permettre l'intégration de l'intelligence artificielle au sein de la médecine, de la défense, de la justice, de l'économie ou encore de la géo-politique qu'il est nécessaire de mettre en place des outils capable de rendre de la transparence aux modèles du deep learning et que le domaine de l'\textbf{explicabilité de l'intelligence artificielle} s'est développé.
Au cours de ce stage, nous nous sommes intéressés à l'application d'une méthode d'explicabilité aux modèles extracteurs pour les architectures RAG.
\section{Contexte et problématiques traitées dans ce mémoire}
\subsection{Contexte}
\begin{verbatim}
- Intro RAG :
- les modèles ont des souci pour gérer la connaissance (hallucination, péremption des modèles)
- on a couplé les modèles génératifs avec un base de connaissance entrenue et maitrisée par concepteur et/ou utilisateur
- Intro XAI
- modèles opaques
- besoin de confiance
- méthode d'explications pour rendre coportement accessible et anticipable
- methodes qui ouvrent la boite, observent et donnent des explications
- On souhaite cartographier ces modèles
- On choisi un outil
- On découvre les difficultés et problématiques à l'usage
- On propose une méthodologie pour exploiter cet outil dans l'optique de cartographier la langue de spécialité
\end{verbatim}
\md{à reprendre}
\begin{verbatim}
- Objectif naif : Identifier les composants du modèle impliqués dans l'identification et la gestion
de la langue de spécialité d'un dataset
- Objectif pratique : Identifier et proposer des préconisations d'usage de la librairie MechIR pour
la localisation des composant impliqués dans la langue de spécialité
- Définition de langue de spécialité, réduction de l'objectif à l'identification du vocabulaire
de spécialité
\end{verbatim}
\subsection{Problématiques qui ont guidé ce travail} \subsection{Problématiques qui ont guidé ce travail}
\begin{verbatim} % \begin{verbatim}
TODO % TODO
\end{verbatim} % \end{verbatim}
% \md{à reprendre}
% \begin{verbatim}
% - Objectif naif : Identifier les composants du modèle impliqués dans l'identification et la gestion
% de la langue de spécialité d'un dataset
% - Objectif pratique : Identifier et proposer des préconisations d'usage de la librairie MechIR pour
% la localisation des composant impliqués dans la langue de spécialité
% - Définition de langue de spécialité, réduction de l'objectif à l'identification du vocabulaire
% de spécialité
% \end{verbatim}
% \color{gray}
% L'interprétabilité mécaniste vise à "ouvrir" les modèles et observer le flux des données lors de leur utilisation afin de fournir des explications de leur fonctionnement fondées sur la "mécanique interne". Au cours de ce stage, j'ai souhaité appliquer l'activation patching qui est une méthode d'interprétabilité mécaniste à un modèle d'extraction de documents dans l'objectif de cartographier ses domaines d'expertise.
% \md{à finir}
% \color{black}
Un objectif initial de ce stage était de défricher et construire un sujet de thèse s'intégrant à un projet de l'association \textit{Info Jeunes Centre Val de Loire} \footnote{\url{https://infojeunescvdl.fr/}}. Cette association sensibilise et porte assistance aux jeunes de 15 à 30 ans pour notamment leur faciliter la connaissance et l'accès aux multiples dispositifs d'aide s'adressant à eux. La diversité, le nombre et les multiples critères d'accès à ces dispositifs représente une grosse charge de travail pour maintenir leur maîtrise des dispositifs qui changent souvent. Leur projet vise à concevoir un moteur de recherche de dispositifs permettant, étant donné un profil de jeune et sa ou ses problématiques, de trouver l'ensemble des aides qui lui sont accessible en justifiant la pertinence et donnant les éventuelles modifications administratives nécessaires pour y être éligible. Cet outil s’adresserait aux assistants employés par l'association dans un premier temps et pourrait être étendu sous la forme d'un chatbot afin de la rendre accessible aux jeunes directement.
Le stage visait donc à défricher la bibliographie et proposer un premier prototype de méthode de cartographie des modèles d'extraction d'information à l'aide des outils trouvés. Cette cartographie sera utilisée par la suite comme support pour expliquer le comportement de l'extracteur ainsi que pour améliorer ce dernier.
Au cours de l'exploration bibliographique, les méthodes d'interprétation mécaniste \cite{somvanshi_bridging_2026}, l'activation patching \cite{chen_axiomatic_2024} et l'outil MechIR \cite{parry_mechir_2025} ont été identifiés. L'interprétabilité mécaniste vise à "ouvrir" les modèles et observer le flux des données lors de leur utilisation afin de fournir des explications de leur fonctionnement fondées sur la "mécanique interne". L'activation patching est une méthode d'interprétation mécaniste et MechIR propose une implémentation de cette dernière.
Cependant, la prise en main et l'exploitation de MechIR donnant du fil à retordre, l'objectif du stage à du être revu. Il fallait d'abord concevoir une méthodologie d'usage de l'outil afin de, dans un premier temps, localiser le vocabulaire de spécialité dans des modèles d'extraction. Ces premiers résultats serviront de support pour la construction du sujet de thèse.
\ No newline at end of file
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
\usepackage{multicol} % pour ecrire sur plusieurs colones localement \usepackage{multicol} % pour ecrire sur plusieurs colones localement
\usepackage{xcolor} %metre du texte en couleur \usepackage{xcolor} %metre du texte en couleur
\usepackage{tcolorbox} % boite encart \usepackage{tcolorbox} % boite encart
\usepackage{hyperref} %objets cliquables \usepackage{subcaption} % figures et sous-figures
% ecrire des maths % ecrire des maths
\usepackage{amsmath, amsfonts, amssymb} \usepackage{amsmath, amsfonts, amssymb}
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
\usepackage{hyperref} %objets cliquables
%%%%%%% COMMANDES %%%%%%% COMMANDES
\newcommand{\N}[1]{\mathbb{N}^{#1}} \newcommand{\N}[1]{\mathbb{N}^{#1}}
\newcommand{\append}{\texttt{append }} \newcommand{\append}{\texttt{append }}
...@@ -41,9 +42,41 @@ ...@@ -41,9 +42,41 @@
\date{\today} \date{\today}
\begin{document} \begin{document}
\maketitle \thispagestyle{empty}
\setcounter{page}{0}
\chapter*{Remerciements} \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 \tableofcontents
...@@ -54,7 +87,7 @@ ...@@ -54,7 +87,7 @@
\input{sota/sota.tex} \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} \input{pre-expe/pre-expe.tex}
\chapter{Contribution méthodologique} \chapter{Contribution méthodologique}
...@@ -71,7 +104,9 @@ ...@@ -71,7 +104,9 @@
\bibliographystyle{apalike} \bibliographystyle{apalike}
\appendix \appendix
\chapter{Résultats bruts d'expériences} % \chapter{Résultats bruts d'expériences}
\input{res-expe/res-expe.tex} % \input{res-expe/res-expe.tex}
\input{annexes/annexes.tex}
\end{document} \end{document}
\ No newline at end of file
...@@ -6,25 +6,25 @@ ...@@ -6,25 +6,25 @@
% - La sous partie 3 propose un nouveau type de perturbations % - La sous partie 3 propose un nouveau type de perturbations
% \end{verbatim} % \end{verbatim}
Dans un premier temps, on se concentre sur les perturbations de type \replace. Cela permet d'exploiter la multiplicité des sens (polysémie) de certains mots de spécialité en jouant sur leur sens de spécialité et leur sens commun ou issu d'une aussi spécialité (ex: \textit{grenade} ). \\ Dans un premier temps, on se concentre sur les perturbations de type \replace. Cela permet d'exploiter la multiplicité des sens (polysémie) de certains mots de spécialité en jouant sur leur sens de spécialité et leur sens commun ou issu d'une autre spécialité. \\
Pour construire des perturbations de type \replace qui impactent le modèle et qui soient pertinentes à interpréter, il faut bien choisir le mot à remplacer et le mot remplaçant. On propose aussi un nouveau type de perturbation. Pour construire des perturbations de type \replace qui impactent le modèle et qui soient pertinentes à interpréter, il faut bien choisir le mot à remplacer et le mot remplaçant. On propose aussi un nouveau type de perturbation.
\subsection{Identification des mots cibles} \subsection{Identification des mots cibles}
\begin{verbatim} % \begin{verbatim}
- Le choix des remplaçant est fait par jugement humain % - Le choix des remplaçant est fait par jugement humain
- Le choix des mots à remplacer se fait à l'aide de % - Le choix des mots à remplacer se fait à l'aide de
- fréquence dans l'échantillon de données sélectionné % - fréquence dans l'échantillon de données sélectionné
- IDF % - IDF
- appartenance au vocabulaire de spécialité (jugement humain) % - appartenance au vocabulaire de spécialité (jugement humain)
- présence du mot dans la question étudiée (cas du dataset à 1! question) % - présence du mot dans la question étudiée (cas du dataset à 1! question)
- la bonne couverture des documents est importante (commentaire sur NaN) % - la bonne couverture des documents est importante (commentaire sur NaN)
pour avoir des résultats lisibles % pour avoir des résultats lisibles
- cas du voc de spécialité : ne pas être un stop word / les critères précédents permettent en association avec un doci ou un simple jugement humain d'identifier le vocabulaire de spécialité % - cas du voc de spécialité : ne pas être un stop word / les critères précédents permettent en association avec un doci ou un simple jugement humain d'identifier le vocabulaire de spécialité
\end{verbatim} % \end{verbatim}
Pour qu'une perturbation de type \replace impacte un modèle, elle doit s'appliquer à un très grand nombre voire tous les documents. Lorsqu'un document n'est pas modifié par une perturbation (ie. ne contient pas le mot remplacé), il apportera un score de sensibilité de valeur \texttt{NaN} à cause de la division par zéro induite par l'activation patching. Pour réduire cette difficulté, on peut limiter le nombre de documents utilisés pour appliquer l'activation patching.
Pour qu'une perturbation de type \replace impacte de façon pertinente le modèle, elle doit remplacer des mots bien choisis.
Après avoir écarté les mots vides (stop-words), on propose les critères de sélection des mots suivants pour impacter le modèle et s'appliquer à un grand nombre de documents: On propose les critères suivants pour sélectionner des mots cibles pour impacter le modèle :
\begin{itemize} \begin{itemize}
\item Fréquence du mot dans le dataset \item Fréquence du mot dans le dataset
\item L'IDF du mot dans le dataset \item L'IDF du mot dans le dataset
...@@ -32,71 +32,303 @@ pour avoir des résultats lisibles ...@@ -32,71 +32,303 @@ pour avoir des résultats lisibles
\end{itemize} \end{itemize}
Les indicateurs de fréquence permettent de faciliter l'identification du vocabulaire de spécialité. On peut aussi s'aider d'un dictionnaire. Les indicateurs de fréquence permettent de faciliter l'identification du vocabulaire de spécialité. On peut aussi s'aider d'un dictionnaire. Un intérêt particulier doit être porté aux mots ayant un sens spécifique ou différent dans le contexte de la spécialité visée. Ces mots permettent d'exploiter la polysémie lors de la construction de perturbations.
\begin{table}[!ht]
\centering
\begin{tabular}{|l|l|l|}
\hline
Mot & Fréquence & TF-IDF \\ \hline \hline
\textbf{matériel} & 16 & 0.063 \\ \hline
\textbf{système} & 11 & 0.054 \\ \hline
\textbf{limitation} & 6 & 0.050 \\ \hline
\textbf{drone} & 10 & 0.044 \\ \hline
\textbf{défense} & 10 & 0.044 \\ \hline
prendre & 6 & 0.043 \\ \hline
compte & 5 & 0.040 \\ \hline
action & 8 & 0.040 \\ \hline
\textbf{article} & 9 & 0.040 \\ \hline
ministre & 8 & 0.039 \\ \hline
\textbf{aérien} & 7 & 0.037 \\ \hline
acteur & 6 & 0.034 \\ \hline
guerre & 8 & 0.034 \\ \hline
informationnel & 5 & 0.031 \\ \hline
information & 6 & 0.030 \\ \hline
\end{tabular}
\caption{Mots importants du troisième dataset d'exemple}
\label{tab:StatsDatasetV3}
\end{table}
La table~\ref{tab:StatsDatasetV3} présente, après lemmatisation des documents, les statistiques du vocabulaire présent pour les 15 plus grands TF-IDF. Tous les mots ayant un fort TF-IDF ne sont pas intéressant à remplacer. On se concentre sur les mot appartenant au vocabulaire de la défense et disposant d'au moins un autre sens. On inclus aussi les mots porteurs de sens ou d'information de la question du dataset. En les modifiants, on s'attend à une fort impact sur la pertinence du document. On choisi de se concentrer sur les mots indiqués en gras ainsi que sur le mot \textit{technique} car il est porteur de sens dans le question.
\subsection{Perturbations de type \replace basées sur les synonymes}
% \begin{verbatim}
% - On propose plusieurs candidats au remplacement classé en 4 niveaux ...
% - Rq : il faudrait fonder l'estimation du niveau des perturbations
% niveau 1 : Observer la distinction entre sens et le mot lui-même (on ne s'attend pas à un effet fort
% sauf en cas d'erreur sur le sens du mot remplacé)
% Niveau 2 : Forcer l'erreur d'interprétation du mot en exploitant le polysémie
% Niveau 3 : Remplacement absurde. Il ne laisse pas d'indice sur le mot supposé être présent
% Niveau 4 : Est une expression absurde mais grammaticalement correcte et non liée au mot remplacé
% \end{verbatim}
Une fois le mot à remplacer choisi, on propose dans un premier temps d'exploiter la polysémie (les multiples sens) de ce mot. On distingue deux groupes de candidats : les synonymes (ou mot proche) du mot remplacé partageant le sens du vocabulaire de spécialité et les synonymes (ou mot proche) du mot remplacé ayant un autre sens. Ces groupes de mots remplaçants reflètent deux niveaux de perturbation. Les perturbations de niveau 1 remplacent le mot par un synonyme du mot remplacé ayant le sens du vocabulaire de spécialité ciblé. Par exemple, dans le domaine du droit, remplacer défense par interdiction est une perturbation de niveau 1. Les perturbations de niveau 2 remplacent le mot ciblé par un mot proche mais dans un autre sens que le domaine de spécialité visé. Dans l'exemple précédent, remplacer défense par corne est une perturbation de niveau 2.
Les seconde et troisième colonnes de la table~\ref{tab:perturbations} présentent les mots remplaçants retenus pour les mots ciblés choisis dans l'exemple de la sous-section précédente. Dans le contexte de la défense, \textit{aérien} qualifie des véhicules ou objets se déplaçant en volant. L'expression \textit{de vol} est un bon candidat pour construire une perturbation de niveau 1. Sur le même principe, le secteur de la défense vise à protéger un territoire et/ou une population. Remplacer \textit{défense} par \textit{protection} est une perturbation de niveau 1. À contrario, qualifier un mouvement ou une démarche d'aérien ou de poétique ne correspond pas à l'usage fait dans la défense. \textit{poétique} est un mot remplaçant adapté pour une perturbation de niveau 2. De même, la défense d'un éléphant peut être comparée à une corne de rhinocéros mais le sens donné à \textit{défense} dans ce contexte n'est pas le même. Remplacer \textit{défense} par \textit{corne} est une perturbation de niveau 2. Les distributions des scores de pertinence des documents pour ces quatre perturbations sont disponibles dans la figure~\ref{fig:pertNiv1-2}.
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{images/PerturbationScoreExemple_Synonyme.png}\\
\includegraphics[width=0.8\linewidth]{images/PerturbationScoreExemple_Polysemie.png}
\caption{Distribution des scores de pertinence pour les exemples de perturbation de niveau 1 et 2}
\label{fig:pertNiv1-2}
\end{figure}
Les perturbations de niveau 1 et 2 listés dans la table~\ref{tab:perturbations} n'impactent pas suffisamment le modèle. Cela nous a surpris car les résultats présentés par \cite{parry_mechir_2025} exploitaient aussi la polysémie et donnaient des perturbations plus impactantes. En prenant un peu de recul, les grand modèles de langue semblent pouvoir manipuler différents sens pour un mot. Cela était moins le cas pour les modèles peu profonds tels que Word2Vec qui tendent à regrouper tous les sens ou les écraser au profit du plus présent. Il est possible que les perturbations exploitant la polysémie (perturbations de niveau 2) laissent suffisamment d'indices pour que les grand modèles gèrent cette difficulté. Cela pourrai expliquer le faible impact des perturbations de niveau 2 sur mE5.
%Les perturbations de niveau 1 et 2 n'ont pas nécessairement un impact suffisant sur le modèle. Les grand modèles de langue basés sur l'apprentissage profond sont réputés pour gérer les difficultés liées à la polysémie des mots.
%\md{Pourquoi on a dit ça en réunion il y a 3 mois? Je n'ai aucune idée de référence pour attester de ça.}
%Il n'est donc pas si étonnant que les perturbations de niveau 1 ou 2 n'impactent que peu mE5.
%\alh{plus précisément nous avions dit que les embedding contextuels permettaient de mieux sélectionner le sens d'un mot en contexte dans le cas de la polysémie, par exemples les embeddings non profonds type word2vec n'ont qu'une seule entrée pour avocat et tous les sens sont mergés, tandis que Bert gère parfaitement la polysémie. A partir de là, on s'est dit que mE5 était tolérant à l'inexactitude si dans le cadre de la polysémie il y avait une relation sémantique. Par exemple corne pour défense, on suppose qu'une relation sémantique même lointaine laisse le système une possibilité de gérer mais il est vrai qu'à ben y réfléchir ce n'est pas si évident. on avait bon espoir au départ que cela impacte plus puisqu'on tranchait avec le sens initial mais on a été déçue : ), probablement parce que l'éloignement dans l'espace sémantique n'est pas si grand...? En vrai on n'en sait rien.}
\subsection{Perturbations de type \replace plus agressives}
On propose deux niveaux de perturbation supplémentaires effectuant des replacements plus prononcés. Les perturbations de niveau 3 remplacent le mot ciblé par un mot n'ayant aucun lien avec les différents sens du mot ciblé.
% \color{teal}
% Ici 2 sources : Ce que le CNRTL nomme \href{https://www.cnrtl.fr/lexicographie/incompatibilit%C3%A9}{"incompatibilité"}
% suivant \cite{greimas_semiotique_1979} est :
% \begin{quote}
% "Impossibilité, pour deux éléments sémiotiques quelconques, de contracter une relation".
% \end{quote}
% \cite{majewska_semantic_2021} quant à eux ont cherché à faire construire physiquement une esapece sémantique par des humains. Il arrivent à une expression de faible "\textit{relatedness}" qui reprend grossièrement l'idée d'incompatibilité exprimée plus haut. Donc on a 1. synonyme, 2. synonyme d'un autre sens dans la polysémie 3. terme "incompatible" "unrelated" 4. combinaison de 2 termes incompatibles entre eux et incompatible avec la cible. Une chose qui pourrait marcher pour asseoir cette méthodo c'est de calculer la distance avec un Word2Vec tout bête, une fois entrainé sur votre corpus :
% mon code pour calculer cela sur un autre corpus juste après(rien d'interessant, juste que pour le faire tourner j'ai tout ramener à des des mminuscules, sans stopword, etc. puis j'ai créer le model, puis utiliser wv.similarity, si j'avais eu le copru sje l'aurais fait vite fait). Sinon on pourrait aussi calculer le plus court chemin entre source et cible dans des ressource du type JeuxdeMots (\href{https://www.jeuxdemots.org/jdm-about.php}{https://www.jeuxdemots.org/jdm-about.php}, mais le dump est très lourd, c'est casse pied à faire.
% \begin{verbatim}
% import pandas as pd
% from gensim.models import Word2Vec
% df = pd.read_csv("https://www.data.gouv.fr/api/1/datasets/r/3a6d6fe3-8548-43ed-ad09-72052771447c")
% df["avis_word_token"] = df["Avis"].map(lambda x : word_tokenize(x.replace("'", " ")))
% df["avis_word_token"] = df["avis_word_token"].map(lambda list_word: [word.lower() for word in list_word if word.isalpha()])
% custom_stopwords = ["a", "dont", "madame", "monsieur", "peut", "dès", "lors", "être", "ce",
% "ces", "cet", "cette", "comme", "ainsi", "si"]
% stopwords_fr = stopwords.words('french') + custom_stopwords
% df["avis_word_token"] = df["avis_word_token"].map(lambda list_word: [word for word in list_word if word not in stopwords_fr])
% sentences = df["avis_word_token"].tolist()
% model = Word2Vec(sentences, window=5, min_count=5, workers=4)
% model.wv.similarity("défense","corne")
% \end{verbatim}
% \color{black}
On conserve juste la même nature entre le mot remplacé et le mot remplaçant (les noms sont remplacés par des noms, les adjectifs par des adjectifs,...). Ces perturbations ne donnent aucune piste sur le mot initialement présent ce qui rend la compréhension plus difficile. Les perturbations de niveau 4 sont encore plus agressives. Le mot est remplacé par un groupe de mot absurde (ex: luge pontificale). Ces perturbations masquent les mots cibles qui sont identifiés comme important par une groupe de mot qui n'est que du bruit.
Les quatrième et cinquième colonnes de la table~\ref{tab:perturbations}, donnent les perturbations de niveau 3 et 4 retenues pour les mots à remplacer choisis. Les mots remplaçants choisi pour les perturbation de niveau 3 restent de même nature (\textit{épicurien} est un adjectif comme \textit{aérien},...) mais sont sémantiquement éloignés du mot remplacé. Les groupes nominaux remplaçant pour les perturbations de niveau 4 sont bien des concepts qui ne sont pas réels. Les distributions des pertinences sont visualisés dans la figure~\ref{fig:pertNiv3-4}. On remarque d'ailleurs que les perturbations choisies n'impactent pas toujours le modèle autant qu'attendu.
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{images/PerturbationScoreExemple_Elephants.png}\\
\includegraphics[width=0.8\linewidth]{images/PerturbationScoreExemple_ElephantsRoses.png}
\caption{Distribution des scores de pertinence pour les exemples de perturbation de niveau 3 et 4}
\label{fig:pertNiv3-4}
\end{figure}
\subsection{Perturbation replace par niveau} La table~\ref{tab:niveauxPerturbation} récapitule les 4 niveaux de perturbation et les phénomènes observés.
\begin{verbatim}
- On propose plusieurs candidats au remplacement classé en 4 niveaux ...
- Rq : il faudrait fonder l'estimation du niveau des perturbations
\end{verbatim}
\begin{table}
\centering
\begin{tabular}{|c|p{0.3\linewidth}|p{0.3\linewidth}|p{0.3\linewidth}|}
\hline
Niveau & Caractéristiques du mot remplaçant & Résultat attendu & Caractéristique de nœud ou composant visé dans le modèle \\
\hline
\hline
1 & synonyme (ou mot proche) ayant le sens du vocabulaire de spécialité visé & Faible perturbation & Détection et prise en compte du mot ciblé spécifiquement \\
\hline
2 & synonyme (ou mot proche) ayant un sens différent de celui lié au vocabulaire de spécialité visé & Perturbation marquée. Quelques nœuds sensibles lors de l'application de l'activation patching & Détection et prise en compte du sens du vocabulaire de spécialité \\
\hline
3 & mot sans lien avec aucun sens du mot cible & Perturbation marquée. Quelques nœuds sensibles lors de l'application de l'activation patching & Prise en compte du sens de spécialité du mot ciblé. \\
\hline
4 & groupe de mot absurde sans lien avec la mot cible & Perturbation très marquée. Quelques nœuds sensibles lors de l'application de l'activation patching & Prise en compte du sens de spécialité du mot ciblé. \\
\hline
\end{tabular}
\subsection{Perturbations de type full\_replace} \caption{Récapitulatif des niveaux de perturbation proposé}
\begin{verbatim} \label{tab:niveauxPerturbation}
- pour augmenter le nombre de document perturbé et limiter l'impact d'un mot seulement dans la \end{table}
cartographie (avoir une apperçu plus global), on propose un nouveau type de perturbation : full_replace
- on étend les niveaux à ce nouveau type de perturbations
\end{verbatim}
\section{Estimation de la pertinence d'une perturbation}
\begin{verbatim}
SI PAS DÉJÀ PRÉSENTÉ DANS PARTIE DE L'ÉTAT DE L'ART SUR MECHIR
- On visualise des scores de similarité entre question et document
- graphique d'exemple + texte d'accompagnement à la lecture
- Un perturbation peut être considérée comme pertinente lorsqu'elle modifie significativement
(jugement humain) la distribution des cores pour l'échantillon du dataset étudié
- on propose d'autres visualisations et confrontation de la distribution des scores entre perturbation : \begin{table}
- observation de la distribution des scores pour les documents pertinents et non-pertinents (sont-ils très séparés initialement?, Quel impact de la perturbation sur la distribution des documents pertinents/ non-pertinents?, La tendance est-elle systématique pour toutes les perturbations de même type? de même niveau?, pour un même mot cible?) \centering
- observation de la distribution des scores d'un niveau de perturbation à l'autre pour un mot cible (quel comportement d'un niveau à l'autre? comportement commun à plusieurs mots?) \begin{tabular}{|l||l|l|l|l|}
\hline
Mot remplacé & Niveau 1 & Niveau 2 & Niveau 3 & Niveau 4 \\ \hline \hline
aérien & de vol & poétique & épicurien & acide tracté \\ \hline
article & sujet & déterminant & table & luge pontificale \\ \hline
défense & protection & corne & fromage & poire retournée \\ \hline
drone & vecteur & bourdon & gazon & ver de verre \\ \hline
limitation & contrainte & bornage & animation & plastique anarchique \\ \hline
matériel & outil & concret & post-it & porte sans poivre \\ \hline
système & dispositif & ensemble & panneau & esperluette en vent \\ \hline
technique & spécialisé & difficile & magique & feuille entubée \\ \hline
\end{tabular}
\caption{Perturbations proposées pour les mots à remplacer sélectionnés pour chaque niveau évoqué}
\label{tab:perturbations}
\end{table}
\subsection{Perturbations de type \fullreplace}
% \begin{verbatim}
% - pour augmenter le nombre de document perturbé et limiter l'impact d'un mot seulement dans la
% cartographie (avoir un aperçu plus global), on propose un nouveau type de perturbation : full_replace
% - on étend les niveaux à ce nouveau type de perturbations
% \end{verbatim}
Une autre piste explorée pour augmenter l'impact des perturbations basées sur les synonymes est de cumuler plusieurs remplacements en même temps. On propose le nouveau type de perturbation \fullreplace qui applique une liste de perturbations de type \replace en une fois sur le document en guise de perturbation. On étend les quatre niveaux de perturbation aux perturbations de type \fullreplace en considérant le niveau des perturbations \replace qu'elle inclus. \\
Au delà de l'augmentation de l'impact de la perturbation sur le modèle, les perturbation \fullreplace permettent de s'affranchir du bruit introduit par chaque mot individuellement et de se concentrer sur un ensemble de composants du modèle sensible au vocabulaire de spécialité de façon plus globale.
\end{verbatim} \begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{images/PerturbationScoreExemple_FullReplace.png}
\caption{Distribution des scores de pertinence pour les exemples de perturbation de type \fullreplace de niveau 1 et 2}
\label{fig:pertFRNiv1-2}
\end{figure}
La Figure~\ref{fig:pertFRNiv1-2} représente les distributions des scores de pertinence pour deux perturbations de type \fullreplace. La première perturbation applique les 8 perturbation \replace de niveau 1 listées dans la table~\ref{tab:perturbations}. Par exemple, l'extrait
\begin{quote}
Certaines limitations sont plus particulièrement liées aux caractéristiques du vecteur aérien et n’affectent donc pas toutes les catégories de drones de la même manière.
\end{quote}
devient
\begin{quote}
Certaines contraintes sont plus particulièrement liées aux caractéristiques du vecteur de vol et n’affectent donc pas toutes les catégories de vecteurs de la même manière.
\end{quote}
lorsqu'on applique cette perturbation. Les mots \textit{limitations}, \textit{aérien} et \textit{drones} ont tous les trois été remplacés. On peut considérer que cette perturbation est de niveau 1 car tous les remplacements effectués sont de niveau 1. La seconde perturbation regroupe les perturbation \replace de niveau 2 proposées dans la table~\ref{tab:perturbations}. C'est donc une perturbation de niveau 2. On constate que les perturbations de type \fullreplace impactent plus fortement la distribution des scores de pertinence que les perturbation \replace.
Lorsqu'on y regarde de plus près, une autre force des perturbations \fullreplace est leur capacité à couvrir plus facilement l'ensemble du dataset. Pour qu'un perturbation impacte le modèle, elle doit modifier les documents. Si une perturbation \replace modifie qu'une partie des documents alors elle aura moins d'impact sur le modèle Les documents non modifiés auront un score ramené à zéro (la division par zéro induit un NaN qui est interprété comme un zéro dans le calcul de la moyenne des scores de sensibilité pour tout le dataset). Les perturbations \fullreplace touchent plus de document car elles modifient l'union des documents modifiés par chacune d'entre elles.
\section{Compléments pour l'estimation de la pertinence d'une perturbation}
% \begin{verbatim}
% SI PAS DÉJÀ PRÉSENTÉ DANS PARTIE DE L'ÉTAT DE L'ART SUR MECHIR
% - On visualise des scores de similarité entre question et document
% - graphique d'exemple + texte d'accompagnement à la lecture
% - Un perturbation peut être considérée comme pertinente lorsqu'elle modifie significativement
% (jugement humain) la distribution des cores pour l'échantillon du dataset étudié
% - on propose d'autres visualisations et confrontation de la distribution des scores entre perturbation :
% - observation de la distribution des scores pour les documents pertinents et non-pertinents (sont-ils très séparés initialement?, Quel impact de la perturbation sur la distribution des documents pertinents/ non-pertinents?, La tendance est-elle systématique pour toutes les perturbations de même type? de même niveau?, pour un même mot cible?)
% - observation de la distribution des scores d'un niveau de perturbation à l'autre pour un mot cible (quel comportement d'un niveau à l'autre? comportement commun à plusieurs mots?)
% \end{verbatim}
On propose de compléter l'estimation de la pertinence d'une perturbation proposée par \cite{parry_mechir_2025} à l'aide de deux autres visualisations qui mettent les perturbations en perspective vis a vis des données et entre elles.
La première visualisation complémentaire est la visualisation des scores de pertinence en séparant les documents pertinents et non pertinents vis a vis de la question. Cela permet de distinguer les effets de la perturbation sur chaque groupe de documents. On peut notamment d'identifier un impacts plus important des perturbations sur l'un des deux groupes (si le mot remplacé est plus présent dans les documents pertinents par exemple). Cette information pourra donner un éclairage différent sur la perturbation ou les nœuds identifiés comme sensibles au patching.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{images/PerturbationScoreExemple_PosNeg.png}
\caption{Distribution des scores de perturbation pour les documents positifs/négatifs (non-)perturbés pour trois perturbations}
\label{fig:DistribScoresDocsPosNegSepares}
\end{figure}
Par exemple, dans la figure~\ref{fig:DistribScoresDocsPosNegSepares}, on s'intéresse au changement de distribution des scores pour les perturbations "remplacer \textit{aérien} par \textit{poétique}", "remplacer \textit{système} par \textit{ensemble}" et "remplacer tous les mots cible choisis par leur mot remplaçant de niveau 2" (voir la table~\ref{tab:perturbations}). On constate que les documents non pertinents vis-a-vis de la question ne changent pas de score de pertinence lorsqu'on applique la perturbation \textit{remplacer aérien par poétique} au dataset. Cela s'explique par le fait qu'aucun document non-pertinent ne contient le mot \textit{aérien}. On note que ce phénomène est assez répandu à cause de la méthode de construction du dataset. En effet, sélectionner des extraits issus de différents PDF portant sur différents sujets en lien avec la défense force les extraits à contenir un vocabulaire spécifique au sujet du PDF qui n'est pas nécessairement le même pour tous les PDFs utilisés. Dans notre cas, le seul mot remplacé ne subissant pas ce phénomène est \textit{système}.
La seconde visualisation complémentaire est la visualisation des distributions des scores à travers les différentes perturbations d'un même mot et à travers les différents niveaux de perturbation du mot. Cela permet de mettre en perspective les différentes perturbations et éventuellement de sélectionner la plus impactante au sein d'un même niveau.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{images/PerturbationScoreExemple_ParNiveaux.png}
\caption{Distribution des scores de pertinence des documents pour les mots remplacés \textit{aérien} et \textit{drone}. La distribution des scores des documents non-perturbés et pour les 4 niveaux de perturbation appliqués sont regroupés dans le même graphique pour chaque mot}
\label{fig:DistribScoresPerturbationParNiveaux}
\end{figure}
La visualisation des distributions des scores de pertinence des documents pour chaque perturbations appliquées à un même mot comme dans la figure~\ref{fig:DistribScoresPerturbationParNiveaux} permet de constater l'évolution de la distribution en fonction des niveaux de perturbation appliqués. On constate qu'elle n'est pas toujours très marquée.
\section{Interprétation des résultats de l'Activation Patching} \section{Interprétation des résultats de l'Activation Patching}
\begin{verbatim}
Un fois la ou les perturbations choisies, on peut appliquer l'activation patching à l'aide de l'outil MechIR. On propose dans cette partie des visualisation des résultats supplémentaires pour faciliter et/ou éclairer l'analyse. Un fois la ou les perturbations choisies, on peut appliquer l'activation patching à l'aide de l'outil MechIR. On propose dans cette partie des visualisations des résultats supplémentaires pour faciliter et/ou éclairer l'analyse et la cartographie du modèle.
\end{verbatim}
\subsection{Visualisation des résultats proposée par MechIR} \subsection{Complément à la visualisation de la sensibilité du modèle à la perturbation}
\begin{verbatim} %\md{TODO : revoir le découpage de la partie une fois intégralement rédigée}
SI PAS DÉJÀ FAITE DANS SOTA sur MechIR
- graphique + accompagnement à la lecture (on obtient une sensibilité de chaque \paragraph{Exploitation de l'écart-type} Pour rappel, \cite{parry_mechir_2025} propose de visualiser la moyenne des sensibilités du nœud à la perturbation appliquée sur chaque document. On propose de compléter le visualisation des moyennes par celle des écarts-types. Les moyennes de sensibilité peuvent être élevées (en valeur absolue) à cause de rares documents qui modifiés impactent fortement le modèle. À contrario, certaines moyennes de sensibilité pourraient être proche de zéro à cause d'un effet de compensation entre les scores pour différents documents. Les écarts-types peuvent aider à distinguer les nœuds sensibles de façon homogène (à travers les documents) à une perturbation des nœuds subissant de façon plus importante du bruit.
noeuds pour chaque paire (Question, document), on visualise la moyenne)
\end{verbatim} \begin{figure}
\centering
\subsection{Autres visualisations de la sensibilité du modèle à la perturbation} \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_old-mean_aerien-poetique.png}
\md{à placer : confronter les matrices d'une perturbation à l'autre} \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_old-std_aerien-poetique.png}
\begin{verbatim} \caption{Matrice de sensibilité moyenne et leurs écarts-types des nœuds pour la perturation "remplacer \textit{aérien} par \textit{poétique}"}
\label{fig:MatriceSensibiliteOldAerienPoetique}
- étant donné la construction de ces valeurs, on s'intéresse aussi aux écarts-types \end{figure}
- pour faciliter la visualisation et la comparaison en cas de sensibilité variable
d'une perturbation à l'autre on propose de rescaler les poids des matrices La figure~\ref{fig:MatriceSensibiliteOldAerienPoetique} représente la sensibilité moyenne de chaque nœud de mE5 à la perturbation "remplacer \textit{aérien} par \textit{poétique}" à gauche et l'écart-type des sensibilités pour chaque documents pour les nœuds. On identifie bien les nœuds (8,1), (11,3), (9,4), (11,6) et (11,11) comme sensibles à l'aide de la matrice de sensibilités moyennes. Le nœud (11,2) est plus facilement identifiable à l'aide de la matrice des écarts-types de sensibilité. Cette matrice permet aussi de confirmer les premiers nœuds identifiés.
\end{verbatim}
\paragraph{Adaptation de la visualisation des résultats de l'activation patching} D'une perturbation à l'autre, les nœuds ont des sensibilité moyennes très variables. Dans certains cas, les sensibilités ont un très faible écart-type (à travers la matrice) et dans d'autres, plusieurs nœuds saturent l'échelle de couleur proposée par MechIR. De la même façon, certains écarts-types explosent. De plus, par définition, un écart-type est positif. La moitié de l'échelle n'est alors par utilisée. \\
\subsection{Critère d'identification des noeuds sensibles} Pour faciliter la visualisation, on propose de compléter la diversification des matrices de valeurs par une diversification des échelles de couleur.
\begin{verbatim} Pour maintenir un accès aux valeurs exactes, on propose une échelle adaptative allant de -50 à 50 dans le cas de matrices de sensibilité ayant des nœuds avec un score de sensibilité moyen supérieur à 20. Pour les autres cas, on maintient l'échelle -1;1. On propose de conserver la même échelle de couleur mais de l'inverser afin que les valeurs positives soient en rouge et les valeurs négatives en bleu.
- L'identification des noeuds sensibles doit reposer sur un critère commun. On propose
un critère de sensibilité ... En complément des matrices contenant les valeurs réelles, on propose une visualisation des valeurs ramenées dans l'intervalle -1;1 en maintenant zéro à sa valeur (division de toutes les valeurs par la sensibilité maximale en valeur absolue). On conserve la même échelle de couleur. Une telle visualisation permet de mettre en perspective les matrices d'une perturbation à l'autre : on peut comparer les nœuds ayant les sensibilités moyennes les plus élevées. D'autre part, cette approche permet d'identifier les nœuds significativement plus sensibles car ils seront plus foncés que les autres (valeurs proches de 1 en valeur absolue) et "se détachent" du reste des nœuds. Pour le cas des écarts-types, on propose les mêmes échelles mais en tronquant à 0 et avec la gamme de couleurs Noir-Violet-Orange-Jaune.
\end{verbatim}
\begin{figure}
\subsection{Matrice des noeuds sensibles} \centering
\begin{verbatim} \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_new-mean_aerien-poetique.png}
- Pour faciliter le besoin de mise en perspective des matrice de sensibilité d'un perturbation à l'autres ... \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_new-std_aerien-poetique.png}
- Visualisation des noeuds sensibles **commun à plusieurs perturbation** (matrice des noeuds sensibles) \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_resc-mean_aerien-poetique.png}
-> croiser les différentes caractéristiques (mot remplacé, type, niveau) \includegraphics[width=0.48\textwidth]{images/MatriceSensibilite_resc-std_aerien-poetique.png}
-> critique des noeuds sensibles de la dernière couche \caption{Matrice de sensibilité moyenne et leurs écarts-types des nœuds pour la perturbation "remplacer \textit{aérien} par \textit{poétique}" avec la nouvelle visualisation (en haut) et avec le rééchelonnage (en bas)}
\end{verbatim} \label{fig:MatriceSensibiliteNewAerienPoetique}
\end{figure}
La figure~\ref{fig:MatriceSensibiliteNewAerienPoetique} affiche les mêmes données que la figure~\ref{fig:MatriceSensibiliteOldAerienPoetique} en appliquant la nouvelle échelle de couleurs et les nouvelles bornes et en appliquant le rééchelonnage. Le rééchelonnage permet de faciliter l'identification des nœuds en exploitant l'intégralité de l'échelle de couleur. On repère notamment le nœud (7,5) pour lequel l'identification comme nœud sensible était plus incertaine avec la visualisation précédente.
%\md{à placer : confronter les matrices d'une perturbation à l'autre}
% \begin{verbatim}
% - étant donné la construction de ces valeurs, on s'intéresse aussi aux écarts-types
% - pour faciliter la visualisation et la comparaison en cas de sensibilité variable
% d'une perturbation à l'autre on propose de rescaler les poids des matrices
% \end{verbatim}
\subsection{Critère d'identification des nœuds sensibles}
% \begin{verbatim}
% - L'identification des nœuds sensibles doit reposer sur un critère commun. On propose
% un critère de sensibilité ...
% \end{verbatim}
L'identification des nœuds sensibles et un étape importante pour la cartographie d'un modèle. Distinguer les nœuds sensibles des nœuds qui ne le sont pas doit reposer sur un critère commun à toutes le perturbations. De plus, un critère automatisable voire quantitatif permet une détection de ces nœuds plus facile et rapide. On propose un critère de sensibilité qui prend en compte les différentes données visualisées précédemment. On considère un nœud comme sensible si le score de sensibilité moyenne est supérieur à 0.1 en valeur absolue et le score de sensibilité moyenne normalisé est supérieur à 0.5 en valeur absolue. Ainsi, seul les nœuds impactés significativement sont considérés dans le cas où ils "se détachent" du reste des nœuds. En complément du double critère sur la sensibilité moyenne, on ajoute second un double critère sur l'écart-type des sensibilité du nœud. Un nœud peut être sensible si son écart-type est supérieur à 0.1 et que son écart-type normalisé est supérieur à 0.5. Ainsi, les nœuds ayant une moyenne proche de zéro à cause d'un effet d'équilibrage entre les documents est tout de même considéré comme un nœud sensible à la perturbation appliquée aux documents. Pour récapituler, un nœud est considéré comme sensible si il vérifie la condition suivante:
$$((\mid mean \mid > 0.1) \wedge (\mid resc\_mean \mid > 0.5) ) \vee ( (std > 0.1) \wedge (resc\_std > 0.5))$$
Il faut tout de même noter que le choix des bornes 0.5 et 0.1 sont intéressantes pour le dataset utilisé au cours du stage mais pourraient être à ajuster lors de l'utilisation d'autres datasets.
\subsection{Matrice des nœuds sensibles}
% \begin{verbatim}
% - Pour faciliter le besoin de mise en perspective des matrice de sensibilité d'un perturbation à l'autres ...
% - Visualisation des nœuds sensibles **commun à plusieurs perturbation** (matrice des nœuds sensibles)
% -> croiser les différentes caractéristiques (mot remplacé, type, niveau)
% -> critique des nœuds sensibles de la dernière couche
% \end{verbatim}
Pour considérer qu'un nœud traite une notion de langage ou de raisonnement (identifie le vocabulaire de spécialité par exemple), il doit être sensible à plusieurs des perturbations visant cette compétence. On peut aussi s'intéresser à la persistance de cette sensibilité à travers différents datasets similaires pour une même perturbation ou à travers différentes perturbations similaires pour un même dataset. Pour faciliter cette analyse de la persistance de la sensibilité d'un nœud, on propose de visualiser la matrice des nœuds sensibles. Pour chaque nœud, repéré par ses coordonnées, elle indique le nombre de perturbations pour lesquelles le nœud est considéré comme sensible au regard du critère présenté dans la sous-section précédente.
\begin{figure}
\centering
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{images/NoeudsSensiblesNiv2.png}
\caption{Nombre de perturbations de niveau 2 impactant les nœuds du modèle}
\end{subfigure}%
~
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{images/NoeudsSensiblesAerien.png}
\caption{Nombre de perturbations appliquées à \textit{aérien} impactant les nœuds du modèle}
\end{subfigure}
\caption{Matrices de nœuds sensibles}
\label{fig:MatNoeudsSensibles}
\end{figure}
La figure~\ref{fig:MatNoeudsSensibles} illustre deux usages des matrices de nœuds sensibles. La première compte le nombre de fois qu'un nœud est sensible aux perturbations décrites par la troisième colonne de la table~\ref{tab:perturbations}. On constate qu'aucune tendance ne se dégage : les nœuds les plus sensibles ne le sont que pour la moitié des perturbations. La seconde matrice s'intéresse à la sensibilité des nœuds pour une ensemble de perturbations portant sur le même mot. On s'intéresse aux quatre perturbations de quatre niveau différents appliquées au mot \textit{aérien}. Le nœud (11,6) est sensible aux quatre perturbations et les nœuds (11,3), (11,7) et (10,9) sont sensible à trois des quatre perturbations étudiées.
\ No newline at end of file
\color{cyan} % \color{cyan}
\begin{verbatim} % \begin{verbatim}
REPRISE DU PLAN DU CHAPITRE DU 21/08 % REPRISE DU PLAN DU CHAPITRE DU 21/08
Objectifs du stage et préliminaires % Objectifs du stage et préliminaires
- Hypothèses et objectifs du stage % - Hypothèses et objectifs du stage
- Challenge RAG@EvalLLM % - Challenge RAG@EvalLLM
Reprendre rapidement pour faire écho aux objectifs de façon plus claire % Reprendre rapidement pour faire écho aux objectifs de façon plus claire
- Construction du dataset (ou simplement Dataset ?) % - Construction du dataset (ou simplement Dataset ?)
- Adaptation du modèle RAG4HistoricalNewspapers (ou simplement _Système_ ou _Modèle_ ?) % - Adaptation du modèle RAG4HistoricalNewspapers (ou simplement _Système_ ou _Modèle_ ?)
\end{verbatim} % \end{verbatim}
\color{black} % \color{black}
\section{Objectifs du stage}
% \color{gray}
% \subsection{Localisation de la langue de spécialité dans un modèle}
% \begin{verbatim}
% - Définition de langue de spécialité
% - Formalisation de l'objectif
% \end{verbatim}
% \subsection{Intégration des travaux dans l'explicabilité post-hoc des modèles d'extraction d'information}
% \begin{verbatim}
% - Cartographie de modèle d'extraction d'information
% - Analyse des éléments identifiés par le modèle lors du passage d'un document
% \end{verbatim}
% \color{black}
\paragraph{La langue de spécialité} correspond à l'ensemble du vocabulaire et des tournures spécifiques à un domaine d'expertise \cite{cabre_terminologie_1998}. Si la façon de s'exprimer ne change que de façon limité, certains mots ont parfois un sens différent (exemple: \textit{nœuds} en deep learning) et certaines façons de s'exprimer sont inhabituelles en dehors du domaine (ex: codes de rédaction d'une preuve mathématique). Chaque domaine dispose de sa langue de spécialité qui est incluse dans la langue générale et en intersection avec la langue commune.
\paragraph{Hypothèses} Considérant que l'activation patching permet de localiser les composants et nœuds d'un modèle sensibles à une perturbation, on s'intéresse aux hypothèses suivantes:
\begin{description}
\item[H1 : ] Dans les modèles de langue, une langue de spécialité repose sur certains composants du modèle.
\item[H2 : ] Ces composants peuvent être cartographiés à l'aide de l'activation patching.
\end{description}
\paragraph{Objectifs} Ce stage vise à appliquer l'activation patching à la localisation du vocabulaire spécifique de la langue de spécialité (vocabulaire de spécialité) du domaine de la défense. L'objectif est de proposer une méthodologie, un cadre de mise en pratique de l'activation patching pour la localisation du vocabulaire de spécialité à l'aide de l'outil MechIR ainsi qu'une application au cas de la langue de spécialité de la défense sur le modèle mE5-small.
\paragraph{Intégration dans l'explicabilité post-hoc des modèles d'extraction d'information et des systèmes RAG} La possibilité de localiser le vocabulaire de spécialité ouvre la voie à la localisation de concepts et/ou domaines précis dans un modèle de langue. Il devient alors possible de cartographier ces modèles. Ces cartographies pourraient à terme être utilisées pour expliquer le raisonnement, les éléments pris en compte dans l'entrée et dans les documents extraits au sein d'un système RAG ou RA-LLM. %\md{Est-il pertinent d'évoquer le fond du projet de IJ-CVL?}\alh{en l'état le texte se tient, si à la fin vous avez du temps effectivement ce peut être interessant mais pas du tout une priorité}
\section{Challenge RAG@EvalLLM} \section{Challenge RAG@EvalLLM}
\begin{verbatim} % \begin{verbatim}
- Le sujet de l'extraction d'informatoin et lu RAG est d'actualité % - Le sujet de l'extraction d'informatoin et lu RAG est d'actualité
- Présentation du Challenge RAG@EvalLLM % - Présentation du Challenge RAG@EvalLLM
- La tâche % - La tâche
- Identification des documents pertinents pour une question (phrase % - Identification des documents pertinents pour une question (phrase
parfois complexe ou suite de mots clés) % parfois complexe ou suite de mots clés)
- questions fournies au dernier moment % - questions fournies au dernier moment
- pas de gold % - pas de gold
- Les données % - Les données
- pdf à traiter sans structure normée du contenu % - pdf à traiter sans structure normée du contenu
- majoritairement en français sauf quelques uns en anglais % - majoritairement en français sauf quelques uns en anglais
- peuvent contenir des images % - peuvent contenir des images
\end{verbatim} % \end{verbatim}
Le sujet de l'extraction d'information et du RAG est d'actualité au sein de la recherche en machine learning à l'international. Son application au français et son évaluation anime les recherches en France. À l'occasion de l'atelier EvalLLM2026 qui portait sur l'évaluation des modèles génératifs et du RAG, ont été organisé deux challenges. L'un d'entre eux portait sur le RAG. La première tâche était une tâche d'extraction d'information et la seconde tâche portait sur l'attribution de sources (à partir d'une question, d'extraits de documents et d'une réponse, associer à chaque fragment de la réponse un document d'où l'information est issue). Ce challenge mettant à disposition une grande quantité de documents en français spécifiques à un domaine (la défense) et un protocole d'évaluation des résultats, je me suis inscrite à la première tâche pour donner un cadre à la construction du modèle et du protocole d'amélioration. Le sujet de l'extraction d'information et du RAG est d'actualité au sein de la recherche en machine learning à l'international. Son application au français et son évaluation anime les recherches en France. À l'occasion de l'atelier EvalLLM2026 qui portait sur l'évaluation des modèles génératifs et du RAG, ont été organisé deux challenges. L'un d'entre eux portait sur le RAG. La première tâche était une tâche d'extraction d'information et la seconde tâche portait sur l'attribution de sources (à partir d'une question, d'extraits de documents et d'une réponse, associer à chaque fragment de la réponse un document d'où l'information est issue). Ce challenge mettant à disposition une grande quantité de documents en français spécifiques à un domaine (la défense) et un protocole d'évaluation des résultats, je me suis inscrite à la première tâche pour donner un cadre à la construction du modèle et du protocole d'amélioration.
La tâche d'extraction d'information demandait de répondre à des requêtes sous la forme d'une ou plusieurs questions complexes ou d'une suite de mots clés sans séparateur à l'aide d'une base de documents et fournir les pages des documents utilisés pour répondre ainsi que leur rang de pertinence. La base de documents contenait en grande partie des PDF contenant parfois des images. Les documents avaient diverses origines, ne suivaient pas structure commune particulière et étaient en majorité en français (quelques documents en anglais ou disponibles dans les deux langues). La tâche d'extraction d'information demandait de répondre à des requêtes sous la forme d'une ou plusieurs questions complexes ou d'une suite de mots clés sans séparateur à l'aide d'une base de documents et fournir les pages des documents utilisés pour répondre ainsi que leur rang de pertinence. La base de documents contenait en grande partie des PDF contenant parfois des images. Les documents avaient diverses origines, ne suivaient pas structure commune particulière et étaient en majorité en français (quelques documents étaient en anglais ou disponibles dans les deux langues).
Le format des entrées et des sorties était fourni à l'avance.Les documents étaient accessibles dès l'inscription mais les questions n'étaient communiquées que durant les trois jours de test (à l'exception des cinq questions présentes dans l'exemple de format des données). Aucun dataset étiqueté n'était fourni. Le format des entrées et des sorties était fourni à l'avance. Les documents étaient accessibles dès l'inscription mais les questions n'étaient communiquées que durant les trois jours de test (à l'exception des cinq questions présentes dans l'exemple de format des données). Aucun dataset étiqueté n'était fourni.
Je souhaitais présenter une version améliorée du modèle mE5 à l'aide de l'activation patching afin de mettre enjeux les hypothèses présentées précédemment. Malheureusement, la méthodologie n'étant pas au point, je n'ai pas eu le temps d'aller jusqu'au bout du challenge et de cet objectif. %\alh{dire alors que le stratégie a été de tirer profit de ce dataset pour pouvoir mettre en jeu nos hypothèses et dans un objectif qui ne sera pas atteint de mettre a jour mE5 guidé par le patching. Dire aussi que nous n'avons pas eu le temps de réaliser tout ceci puisque la méthodologie a donné du fil a retordre au vu des résultats obtenus}
\section{Construction d'un dataset adapté} \section{Construction d'un dataset adapté}
\begin{verbatim} % \begin{verbatim}
À REPRENDRE % À REPRENDRE
Base de données: % Base de données:
- Paires % - Paires
- liste des champs et justification % - liste des champs et justification
Choix pour datasets % Choix pour datasets
- Dataset avec des paires question-document (questions différentes et % - Dataset avec des paires question-document (questions différentes et
différents pdf, taille des documents, répartition positif/négatif) % différents pdf, taille des documents, répartition positif/négatif)
- Dataset avec une seule question (construction à partir de 3 pdf) % - Dataset avec une seule question (construction à partir de 3 pdf)
[description du dataset dans les expés et les specs] % [description du dataset dans les expés et les specs]
- motivation (reprendre l'expé présentée par MechIR, faciliter la création) % - motivation (reprendre l'expé présentée par MechIR, faciliter la création)
- limites (biais, diversité ~> généralisabilité) % - limites (biais, diversité ~> généralisabilité)
=> Placer le nom des outils utilisés (PyMuPDF4LLM et langchain.text_splitter.MarkdownSplitter) % => Placer le nom des outils utilisés (PyMuPDF4LLM et langchain.text_splitter.MarkdownSplitter)
--- % ---
- Le format de dataset visé % - Le format de dataset visé
- tous les dérouler V0, V1 et format V2 (à chaque fois: format % - tous les dérouler V0, V1 et format V2 (à chaque fois: format
ce qui manque, les modifications proposées) % ce qui manque, les modifications proposées)
\end{verbatim} % \end{verbatim}
Les données fournies par le challenge étant brutes, un premier traitement a été effectué. Les PDf ont été converti au format Markdown à l'aide de PyMuPDF4LLM \cite{artifex_software_pymupdf4llm_2026} pour les stocker dans base de donnée. Ce format est lisible pour l'humain et est souvent utilisé en entrée et sortie des grands modèles de langue. Les images n'ont pas été conservées car nous ne nous intéressons pas au traitement de données multi-modales. Ce pourrais être une perspective d'évolution dans le conception du modèle. \md{hors sujet?} Les textes récupérés sont découpés en page et en chunk plus petits pour les pages contenant plus de 500 tokens. Les données fournies par le challenge étant brutes, un premier traitement a été effectué. Les PDFs ont été convertis au format Markdown à l'aide de PyMuPDF4LLM \cite{artifex_software_pymupdf4llm_2026} pour les stocker dans base de donnée. Ce format est lisible pour l'humain et est souvent utilisé en entrée et sortie des grands modèles de langue. Les images n'ont pas été conservées car nous ne nous intéressons pas au traitement de données multi-modales. Ce pourrait être une perspective d'évolution dans le conception du modèle. Les textes récupérés sont découpés en pages et en chunks plus petits pour les pages contenant plus de 500 tokens. Le découpage prend en compte la structure Markdown (séparation entre paragraphes, avant un nouveau titre,...)
La construction de la base de donnée a nécessité plusieurs itérations. Les différentes versions sont toutes au format CSV avec des champs d'identification de la question (identifiant) et de l'extrait (nom du fichier, identifiant, numéro de page, numéro de chunk dans le document), la question et l'extrait du document. Pour la base de donnée du modèle et son utilisation, les questions et les documents sont fournis dans deux fichiers CSV distincts pour toutes les versions. La base est mise sous forme de paires (produit cartésien) pour l'utilisation de MechIR et l'application de l'activation patching. La construction de la base de donnée a nécessité plusieurs itérations. Les différentes versions sont toutes au format CSV avec des champs d'identification de la question (identifiant) et de l'extrait (nom du fichier, identifiant, numéro de page, numéro de chunk dans le document), la question et l'extrait du document. Pour la base de donnée du modèle et son utilisation, les questions et les documents sont fournis dans deux fichiers CSV distincts pour toutes les versions. La base est mise sous forme de paires (produit cartésien) pour l'utilisation de MechIR et l'application de l'activation patching.
...@@ -61,18 +98,25 @@ différents pdf, taille des documents, répartition positif/négatif) ...@@ -61,18 +98,25 @@ différents pdf, taille des documents, répartition positif/négatif)
Pour résoudre le problème de l'équilibre, la seconde base de donnée est construite artificiellement à partir des extraits et des questions précédentes. Pour chacune des 26 questions, un extrait pertinent et un extrait non pertinent ont été choisis. La base de donnée obtenue est équilibrée, étiquetée et de taille très raisonnable. Pour autant, la diversité des mots utilisés et des sujets abordés rend difficile la construction d'une perturbation qui impacte la sortie sans dénaturer les documents. Pour résoudre le problème de l'équilibre, la seconde base de donnée est construite artificiellement à partir des extraits et des questions précédentes. Pour chacune des 26 questions, un extrait pertinent et un extrait non pertinent ont été choisis. La base de donnée obtenue est équilibrée, étiquetée et de taille très raisonnable. Pour autant, la diversité des mots utilisés et des sujets abordés rend difficile la construction d'une perturbation qui impacte la sortie sans dénaturer les documents.
La troisième base de donnée a été construite à partir d'une seule question. Ainsi, les extraits pertinents partagent un plus grand nombre de mots sur lesquels il est possible de s'appuyer pour construire des perturbations. Pour maintenir l'équilibre, les extraits sont pour moitié non pertinents. Le choix des extraits est fait à partir de trois PDF : un pour les extraits pertinents et deux our les extraits non pertinents. La troisième base de donnée a été construite à partir d'une seule question. Ainsi, les extraits pertinents partagent un plus grand nombre de mots sur lesquels il est possible de s'appuyer pour construire des perturbations. Pour maintenir l'équilibre, les extraits sont pour moitié non pertinents. Le choix des extraits est fait à partir de trois PDFs : un pour les extraits pertinents et deux pour les extraits non pertinents.
Le troisième dataset est la version remaniée des données du challenge RAG@EvalLLM qui est utilisée pour concevoir les propositions méthodologiques du chapitre suivant. C'est sur ces données que les exemples présentés sont appliqués. La question retenue est la suivante :
\begin{quote}
Quelles sont les trois principales catégories de limitations techniques affectant les systèmes de drones, et comment chacune influence-t-elle l'efficacité opérationnelle de ces vecteurs ?
\end{quote}
Les extraits sont issus de trois PDF portant respectivement sur les limitations matérielles du drone, le code de la défense concernant les matériel de guerre et les fausses informations dans le contexte des Jeux Olympiques et Paralympiques. Le dataset final contient 28 extraits dont 14 extraits pertinents vis a vis de la question, tous issus du premier PDF.
\section{Adaptation du modèle RAG4HistoricalNewspapers} \section{Adaptation du modèle RAG4HistoricalNewspapers}
\begin{verbatim} % \begin{verbatim}
- Choix de ce modèle : traite des données en FR % - Choix de ce modèle : traite des données en FR
- Suppression de la partie WebSearch (hors sujet) % - Suppression de la partie WebSearch (hors sujet)
- Suppression de la première extraction sur la base des titres % - Suppression de la première extraction sur la base des titres
(incompatible avec le format des données du challenge) % (incompatible avec le format des données du challenge)
- Montée en version des librairies pour la compatibilité avec les outils % - Montée en version des librairies pour la compatibilité avec les outils
- Reprise du reranking (mettre au propre la photo du schema sur l'ardoise) % - Reprise du reranking (mettre au propre la photo du schema sur l'ardoise)
\end{verbatim} % \end{verbatim}
Pour répondre au challenge, nous avions besoin d'une architecture RAG complète fonctionnelle avec un extracteur sur lequel appliquer l'activation patching. Le stage ne portant pas sur la conception d'une architecture, nous avons repris et simplifié l'architecture proposée par \cite{tran_retrieval_2024} pour l'adapter à la première tâche du challenge RAG. Le choix de cette architecture est motivé par la disponibilité du code source et le fait qu'elle est déjà adapté aux documents en français. Pour répondre au challenge, nous avions besoin d'une architecture RAG complète fonctionnelle avec un extracteur sur lequel appliquer l'activation patching. Le stage ne portant pas sur la conception d'une architecture, nous avons repris et simplifié l'architecture proposée par \cite{tran_retrieval_2024} pour l'adapter à la première tâche du challenge RAG. Le choix de cette architecture est motivé par la disponibilité du code source et le fait qu'elle est déjà adapté aux documents en français.
...@@ -93,38 +137,5 @@ différents pdf, taille des documents, répartition positif/négatif) ...@@ -93,38 +137,5 @@ différents pdf, taille des documents, répartition positif/négatif)
\label{fig:ArchiRAG4def} \label{fig:ArchiRAG4def}
\end{figure} \end{figure}
\md{Est-il pertinent de mentionner le montée en version des librairies dans cette partie ?} %\md{Est-il pertinent de mentionner le montée en version des librairies dans cette partie ?} \alh{je ne crois pas}
\section{Objectifs du stage}
\md{Ne serait-ce pas plus pertinent au début du chapitre suivant ?}
% \color{gray}
% \subsection{Localisation de la langue de spécialité dans un modèle}
% \begin{verbatim}
% - Définition de langue de spécialité
% - Formalisation de l'objectif
% \end{verbatim}
% \subsection{Intégration des travaux dans l'explicabilité post-hoc des modèles d'extraction d'information}
% \begin{verbatim}
% - Cartographie de modèle d'extraction d'information
% - Analyse des éléments identifiés par le modèle lors du passage d'un document
% \end{verbatim}
% \color{black}
\paragraph{La langue de spécialité} correspond à l'ensemble du vocabulaire et des tournures spécifiques à un domaine d'expertise \cite{cabre_terminologie_1998}. Si la façon de s'exprimer ne change que de façon limité, certains mots ont parfois un sens différent (exemple: \textit{noeuds} en deep learning) et certaines façons de s'exprimer sont inhabituelles en dehors du domaine (ex: codes de rédaction d'une preuve mathématique). Chaque domaine dispose de sa langue de spécialité qui est incluse dans la langue générale et en intersection avec la langue commune.
\paragraph{Hypothèses} Considérant que l'activation patching permet de localiser les composants et noeuds d'un modèle sensibles à une perturbation, on s'intéresse aux hypothèses suivantes:
\begin{description}
\item[H1 : ] Dans les modèles de langue, une langue de spécialité repose sur certains composants du modèle.
\item[H2 : ] Ces composants peuvent être cartographiés à l'aide de l'activation patching.
\end{description}
\paragraph{Objectifs} Ce stage vise à appliquer l'activation patching à la localisation du vocabulaire spécifique de la langue de spécialité (vocabulaire de spécialité) du domaine de la défense. L'objectif est de proposer une méthodologie, un cadre de mise en pratique de l'activation patching pour la localisation du vocabulaire de spécialité à l'aide de l'outil MechIR ainsi qu'une application au cas de la langue de spécialité de la défense sur le modèle mE5-small.
\paragraph{Intégration dans l'explicabilité post-hoc des modèles d'extraction d'infomation et des systèmes RAG} La possibilité de localiser le vocabulaire de spécialité ouvre la voie à la localisation de concepts et/ou domaines precis dans un modèle de langue. Il devient alors possible de cartographier ces modèles. Ces cartographies pourraient à terme être utilisées pour expliquer le raisonnement, les éléments pris en compte dans l'entrée et dans les documents extraits au sein d'un système RAG ou RA-LLM. \md{Est-il pertinent d'évoquer le fond du projet de IJ-CVL?}
\md{À REPRENDRE} %\md{À REPRENDRE}
\section{Résultats et Analyse} \section{Résultats et Analyse}
\subsection{Application à la cartographie du vocabulaire de la défense français dans mE5} \subsection{Application à la cartographie du vocabulaire de la défense français dans mE5}
\begin{verbatim} % \begin{verbatim}
- Grand nombre de noeuds de la dernière couche du modèle % - Grand nombre de nœuds de la dernière couche du modèle
- pas de noeuds clairement associé au vocabulaire % - Peu de nœud pour certaines perturbations
... % - pas de nœuds clairement associé au vocabulaire
\end{verbatim} % ...
% \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} \subsection{Préconisations d'utilisation}
\begin{verbatim} % \begin{verbatim}
- des perturbations qui couvrent tous ou très grande partie des documents étudiés % - des perturbations qui couvrent tous ou très grande partie des documents étudiés
- utiliser la question comme document témoin % - utiliser la question comme document témoin
\end{verbatim} % \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} \section{Perspectives d'évolution de la méthode proposée}
\begin{verbatim} % \begin{verbatim}
- échelle pour situer le niveau d'un mot candidat remplaçant en fonction du mot remplacé % - é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é % - critère d'identification du vocabulaire de spécialité FAIT?
- intégration d'autres informations au critère de sensibilité % - intégration d'autres informations au critère de sensibilité
\end{verbatim} % - élargir à toute la langue de spécialité (tournues et usages linguistiques)
\ No newline at end of file % - 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
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
% modèles [Lewis+20] (= définition de RAG) % modèles [Lewis+20] (= définition de RAG)
% - Ces approches peuvent être appliquées aux tâches et modèles du TALN : RALLM % - Ces approches peuvent être appliquées aux tâches et modèles du TALN : RALLM
% \end{verbatim} % \end{verbatim}
Les modèles d'apprentissage profond tels que les réseaux de neurones profond, réseaux convolutionnels ou les réseaux basés sur le mécanisme d'attention constituent leur connaissances à partir des données utilisées pour les entraîner. Cependant, leurs connaissances et leur capacité d'extrapolation sont limités. Cela rend ces modèles vulnérables à l'obsolescence des résultats et aux hallucinations \cite{huang_survey_2025}. Pour traiter ces problématiques, \cite{lewis_retrieval-augmented_2020} propose d'associer une base de donnée et un modèle d'extraction des données de cette base à un modèle génératif. La base de donnée permet d'entretenir plus facilement les connaissances du modèle obtenu afin de limiter l'obsolescence des résultats et/ou agrandir la base de connaissance selon le besoin ou la tâche visée.\\ Les modèles d'apprentissage profond tels que les réseaux de neurones profond, réseaux convolutionnels ou les réseaux basés sur le mécanisme d'attention constituent leur connaissances à partir des données utilisées pour les entraîner. Cependant, leurs connaissances et leur capacité d'extrapolation sont limités. Cela rend ces modèles vulnérables à l'obsolescence des résultats et aux hallucinations \cite{huang_survey_2025}. Pour traiter ces problématiques, \cite{lewis_retrieval-augmented_2020} propose d'associer une base de donnée et un modèle d'extraction des données de cette base à un modèle génératif. La base de données permet d'entretenir plus facilement les connaissances du modèle obtenu afin de limiter l'obsolescence des résultats et/ou d'agrandir la base de connaissances selon le besoin ou la tâche visée.\\
Les systèmes combinant un modèle d'extraction (\textit{retrieval} en anglais) et un modèle génératif sont appelées systèmes RAG (Retrieval Augmented by Generation). La question ou requête de l'utilisateur est fournie au modèle d'extraction qui récupère les documents ou extraits de documents pertinent au regard de la question. Ces documents ainsi que la question sont alors donnés au générateur qui produit le résultat final. Ce processus est schématisé dans le Figure~\ref{fig:ArchiRAG} Les systèmes combinant un modèle d'extraction (\textit{retrieval} en anglais) et un modèle génératif sont appelées systèmes RAG (\textit{Retrieval Augmented Generation}). La question ou requête de l'utilisateur est fournie au modèle d'extraction qui récupère les documents ou extraits de documents pertinent au regard de la question. Ces documents ainsi que la question sont alors donnés au générateur qui produit le résultat final. Ce processus est schématisé dans le Figure~\ref{fig:ArchiRAG}
\begin{figure} \begin{figure}
\centering \centering
...@@ -19,14 +19,14 @@ ...@@ -19,14 +19,14 @@
\label{fig:ArchiRAG} \label{fig:ArchiRAG}
\end{figure} \end{figure}
Les systèmes RAG peuvent être appliqués à de nombreuses tâches générant différents types de données (génération d'image, génération et/ou complétion de signaux, génération de texte, traduction,...). Lorsque le modèle génératif est un Grand Modèle de Langue (LLM), on parle de systèmes RA-LLM \cite{fan_survey_2024}. Ces modèles sont utilisées pour grande diversité de tâches du traitement automatique des langues. On retrouve notamment les différentes variantes de réponse aux questions (questions à forte intensité de raisonnement, question sur domaine ouvert,...), les tâches d'analyse de texte (vérification de fait, liage d'entité, détection d'entité nommées), des tâches de génération ou de complétion (traduction, prédiction de citation, dialogue, résumé de texte, complétion de texte à trous,...) ou encore les tâches d'extraction (extraction d'information, extraction d'argument, ...) Les systèmes RAG peuvent être appliqués à de nombreuses tâches générant différents types de données (génération d'image, génération et/ou complétion de signaux, génération de texte, traduction,...). Lorsque le modèle génératif est un Grand Modèle de Langue (LLM), on parle de systèmes RA-LLM \cite{fan_survey_2024}. Ces modèles sont utilisées pour grande diversité de tâches du traitement automatique des langues. On retrouve notamment les différentes variantes de réponse aux questions (questions à forte intensité de raisonnement, question sur domaine ouvert \footnote{Plus connus sous le nom de \textit{Reasonning-Intensive Question Answering}, \textit{Open-Domain QA, ...}},...), les tâches d'analyse de texte (vérification de fait, liage d'entité \footnote{Fact Checking, Entity Linking, ... })
%\alh{je doute mais j'aurais bien mis les appelations en anglais aussi quelque part comme en footnote un truc du genre "mieux connu sous les appelations de \textit{fact checking, NER, LOD, }"}
, des tâches de génération ou de complétion (traduction, prédiction de citation, dialogue, résumé de texte, complétion de texte à trous \footnote{Slot Filling},...) ou encore les tâches d'extraction (extraction d'information, extraction d'argument, ...)
\subsection{L'architecture des modèles RA-LLM} \subsection{L'architecture des modèles RA-LLM}
\md{Cette sous-section est un résumé de \cite{fan_survey_2024}}
% \begin{verbatim} % \begin{verbatim}
% Description de l'archi de façon plus avancée % Description de l'archi de façon plus avancée
% - Ces modèles peuvent être utilisés pour différents types de tâches (voir tableau % - Ces modèles peuvent être utilisés pour différents types de tâches (voir tableau
...@@ -58,8 +58,14 @@ ...@@ -58,8 +58,14 @@
\paragraph{Intégration} Une fois les documents récupérés et augmentés, il faut les fournir au générateur. \cite{fan_survey_2024} distingue trois stratégies d'intégration. L'\textit{intégration en entrée} consiste à combiner les documents et la question (généralement à l'aide d'une template de prompt) avant de la fournir au générateur. L'\textit{intégration en sortie} consiste à prendre en compte le ou les documents à la fin du processus de génération à l'aide d'un processus de fusion. L'\textit{intégration dans les couches intermédiaires} injecte les documents encodés dans les couches intermédiaires du générateur.\\ \paragraph{Intégration} Une fois les documents récupérés et augmentés, il faut les fournir au générateur. \cite{fan_survey_2024} distingue trois stratégies d'intégration. L'\textit{intégration en entrée} consiste à combiner les documents et la question (généralement à l'aide d'une template de prompt) avant de la fournir au générateur. L'\textit{intégration en sortie} consiste à prendre en compte le ou les documents à la fin du processus de génération à l'aide d'un processus de fusion. L'\textit{intégration dans les couches intermédiaires} injecte les documents encodés dans les couches intermédiaires du générateur.\\
Un autre élément à prendre en compte dans l'intégration des documents au cours de la génération est la fréquence et donc le nombre d'extractions effectués pour une question. Le recours à la génération peut se faire avec une fréquence fixée (une seule fois, tout les n token,...) ou être déclenchée au cours de la génération (par un modèle annexe, par la génération d'un token spécifique, en fonction d'un logit,...). Un autre élément à prendre en compte dans l'intégration des documents au cours de la génération est la fréquence et donc le nombre d'extractions effectués pour une question. Le recours à la génération peut se faire avec une fréquence fixée (une seule fois, tout les n token,...) ou être déclenchée au cours de la génération (par un modèle annexe, par la génération d'un token spécifique, en fonction d'un logit,...).
\md{Parler de l'entrainement de ces architectures ?} \paragraph{Entraînement} Lors de la conception d'un système RAG, on assemble des modèles pré-entraînés. Une fois le système assemblé, il est possible d'affiner les composants pour les faire correspondre à la tâche visée et/ou augmenter leur symbiose. \cite{fan_survey_2024} distingue quatre approches d'entraînement complémentaire. La première consiste en ne pas ré-entraîner le modèle. On parle de système \textit{training-free}. La seconde approche est l'\textit{independent training}. L'extracteur et le générateur sont entraînés chacun de leur coté de façon totalement indépendante en dehors de la pipeline du système RAG. Le \textit{sequential training} entraîne les deux composants l'un après l'autre mais le second est entraîné à l'intérieur de la pipeline du système RAG. Il n'y a pas d'ordre fixe pour le séquentiel training; il peut être \textit{Retriever-first} ou \textit{LLMs-first}. Le \textit{joint training} consiste à entraîner les deux modèles simultanément. Le schéma de la figure~\ref{fig:EntrainementsRAG} issu de \cite{fan_survey_2024} illustre ces quatre approches.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{images/Training.pdf}
\caption{Illustration des approches d'entraînement des systèmes RAG par \cite{fan_survey_2024}}
\label{fig:EntrainementsRAG}
\end{figure}
\subsection{Architectures aperçues au cours du stage} \subsection{Architectures aperçues au cours du stage}
...@@ -76,11 +82,13 @@ ...@@ -76,11 +82,13 @@
\cite{chen_seeing_2025} propose un système RAG avec une base de données multi-modales où chaque entrée est un couple (image, texte). Les paires extraites à partir de la requête, elle aussi bi-modale, sont ré-ordonnées avant d'être fournies comme contexte au générateur. \cite{chen_seeing_2025} propose un système RAG avec une base de données multi-modales où chaque entrée est un couple (image, texte). Les paires extraites à partir de la requête, elle aussi bi-modale, sont ré-ordonnées avant d'être fournies comme contexte au générateur.
Pour traiter les tâches à forte intensité de raisonnement (reasoning intensive tasks), \cite{xu_search---chain_2024} propose un système RAG combiné à un modèle de décomposition de raisonnement (Chain-of-Query). La requête de l'utilisateur est décomposé en sous-requêtes résolues une à une. Elles sont en suite vérifiées à l'aide des documents extraits. Le raisonnement est vérifié, complété et éventuellement repris en fonction du score de crédibilité obtenu. Une trace complète du raisonnement est restituée en sortie. Pour traiter les tâches à forte intensité de raisonnement (\textit{reasoning intensive tasks}), \cite{xu_search---chain_2024} propose un système RAG combiné à un modèle de décomposition de raisonnement (\textit{Chain-of-Query}). La requête de l'utilisateur est décomposé en sous-requêtes résolues une à une. Elles sont en suite vérifiées à l'aide des documents extraits. Le raisonnement est vérifié, complété et éventuellement repris en fonction du score de crédibilité obtenu. Une trace complète du raisonnement est restituée en sortie.
Les systèmes RAG sont aussi intéressants à intégrer à une architecture agentique en tant que source d'information. \cite{liu_hm-rag_2025} présente un framework Hiérarchique Multi-agent Multi-modal composé d'un agent de décomposition des requêtes utilisateur, d'un agent RAG pour des données structurées, non-structurées et sous forme de graphes et d'un agent de prise de décision construisant la sortie finale. Les systèmes RAG sont aussi intéressants à intégrer à une architecture agentique en tant que source d'information. \cite{liu_hm-rag_2025} présente un framework Hiérarchique Multi-agent Multi-modal composé d'un agent de décomposition des requêtes utilisateur qui découpe la requête entrée en sous tâches, d'un agent RAG pour des données structurées, non-structurées et sous forme de graphes à partir duquel les réponses aux sous questions sont obtenues et d'un agent de prise de décision qui juge la qualité de chaque entrée, les assemble pour obtenir la sortie finale.
%\alh{c'ets peut être moi qui suis peu concentrée mais autant les précédet, je comprends la nuance avec le rest eautant là y a trop de choses non expliquées pour que cela ne soit informatif, soit rester plus flou en disant que le RAG a pénétré le paradigme agentif, ou alors que l'on peut entrevoir le RAG comme une agent parmis d'autres dans certaines archis et cite ? mais là c'est trop de concepts non expliqués}
\cite{zhu_static_2025} s'intéresse au cas particulier des bases de données dynamiques. Lorsque le flux d'apport de donné est important, le besoin de restructuration de la base de donnée est régulier or le coût calculatoire et énergétique associé est dissuasif. \cite{zhu_static_2025} propose StreamingRAG, une architecture composée d'une base de données dynamique qui maintien un ensemble de prototypes compact représentatif du flux de données tout en évitant sa reconstruction permanente. \cite{zhu_static_2025} s'intéresse au cas particulier des bases de données dynamiques. Lorsque le flux d'apport de donné est important, le besoin de restructuration de la base de donnée est régulier or le coût calculatoire et énergétique associé est dissuasif. \cite{zhu_static_2025} propose StreamingRAG, une architecture composée d'une base de données dynamique qui maintien un ensemble de documents (appelés prototypes) représentatifs du flux de données en l'agrémentant et la nettoyant au cours du temps. La base de données ne contient pas tous les éléments, ce qui est avantageux en terme de coût de mémoire, de calcul, d'énergie et de latence, tout en restant représentative du flux de document y compris lorsque celui-ci évolue.
%\alh{même problème ici soit c'est trop soit pas assez}
\subsection{Architecture et Modèles utilisées au cours du stage} \subsection{Architecture et Modèles utilisées au cours du stage}
...@@ -93,7 +101,9 @@ ...@@ -93,7 +101,9 @@
% - L'extracteur de RAG4HN est mE5 [Wang+25b] (version multilingue de E5 [Whang+25a]) % - L'extracteur de RAG4HN est mE5 [Wang+25b] (version multilingue de E5 [Whang+25a])
% \end{verbatim} % \end{verbatim}
Dans la suite, nous utilisons une version simplifiée de l'architecture RAG4HistoricalNewspaper conçue par \cite{tran_retrieval_2024}. Cette architecture est conçue pour faciliter l'exploration d'archives de journaux historiques. Comme illustré dans le Figure~\ref{fig:RAG4HN}, un premier extracteur récupère les articles pertinents au regard de leur titre. Ces informations sont utilisées pour orienter l'extraction des extraits articles. Dans le cas où aucun titre ou document ne sont extraits, des ressources sont récupérées via une recherche Web. La première extraction peut être vue comme une amélioration de la requête pour l'extraction des extraits d'articles. Les deux extracteurs utilisent le modèle mE5-small de \cite{wang_multilingual_2024} et ChromaDB pour la gestion des données. Après l'extraction, les articles obtenus sont reclassés. Le score utilisé est issu d'une combinaison linéaire entre le score de Cohere et le TF-IDF des titres concaténés avec les étiquettes des entités nommées de la question. Seuls les trois meilleurs documents au dessus d'un certain seuil sont conservés. Ce reclassement est une technique d'amélioration des ressources extraites. Pour finir, les documents et la question initiale sont fournis à travers une prompt template à LLaMa3 \cite{touvron_llama_2023} qui est utilisé comme générateur. Dans la suite, nous utilisons une version simplifiée de l'architecture RAG4HistoricalNewspaper conçue par \cite{tran_retrieval_2024}. Cette architecture est conçue pour faciliter l'exploration d'archives de journaux historiques. Comme illustré dans le Figure~\ref{fig:RAG4HN}, un premier extracteur récupère les articles pertinents au regard de leur titre. Ces informations sont utilisées pour orienter l'extraction des extraits articles. Dans le cas où aucun titre ou document ne sont extraits, des ressources sont récupérées via une recherche Web. La première extraction peut être vue comme une amélioration de la requête pour l'extraction des extraits d'articles. Les deux extracteurs utilisent le modèle mE5-small de \cite{wang_multilingual_2024} et ChromaDB pour la gestion des données. Après l'extraction, les articles obtenus sont reclassés. Le score utilisé est issu d'une combinaison linéaire entre le score de Cohere accessible depuis l'API \cite{cohere_rerank_2024}
%\alh{il faut dire comment il est calculé}
et le TF-IDF des titres concaténés avec les étiquettes des entités nommées de la question. Seuls les trois meilleurs documents au dessus d'un certain seuil sont conservés. Ce reclassement est une technique d'amélioration des ressources extraites. Pour finir, les documents et la question initiale sont fournis à travers un prompt template à LLaMa3 \cite{touvron_llama_2023} qui est utilisé comme générateur.
\begin{figure} \begin{figure}
\includegraphics[width=\textwidth]{images/RAGHN.drawio.png} \includegraphics[width=\textwidth]{images/RAGHN.drawio.png}
...@@ -117,7 +127,7 @@ ...@@ -117,7 +127,7 @@
% and Technology (US)) propose différents axes ou composantes de l'IA de confiance : ... [Ni+25] + [Ref citée par Ni+25 du NIST] % and Technology (US)) propose différents axes ou composantes de l'IA de confiance : ... [Ni+25] + [Ref citée par Ni+25 du NIST]
% \end{verbatim} % \end{verbatim}
La définition d'IA de confiance (Trustworthy AI) n'est pas fixée et change souvent en fonction des contextes d'utilisations de cette expression. Dans le cas du Machine Learning, on désigne l'IA de confiance comme l'ensemble des systèmes d'IA dans lesquels il est légitime (dans le sens humainement entendable) d'avoir confiance. \cite{ni_towards_2025} rappèle les composantes de l'IA de confiance proposés par Le NIST (National Institute of Standards and Technology (USA)): La définition d'IA de confiance (Trustworthy AI) n'est pas fixée et change souvent en fonction des contextes d'utilisations de cette expression. Dans le cas du Machine Learning, on désigne l'IA de confiance comme l'ensemble des systèmes d'IA dans lesquels il est légitime (dans le sens humainement entendable) d'avoir confiance. \cite{ni_towards_2025} rappelle les composantes de l'IA de confiance proposés par Le NIST (National Institute of Standards and Technology (USA)):
\begin{description} \begin{description}
\item[Fiabilité] Le comportement d'un IA de confiance doit être systématiquement adapté, l'incertitude sur son comportement doit être quantifiable et quantifié et ses capacité de généralisation doivent être robustes. \item[Fiabilité] Le comportement d'un IA de confiance doit être systématiquement adapté, l'incertitude sur son comportement doit être quantifiable et quantifié et ses capacité de généralisation doivent être robustes.
...@@ -133,7 +143,6 @@ ...@@ -133,7 +143,6 @@
\subsection{Explicabilité pour le RAG} \subsection{Explicabilité pour le RAG}
\md{Je pensais initialement rédiger cette partie en calquant sur la partie \cite{ni_towards_2025} correspondante comme je l'ai fait pour la sous-section précédente. Certains éléments de sa version des fait ne me plaisent plus autant donc j'ai préféré une version plus gros grain avec une part de jugement personnel. Je ne sais pas si ce format est adapté pour un état de l'art.}
% \begin{verbatim} % \begin{verbatim}
% Dans la suite, nous nous concentrons sur l'explicabilité dans le contexte du RAG. [Ni+25] % Dans la suite, nous nous concentrons sur l'explicabilité dans le contexte du RAG. [Ni+25]
% distingue deux temps pour l'explicabilité : Extraction et génération ... (prévoir la question % distingue deux temps pour l'explicabilité : Extraction et génération ... (prévoir la question
...@@ -152,7 +161,8 @@ ...@@ -152,7 +161,8 @@
Dans le contexte de l'explicabilité des systèmes RAG, \cite{ni_towards_2025} propose de distinguer l'explication du modèle d'extraction et l'explication du modèle génératif. De façon plus générale, une approche naïve d'explication des systèmes RAG est de construire des explications pour chaque composant du modèle (extraction, génération, améliorations, ...). La difficulté intervient au moment de mettre en perspective les explications fournies entre elles. \cite{ni_towards_2025} souligne l'absence de de méthode d'explication pour l'extraction d'information spécifique contexte du RAG ni d'étude de l'application des méthodes génériques à ce cas. La même question se pose pour l'explication des modèle génératifs : les méthodes d'explications classiques sont-elles capable de prendre en compte la présence des autres composants? Dans le contexte de l'explicabilité des systèmes RAG, \cite{ni_towards_2025} propose de distinguer l'explication du modèle d'extraction et l'explication du modèle génératif. De façon plus générale, une approche naïve d'explication des systèmes RAG est de construire des explications pour chaque composant du modèle (extraction, génération, améliorations, ...). La difficulté intervient au moment de mettre en perspective les explications fournies entre elles. \cite{ni_towards_2025} souligne l'absence de de méthode d'explication pour l'extraction d'information spécifique contexte du RAG ni d'étude de l'application des méthodes génériques à ce cas. La même question se pose pour l'explication des modèle génératifs : les méthodes d'explications classiques sont-elles capable de prendre en compte la présence des autres composants?
Au delà de l'objectif de transparence de l'explicabilité, \cite{ni_towards_2025} pointe la possible utilisation d'explication d'un composant comme indication supplémentaire pour améliorer les performances d'un autre composant. \md{développer avec un exemple?} Au delà de l'objectif de transparence de l'explicabilité, \cite{ni_towards_2025} pointe la possible utilisation d'explication d'un composant comme indication supplémentaire pour améliorer les performances d'un autre composant.
%\md{développer avec un exemple?}\alh{si le temps, à faire en dernier peut être}
...@@ -166,19 +176,21 @@ ...@@ -166,19 +176,21 @@
% \end{verbatim} % \end{verbatim}
L'explicabilité de l'intelligence artificielle est constituée de deux branches. Certains modèles contiennent leur explication. On parle de modèle \textit{explicable by-design}. C'est le cas des premiers modèles de machine learning tels que les arbres de décision mais aussi de modèles plus récents comme les Sparse Auto-Encodeurs.\\ L'explicabilité de l'intelligence artificielle est constituée de deux branches. Certains modèles contiennent leur explication. On parle de modèle \textit{explicable by-design}. C'est le cas des premiers modèles de machine learning tels que les arbres de décision mais aussi de modèles plus récents comme les Sparse Auto-Encodeurs.\\
%\alh{tombe un peu comme une cheveu sur la soupe, au moins dire avec des mots simples ce que c'est ou plutôt enquoi ces modèles sont explicables by design}
Les modèles explicables by-design s'opposent à des modèles plus opaques tels que les réseaux de neurones profonds. Le processus de décision de ces modèles n'est pas directement accessible. Les méthodes d'\textit{explicabilité post-hoc} permettent de construire des explications à partir de l'étude de leur comportement. Les modèles explicables by-design s'opposent à des modèles plus opaques tels que les réseaux de neurones profonds. Le processus de décision de ces modèles n'est pas directement accessible. Les méthodes d'\textit{explicabilité post-hoc} permettent de construire des explications à partir de l'étude de leur comportement.
\cite{somvanshi_bridging_2026} présente un sous-paradigme de l'explicabilité : l'\textit{interprétabilité mécaniste}. L'interprétabilité mécaniste vise à identifier les parties ou sous-parties d'un modèle responsables des différents comportements du modèle. Les méthodes d'interprétabilité mécaniste vont explorer la sensibilité des paramètres du modèle sur des entrées choisies afin de construire une cartographie du modèle faisant la correspondance entre ses compétences et connaissances et ses composants ou groupe de composants. on retrouve plusieurs approches au sein des méthodes d'interprétabilité mécaniste. \cite{somvanshi_bridging_2026} présente un sous-paradigme de l'explicabilité : l'\textbf{\textit{interprétabilité mécaniste}}. L'interprétabilité mécaniste vise à identifier les parties ou sous-parties d'un modèle responsables des différents comportements du modèle. Les méthodes d'interprétabilité mécaniste vont explorer la sensibilité des paramètres du modèle sur des entrées choisies afin de construire une cartographie du modèle faisant la correspondance entre ses compétences et connaissances et ses composants ou groupe de composants. on retrouve plusieurs approches au sein des méthodes d'interprétabilité mécaniste.
Les méthodes de \textbf{manual circuit tracing} cherchent à identifier les sous-graphes de modèles neuronaux responsables d'un certain comportement recherché. Pour cela, elles observent les paramètres et les flux de données lors de l'utilisation du modèle. Les méthodes de \textbf{\textit{manual circuit tracing}} cherchent à identifier les sous-graphes de modèles neuronaux responsables d'un certain comportement recherché. Pour cela, elles observent les paramètres et les flux de données lors de l'utilisation du modèle.
Les méthodes de \textbf{representation analysis} observent les représentations latentes des couches intermédiaires grace à des outils d'unembedding. De cette manière, on peut localiser la détection de phénomènes présents dans l'entrée et la mise en place de notions dans la construction de la sortie. Les méthodes de \textbf{\textit{representation analysis}} observent les représentations latentes des couches intermédiaires grâce à des outils d'unembedding. De cette manière, on peut localiser la détection de phénomènes présents dans l'entrée et la mise en place de notions dans la construction de la sortie.
Les techniques de \textbf{feature decomposition} cherchent à distinguer les différentes compétences traitées par chaque partie du modèle. Pour cela, elles intègrent des Sparse Auto-Encodeurs sur les parties du modèle visées puis déduisent, par l'observation de ces SAE, les compétences de chaque partie du modèle. Les techniques de \textbf{\textit{feature decomposition}} cherchent à distinguer les différentes compétences traitées par chaque partie du modèle. Pour cela, elles intègrent des Sparse Auto-Encodeurs (SAE) sur les parties du modèle visées puis déduisent, par l'observation de ces SAE, les compétences de chaque partie du modèle.
Les méthodes basées sur les \textbf{toy models and synthetic tasks} consistent à concevoir des environnements contrôlés favorisant la localisation de motifs dans le modèle associés un comportement visé. Ces méthodes supposent qu'une même compétence prendra la même forme dans tous les modèles disposant de cette compétence. Les méthodes basées sur les \textbf{\textit{toy models and synthetic tasks}} consistent à concevoir des environnements contrôlés favorisant la localisation de motifs dans le modèle associés un comportement visé. Ces méthodes supposent qu'une même compétence prendra la même forme dans tous les modèles disposant de cette compétence.
Les méthodes \textbf{intervention-based} observent l'impact de modifications du modèle sur son comportement pour en déduire la présence et la localisation des compétences du modèle. On retrouve trois approches parmi les techniques intervention-based : les techniques d'intervention par \textit{ablation}, les techniques d'intervention par \textit{activation patching} que nous détaillerons dans la prochaine sous partie et les techniques de \textit{path patching}. Les méthodes \textbf{\textit{intervention-based}} observent l'impact de modifications du modèle sur son comportement pour en déduire la présence et la localisation des compétences du modèle. On retrouve trois approches parmi les techniques intervention-based : les techniques d'intervention par \textbf{\textit{ablation}}, les techniques d'intervention par \textbf{\textit{activation patching}} que nous détaillerons dans la prochaine sous partie et les techniques de \textbf{\textit{path patching}}.
%\alh{j'aurais passé en italique et gras tous les termes manual circuit tracing,... et ablation, ...}
\subsection{Activation Patching} \subsection{Activation Patching}
...@@ -190,10 +202,11 @@ ...@@ -190,10 +202,11 @@
% - Données produites, visualisation et interprétation des graphiques % - Données produites, visualisation et interprétation des graphiques
% \end{verbatim} % \end{verbatim}
\subsubsection{Définiton et fonctionnement de l'Activation Patching} \subsubsection{Définition et fonctionnement de l'Activation Patching}
L'activation patching est une méthode d'interprétabilité mécaniste intervention-based pour les modèles profond. Elle identifie les composants d'un modèle sensibles à une famille de perturbations des entrées minimales pour changer la sortie \cite{geiger_causal_2021}. Pour cela, on effectue trois passes du dataset par perturbation : une sur les entrées non perturbées, une sur les entrées perturbées pour lesquelles on sauvegarde toutes les activations intermédiaires et une sur les entrées perturbées mais dans une version du modèle avec une activation remplacée par l'activation équivalente de la passe sur les données non perturbées. On s'intéresse alors à combien ce remplacement rapproche la sortie de celle attendue. L'activation patching est une méthode d'interprétabilité mécaniste intervention-based pour les modèles profond. Elle identifie les composants d'un modèle sensibles à une famille de perturbations des entrées minimales pour changer la sortie \cite{geiger_causal_2021}. Pour cela, on effectue trois passes du dataset par perturbation : une sur les entrées non perturbées, une sur les entrées perturbées pour lesquelles on sauvegarde toutes les activations intermédiaires et une sur les entrées perturbées mais dans une version du modèle avec une activation remplacée par l'activation équivalente de la passe sur les données non perturbées. On s'intéresse alors à combien ce remplacement rapproche la représentation du document perturbé de celle du document non perturbé. % \alh{rapprocher ? ici on a ds scores de pertinence qu'il faut réexpliquer je pense, et il faut structurer davantage le texte, avec des puces par exemple}
\cite{chen_axiomatic_2024} propose une adaptation de cette méthode pour les modèle d'extraction d'information. Les entrées sont alors des paires (question, document) et la sortie, un score de pertinence. La perturbation ne doit plus nécessairement réduire la performance du modèle sur les entrées. (On peut penser à une perturbation qui duplique les mots importants de la question si ils apparaissent dans le document.) Par conséquent, la troisième passe ne se fait plus nécessairement sur les entrées non perturbées mais sur la version des entrées ayant la meilleure performance. La version de l'activation patching de \cite{chen_axiomatic_2024} est formalisée dans l'encart \ref{box:activationPatchingIR}. \cite{chen_axiomatic_2024} propose une adaptation de cette méthode pour les modèle d'extraction d'information. Les entrées sont alors des paires (question, document) et la sortie, un score de pertinence. La perturbation ne doit plus nécessairement réduire la performance du modèle sur les entrées. (On peut penser à une perturbation qui duplique les mots importants de la question si ils apparaissent dans le document.) Par conséquent, la troisième passe ne se fait plus nécessairement sur les entrées non perturbées mais sur la version des entrées ayant la meilleure performance. %\alh{prendre le temps (une phrase en plus) d'expliquer pourquoi ça marche car c'est contre intuitif}
La version de l'activation patching de \cite{chen_axiomatic_2024} est formalisée dans l'encart \ref{box:activationPatchingIR}.
\begin{tcolorbox}[ \begin{tcolorbox}[
colback=gray!5!white, colback=gray!5!white,
...@@ -205,12 +218,12 @@ ...@@ -205,12 +218,12 @@
\begin{enumerate} \begin{enumerate}
\item Faire une passe pour toutes les paires $Q\times D$ \item Faire une passe pour toutes les paires $Q\times D$
\begin{itemize} \begin{itemize}
\item noter $o_{n}^e$ la sortie de chaque noeud $n, \forall e \in Q\times D$ \item noter $o_{n}^e$ la sortie de chaque nœud $n, \forall e \in Q\times D$
\item noter $p_D$ la performance du modèle sur les données non perturbées \item noter $p_D$ la performance du modèle sur les données non perturbées
\end{itemize} \end{itemize}
\item Faire une passe pour toutes les paires $Q\times \tilde{D}$ \item Faire une passe pour toutes les paires $Q\times \tilde{D}$
\begin{itemize} \begin{itemize}
\item noter $o_{n}^{\tilde{e}}$ la sortie de chaque noeud $n, \forall \tilde{e} \in Q\times \tilde{D}$ \item noter $o_{n}^{\tilde{e}}$ la sortie de chaque nœud $n, \forall \tilde{e} \in Q\times \tilde{D}$
\item noter $p_{\tilde{D}}$ la performance du modèle sur les données perturbées \item noter $p_{\tilde{D}}$ la performance du modèle sur les données perturbées
\end{itemize} \end{itemize}
\item On renomme $D, e, \tilde{D}$ et $\tilde{e}$ respectivement \item On renomme $D, e, \tilde{D}$ et $\tilde{e}$ respectivement
...@@ -218,15 +231,16 @@ ...@@ -218,15 +231,16 @@
\item $\hat{D}, \hat{e}, \check{D}$ et $\check{e}$ si $p_D > p_{\tilde{D}}$ \item $\hat{D}, \hat{e}, \check{D}$ et $\check{e}$ si $p_D > p_{\tilde{D}}$
\item $\check{D}, \check{e}, \hat{D}$ et $\hat{e}$ sinon \item $\check{D}, \check{e}, \hat{D}$ et $\hat{e}$ sinon
\end{itemize} \end{itemize}
Pour chaque noeud $n$ Pour chaque nœud $n$
\item Faire une passe de $Q\times\check{D}$ en remplaçant $o_{i,j}^{\check{e}}$ par $o_{n}^{\hat{e}}$ pour chaque $\check{e}$. On note la performance $\bar{p}_n$ \item Faire une passe de $Q\times\check{D}$ en remplaçant $o_{i,j}^{\check{e}}$ par $o_{n}^{\hat{e}}$ pour chaque $\check{e}$. On note la performance $\bar{p}_n$
\item $P_{n} = \frac{\bar{p}_n - p_{\hat{D}} }{p_{\check{D}} - p_{\hat{D}}}$ exprime l'impact de la perturbation sur la performance du modèle pour le noeud $n$ \item $P_{n} = \frac{\bar{p}_n - p_{\hat{D}} }{p_{\check{D}} - p_{\hat{D}}}$ exprime l'impact de la perturbation sur la performance du modèle pour le nœud $n$
\end{enumerate} \end{enumerate}
\label{box:activationPatchingIR} \label{box:activationPatchingIR}
\end{tcolorbox} \end{tcolorbox}
L'activation patching fourni trois performances par noeud avec lesquelles on peut estimer la sensibilité de chaque noeud à la perturbation. Si la sensibilité est élevée en valeur absolue, le noeud est sensible à la perturbation. Si la sensibilité est positive, le patch effectué atténue la perturbation. Si la sensibilité est négative, le patch accentue la perturbation. \md{Nouveauté à utiliser pour l'interpretation des matrices...} L'activation patching fourni trois performances par nœud avec lesquelles on peut estimer la sensibilité de chaque nœud à la perturbation. Si la sensibilité est élevée en valeur absolue, le nœud est sensible à la perturbation. Si la sensibilité est positive, le patch effectué atténue la perturbation. Si la sensibilité est négative, le patch accentue la perturbation.
%\md{Nouveauté à utiliser pour l'interpretation des matrices...}\alh{?}
\subsubsection{Implémentation de l'Activation Patching} \subsubsection{Implémentation de l'Activation Patching}
...@@ -234,15 +248,17 @@ ...@@ -234,15 +248,17 @@
MechIR permet à l'heure actuelle d'appliquer trois formes de perturbation sur les documents: MechIR permet à l'heure actuelle d'appliquer trois formes de perturbation sur les documents:
\begin{itemize} \begin{itemize}
\item \texttt{append} : Ajoute un mot fourni en paramètre à la fin des documents, \item \append : Ajoute un mot fourni en paramètre à la fin des documents,
\item \texttt{prepend} : Ajoute un mot fourni en paramètre au début des documents, \item \prepend : Ajoute un mot fourni en paramètre au début des documents,
\item \texttt{replace} : Remplace chaque occurrence d'un mot par un autre. Les deux mots sont fourni en paramètre. \item \replace : Remplace chaque occurrence d'un mot par un autre. Les deux mots sont fourni en paramètre.
\end{itemize} \end{itemize}
Pour qu'une perturbation soit pertinente, elle doit changer significativement la sortie du modèle (ie. perturbe significativement le score) sans dénaturer excessivement l'entrée. MechIR propose une visualisation préalable de la distribution des scores de pertinence attribué par le modèle sur les données et les données perturbées (voir Figure~\ref{fig:PerturbationVizMechIRDemo})pour estimer la capacité de la perturbation à impacter les scores. Une perturbation impacte significativement les sorties des paires question, document si les distributions des scores de pertinence pour les documents perturbés et non-perturbés sont significativement différentes. Pour qu'une perturbation soit pertinente, elle doit changer significativement la sortie du modèle (ie. perturbe significativement le score) sans dénaturer excessivement l'entrée. MechIR propose une visualisation préalable de la distribution des scores de pertinence attribué par le modèle sur les données et les données perturbées (voir Figure~\ref{fig:PerturbationVizMechIRDemo})pour estimer la capacité de la perturbation à impacter les scores. Une perturbation impacte significativement les sorties des paires question, document si les distributions des scores de pertinence pour les documents perturbés et non-perturbés sont significativement différentes.
Par exemple, la Figure~\ref{fig:PerturbationVizMechIRDemo} visualise les distributions des scores de pertinence pour trois perturbations (ajouter \textit{microwave} au début du document, ajouter \textit{microwave} à la fin du document et remplacer \textit{microwave} par \textit{toaster}). Le dataset utilisé est une partie du dataset Vaswani issu de la librairie irdataset \cite{hou_advancing_2025} et le modèle analysé est TAS-B \cite{hofstatter_efficiently_2021}.\\ Par exemple, la Figure~\ref{fig:PerturbationVizMechIRDemo} visualise les distributions des scores de pertinence pour trois perturbations (ajouter \textit{microwave} au début du document, ajouter \textit{microwave} à la fin du document et remplacer \textit{microwave} par \textit{toaster}. %\alh{si vous donnez les exemples, dire tout de suite que c'est sur un corpus de physique})
L'axe des abscisses correspond à la valeur prise par les scores et l'axe des ordonnées à leur densité. Plus la densité est élevée, plus il y a de scores proche de la valeur en ordonnée. La distribution des scores de pertinence des documents vis à vis des question est représentée en jaune et celle des scores pour les documents perturbés est en vert. La distribution des scores pour les documents non perturbés est identique pour les trois perturbation étant donné qu'on manipule le même dataset. Les perturbations de type \append et \replace impactent un peu les distribution des scores mais elles continuent à suivre la mème tendance. La perturbation de type \prepend impacte plus la distribution des scores de pertinence : les densité sont élevées pour les scores différent et le profil de la courbe est très différent pour les scores de documents perturbés et non perturbés. Le dataset utilisé est une partie du dataset Vaswani issu de la librairie irdataset \cite{hou_advancing_2025}, les extraits manipulés sont des abstracts d'articles de physique et le modèle analysé est TAS-B \cite{hofstatter_efficiently_2021}.\\
L'axe des abscisses correspond à la valeur prise par les scores et l'axe des ordonnées à leur densité. Plus la densité est élevée, plus il y a de scores proche de la valeur en ordonnée. %\alh{pas très clair, dire par exemple comment lire le replace dans la figure 2.4 qui a du sens}
La distribution des scores de pertinence des documents vis à vis des question est représentée en orange et celle des scores pour les documents perturbés est en vert. La distribution des scores pour les documents non perturbés est identique pour les trois perturbations étant donné qu'on manipule le même dataset. Les perturbations de type \append et \replace impactent un peu les distribution des scores mais elles continuent à suivre la mème tendance. La perturbation de type \prepend impacte plus la distribution des scores de pertinence : les densité sont élevées pour les scores différent et le profil de la courbe est très différent pour les scores de documents perturbés et non perturbés.
\begin{figure} \begin{figure}
\centering \centering
...@@ -251,16 +267,16 @@ ...@@ -251,16 +267,16 @@
\label{fig:PerturbationVizMechIRDemo} \label{fig:PerturbationVizMechIRDemo}
\end{figure} \end{figure}
Une fois la perturbation choisie, on peut appliquer l'activation patching pour chaque noeud du modèle choisi et visualiser les sensibilité à la perturbation de chacun d'entre eux (voir Figure~\ref{fig:SensibiliteVizMechIRDemo}). Chaque noeud du modèle est identifié à l'aide ses coordonnées (numéro de couche, position dans la couche). Le score du noeud correspond à la moyenne des sensibilité obtenu pour chaque document. Plus le noeuds à un score élevé en valeur absolue (ie. plus la couleur est foncée), plus la perturbation impacte son comportement. Cela signifie que la modification porte sur une information utilisée par le noeud dans le modèle. Si le score est positif (resp. négatif), le patching atténue (resp. accentue) la perturbation en moyenne. Une fois la perturbation choisie, on peut appliquer l'activation patching pour chaque nœud du modèle choisi et visualiser les sensibilité à la perturbation de chacun d'entre eux (voir Figure~\ref{fig:SensibiliteVizMechIRDemo}). Chaque nœud du modèle est identifié à l'aide ses coordonnées (numéro de couche, position dans la couche). Le score du nœud correspond à la moyenne des sensibilité obtenu pour chaque document. Plus le nœuds à un score élevé en valeur absolue (ie. plus la couleur est foncée), plus la perturbation impacte son comportement. Cela signifie que la modification porte sur une information utilisée par le nœud dans le modèle. Si le score est positif (resp. négatif), le patching atténue (resp. accentue) la perturbation en moyenne.
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=0.8\textwidth]{images/ActivationPatchingAllHeadExempleMechIR.png} \includegraphics[width=0.8\textwidth]{images/ActivationPatchingAllHeadExempleMechIR.png}
\caption{Matrices de sensibilité des noeuds du modèle TAS-B pour la première perturbation de l'exemple} \caption{Matrices de sensibilité des nœuds du modèle TAS-B pour la première perturbation de l'exemple}
\label{fig:SensibiliteVizMechIRDemo} \label{fig:SensibiliteVizMechIRDemo}
\end{figure} \end{figure}
Dans la Figure~\ref{fig:SensibiliteVizMechIRDemo}, on remarque principalement le noeud (1,6). Une interprétation possible est que le patching du noeud diminue fortement l'estimation de pertinence effectuée par le modèle sur les documents non perturbé. \md{pas satisfaisant} Dans la Figure~\ref{fig:SensibiliteVizMechIRDemo}, on remarque principalement le nœud (1,6). Une interprétation possible est que le patching du nœud diminue fortement l'estimation de pertinence effectuée par le modèle sur les documents non perturbé. %\md{pas satisfaisant}
\md{RQ : ajouter la distinction entre QA (et autres tâches de RAG) et IR et leur lien} %\md{RQ : ajouter la distinction entre QA (et autres tâches de RAG) et IR et leur lien}
\ No newline at end of file \ No newline at end of file
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