\section{Systèmes de Génération et Grands Modèles de Langue Augmentés par Extraction (RAG et RALLM)}

    \subsection{Besoin et Définition}
%         \begin{verbatim}
% - Les modèles profonds apprennent sur les données [ref à récupérer]
% - Le problème des modèles génératifs : hallucination et connaissance bornée dans 
% le temps [ref à récupérer]
% - Il y a quelques années, on a cherché à associer un base de connaissances à ces 
% modèles [Lewis+20] (= définition de RAG)
% - Ces approches peuvent être appliquées aux tâches et modèles du TALN : RALLM
%         \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 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}

        \begin{figure}
            \centering
            \includegraphics[width=0.6\textwidth]{images/DefRAG.drawio.png}
            \caption{Schema de l'architecture RAG proposée par \cite{lewis_retrieval-augmented_2020}}
            \label{fig:ArchiRAG}
        \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, ...)



    \subsection{L'architecture des modèles RA-LLM}

        \md{Cette sous-section est un résumé de \cite{fan_survey_2024}}

%         \begin{verbatim}
% 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 
% csv sur RAGRights)
% - Avec le temps, l'idée de [Lewis+20] a été adaptée et augmentée de composants 
% supplémentaires
% - [Fan+23] propose la structure générique ... (exploiter slides Séminaire CA)
%         \end{verbatim}


        L'intuition de compléter un modèle génératif avec une base de donnée comme proposé par \cite{lewis_retrieval-augmented_2020} a été reprise à plusieurs reprises. Des stratégies et éléments complémentaires ont été ajoutés à ces systèmes pour faciliter la symbiose entre les deux composants principaux. \cite{fan_survey_2024} propose une nouvelle généralisation de cette famille de modèle illustré par la Figure~\ref{fig:ArchiRALLM}

        \begin{figure}
                \includegraphics[width=\textwidth]{images/DefRAGAvance_integration.drawio.png}
                \caption{Architecture généralisée des systèmes RA-LLM proposée par \cite{fan_survey_2024}}
                \label{fig:ArchiRALLM}
        \end{figure}

        \paragraph{Extracteur} On peut distinguer les extracteurs (aussi appelés retriever) en deux groupes. Les \textit{Sparse retrievers} tels que TF-IDF ou BM25 \cite{sparck_jones_statistical_1972,lu_bm25s_2024} exploitent des statistiques sur les documents pour identifier les plus pertinents au regard de la question. Les \textit{Dense retrievers} projettent les documents et les questions dans un espace latent au sein duquel les documents pertinents sont identifiés. On retrouve deux principaux fonctionnements pour ces extracteurs. Les \textit{bi-encodeurs} projettent les documents et les questions séparément alors que les \textit{cross-encodeurs} les projettent sous forme de paires (question, document) et fournissent directement le score de pertinence.\\
        Un hyper-paramètre important pour les extracteurs est la granularité d'extraction. Il correspond à la taille des extraits répertoriés dans la base de donnée. Les échelles les plus courantes sont celles du document, du passage et du token. On parle de \textit{chunk retrieval} pour les deux premières et de \textit{token retrieval} pour la troisième. On parle d'\textit{entity retrieval} lorsque la base est construite sous l'angle de la connaissance et non celui du langage.

        \paragraph{Augmentation pré-extraction} Pour permettre une meilleure exploitation des informations disponibles dans la question, certains travaux proposent différentes stratégies de complétion et/ou reformulation de la question sous forme d'une requête. Le framework Rewrite-Retrieve-Read \cite{ma_query_2023} propose de reformuler la question à l'aide d'un autre LLM pour la désambiguïser. L'approche de Query2Doc \cite{wang_query2doc_2023} consiste en générer des pseudo-documents qui pourraient correspondre aux documents pertinents à extraire et de les ajouter à la question avant de donner le tout à l'extracteur. L'objectif est de fournir des indices supplémentaires pour assurer une meilleure pertinence des documents extraits.
        

        \paragraph{Augmentation post-extraction} Pour que les documents extraits soient exploités le mieux possible, plusieurs travaux s'intéressent à des techniques d'augmentation de cet ensemble d'extraits. Cela peut passer par le classement des documents du plus pertinent eu moins pertinent, le ré-ajustement du classement lorsqu'il existe, la combinaison des résultats de plusieurs extracteurs, la reformulation et/ou la synthèse des documents extraits.

        \paragraph{Générateur} \cite{fan_survey_2024} distingue les générateurs en deux groupes en fonction de l'accessibilité des paramètres : \textit{parameter accessible} pour les modèles locaux modifiables pour lesquels on dispose des paramètres et \textit{parameter inaccessible} pour les modèles dont les paramètres ne sont pas publics, qui sont généralement accessibles par API.

        \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,...).

        \md{Parler de l'entrainement de ces architectures ?}


    \subsection{Architectures aperçues au cours du stage}

%         \begin{verbatim}
% Au delà de l'innovation de l'architecture, on retrouve des innovations sur plusieurs 
% caractéristiques de ces modèles : [R24/04] [R16/02]
% - Multimodal [Liu+25]
% - Chain of Thought [Xu+24]
% - Gestion BDD dynamique [Zhu25](https://arxiv.org/abs/2508.05662)
% - BDD sparse et interprétable [Prouteau]???
%         \end{verbatim}

        Au delà des tentatives de perfectionnement des systèmes RAG par la conception de nouvelles approches d'amélioration des entrées et des extraits et de nouvelles techniques d'intégration, cette architecture est aussi concernée par les problématiques de la gestion des données multimodales ou à flux continu, la résolution de tâches nécessitant un raisonnement long ou poussé et les enjeux d'interprétabilité et d'impact environnemental.

        \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.

        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.

        \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.


    \subsection{Architecture et Modèles utilisées au cours du stage}

%         \begin{verbatim}
% Dans le cadre du stage, 
% - travailler sur une adaptation du modèle RAG4HN. [Tran+25] 
% - _description de l'architecture RAG4HN_ + parallèle avec l'architecture générique 
% de [Fan+23]
% - L'extracteur de RAG4HN est mE5 [Wang+25b] (version multilingue de E5 [Whang+25a])
%         \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.

        \begin{figure}
            \includegraphics[width=\textwidth]{images/RAGHN.drawio.png}
            \caption{Architecture de RAG4HistoricalNewspapers \cite{tran_retrieval_2024}}
            \label{fig:RAG4HN}
        \end{figure}

        L'extracteur utilisé dans RAG4HistoricalNewspapers utilise l'encodeur mE5-small. La famille de modèles E5 proposée par \cite{wang_text_2022} d'embedding de textes. Leur entraînement est fait par contrastive learning à partir du dataset CCPairs conçu à l'occasion pour les versions anglophones et un échantillon de datasets multilingues pour les versions multilingues \cite{wang_multilingual_2024}. 

\section{Interprétabilité pour les systèmes de RAG}

        Les systèmes RAG et RA-LLM comme une grande partie des modèles profonds actuels sont opaques. Il est difficile voire impossible de suivre leur raisonnement lors de leur utilisation. Dans certains contextes, cette opacité est problématique car les décisions prises peuvent avoir des conséquences importantes. Cette problématique illustre le besoin d'une Intelligence artificielle de confiance.

    \subsection{Trustworthy AI}

%         \begin{verbatim}
% La définition d'IA de confiance (Trustworthy AI) tend à varier en fonction des situation
% et des utilisations de cette expression. Danss le contexte du Machine Learning, on désigne 
% l'IA de confiance comme l'ensembles des systèmes d'IA dans lesquels il est légitime (dans 
% le sens humainement entendable) d'avoir confiance. Le NIST (National Institute of Standards 
% 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}

        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)):

        \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[Intimité] Une IA de confiance doit prévenir des risques pour les données des utilisateurs ainsi que pour les données sensibles contenues dans le modèle (issues de l'apprentissage ou de la base de donnée)
                \item[Explicabilité] Le processus de décision d'une IA de confiance doit être transparent et compréhensible pour l'utilisateur.
                \item[Justesse] Une IA de confiance doit minimiser les biais.
                \item[Justifiabilité] Une IA de confiance doit pouvoir justifier son bon comportement et notamment sa capacité à respecter les réglementations
                \item[Sécurité] Une IA de confiance doit détecter et prévenir les usages malicieux et cherchant à nuire.
        \end{description}

        Dans la suite, on s'intéresse aux différentes stratégies pour améliorer l'explicabilité des systèmes RAG et RA-LLM. 


    \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}
% 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 
% de l'association/intégration des deux)
% - Métrique ??
%         \end{verbatim}

        L'explicabilité de l'intelligence artificielle, vise à rendre humainement compréhensible les raisons pour lesquelles un modèle ou système génère une certaine sortie. \cite{garouani_investigating_2024,bell_its_2022}. 
        
        % \color{gray}
        % Dans le contexte de l'explicabilité des systèmes RAG, \cite{ni_towards_2025} distingue trois temps : l'explication de l'extracteur, l'explication du générateur et la mise en perspective de ces deux éléments. \md{Sachant qu'il faut aussi compter les autres composants, il ne faut peut être pas garder cette idée.}

        % \paragraph{Explicabilité pour les extracteurs} Lorsqu'on se concentre sur l'extraction des document dans un modèle de RAG, on retrouve une tâche d'extraction d'information. \cite{ni_towards_2025} distingue quatre approches d'explication des modèles d'extraction d'information. Les méthodes \textit{post-hoc} construisent des explications à partir des résultats fournis par le modèle sans s'intéresser à l'entraînement ni la conception du modèle étudié. Les méthodes \textit{basées sur les axiomes}, exportent les méthode d'extraction d'information axiomatique pour expliquer d'autres modèles. Les méthodes de \textit{probing} cherchent à localiser les connaissances et les compétences dans les poids et l'espace latent d'un modèle. Pour finir, Certains modèles sont \textit{interprétables by-design} : leur définition est une explication de leur fonctionnement.

        % \color{black}

        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?}

        


    \subsection{Interprétabilité Mécaniste}
%         \begin{verbatim}
% [Somvanshi+25]
% - Interprétabilité vs Explicabilité
% - Définition d'Interprétabilité Mécaniste et approches (Manual Circuit Tracing,
% *Intervention-based technique*, Representation analysis, Toy Model and synthetic tasks)
%         \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.\\
        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.

        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{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 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 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 \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}. 


    \subsection{Activation Patching}

%         \begin{verbatim}
% - Définition de activation patching [Chen+24] [R30/04] [Séminaire CA]
% - MechIR [Parry+25] 
% - Perturbation
% - Données produites, visualisation et interprétation des graphiques
%         \end{verbatim}

        \subsubsection{Définiton 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.

            \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}. 

            \begin{tcolorbox}[
                colback=gray!5!white,
                colframe=gray!75!black,
                title=Activation Patching pour l'Extraction d'Information \cite{chen_axiomatic_2024}]

                Soit $Q \times D \subset \mathcal{Q}\times\mathcal{D}$  l'ensemble des paires question, document. Soit $Q \times \tilde{D}$ le même ensemble mais avec les documents perturbés à la place 

                \begin{enumerate}
                    \item Faire une passe pour toutes les paires $Q\times D$
                    \begin{itemize}
                        \item noter $o_{n}^e$ la sortie de chaque noeud $n, \forall e \in Q\times D$
                        \item noter $p_D$ la performance du modèle sur les données non perturbées
                    \end{itemize} 
                    \item Faire une passe pour toutes les paires $Q\times \tilde{D}$
                    \begin{itemize}
                        \item noter $o_{n}^{\tilde{e}}$ la sortie de chaque noeud $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
                    \end{itemize}
                    \item On renomme $D, e, \tilde{D}$ et $\tilde{e}$ respectivement
                    \begin{itemize}
                        \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
                    \end{itemize}
                    Pour chaque noeud $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$
                \end{enumerate}

                \label{box:activationPatchingIR}
            \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...}

        \subsubsection{Implémentation de l'Activation Patching}

            \cite{parry_mechir_2025} propose MechIR, une implémentation en python des outils permettant d'appliquer les méthodes d'interprétabilité mécaniste à des modèles PyTorch et des modèles issus de HuggingFace. MechIR permet notamment de mettre en place l'activation patching comme proposé par \cite{chen_axiomatic_2024}.

            MechIR permet à l'heure actuelle d'appliquer trois formes de perturbation sur les documents:
            \begin{itemize}
                \item \texttt{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 \texttt{replace} : Remplace chaque occurrence d'un mot par un autre. Les deux mots sont fourni en paramètre.
            \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.
            
            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}.\\
            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.

            \begin{figure}
                \centering
                \includegraphics[width=0.8\textwidth]{images/MechIRDemo_PerturbationsInfluence_TABSB-Vaswani.png}
                \caption{Distribution des scores de pertinences pour trois perturbation sur les dataset Vaswani et le modèle TAS-B}
                \label{fig:PerturbationVizMechIRDemo}
            \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.

            \begin{figure}
                \centering
                \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}
                \label{fig:SensibiliteVizMechIRDemo}
            \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}


            \md{RQ : ajouter la distinction entre QA (et autres tâches de RAG) et IR et leur lien}