\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 \md{reference valable à trouver}. 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 grandir 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}\begin{center}
            \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{center}\end{figure}

        Les systèmes RAG peuvent être appliqués à de nombreuses tâches générant différents types de données. \md{liste et definition des pricipales tâches aperçues durant le stage} 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}.



    \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 \md{refs!} 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).

        \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 \md{[98 ds Fan+24]} propose de reformuler la question à l'aide d'un autre LLM pour la désambiguïser. L'approche de Query2Doc \md{[156 dans Fan+24]} 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.\\
        \md{Ajouter une remaque sur l'echelle des documents (chunk, token, entity)}

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




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


\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}
        \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é attendue 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 \md{\cite{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 distribution des scores de pertinences pour trois perturbation (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}\begin{center}
                \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{center}\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}).

            \begin{figure}
                \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 identifie chaque noeud du modèle à l'aide ses coordonnées (numéro de couche, position dans la couche). Le score affiché 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 le comportement du noeuds. Cela signifie que la modification portait sur une information utilisée par le noeud dans le modèle. \md{à finir}
