Commit f5e7b69c authored by Delvallez Delvallez's avatar Delvallez Delvallez

plan détaillé rapport V1

parent e7aa6f1f
......@@ -6,6 +6,8 @@
*.snm
*.synctex.gz
*.toc
*.log
*.fls
#*_files/
# Quarto
......
......@@ -13,4 +13,193 @@
- Cohere
- RAG
- llama3
- explicabilité rapidement
\ No newline at end of file
- explicabilité rapidement
# Récapitulatif du stage
## Introduction
### Contexte du stage
- LIFO
- Challenge RAG@EvalLLM
- Sorties et Événements au cours du stage
- TransIA à Tours [Cahier Minerve]
- Journée GDR TAL-I (Jussieu) [Cahier Minerve]
- 2nd Symposium on Mental Health and AI [R16/02]
- Place du Numérique (ambassadrice)
- Journée CA (présentation) [Cahier Minerve]
### Outils utilisés
- CaSciModOT et Mirev pour l'execution des architectures et protocoles long/lourds
- HuggingFace, PyTorch, TransformerLens
- Scripts python et Notebooks Python
- git, gogit
- IA : reformulation, exploration de la littérature, traduction, rédaction de scripts simple (parfois améliorés à la main)
### Difficultés Techniques
- Contraintes d'outil de CaSciModOT (conda-forge)
- Reprendre le code de qq1
- pas de contact (code recherche)
- montée en version nécessaire pour l'exploitation des librairies (conda-forge)
- Conflit de requirements entre deux pans du projet (difficultés à installer un environnement fonctionnel)
- Modèles entrainés sur des données anglophone -> données à traiter francophones
### Introduction du sujet
TODO
## État de l'art
### RAG et RALLM
- définition, enjeux visés
- RAG vs RALLM [Fan+23]
- Architecture RAG (intuition et archi complete) [Fan+23, R9/02]
- extraction (base à préparer si bi-encodeur)
- generation
- amélioration
- intégration
- Tâches associées (QA, IR) [Git-Csv]
- Quelques approches vues [R16/02]
- Multimodal [Lui+25]
- Chain of Thought [Xu+24]
- Gestion BDD dynamique
- BDD sparse et interprétable
- Archis et modèle pour la suite [R24/04]
- E5 [Wang+24a], mE5 [Wang+24b]
- RAG4HN [Tran+25]
### Trustworthy RAG [R9/02]
- Définition et composantes de Trustworthy
- 2 temps pour le RAG (Extraction et Génération)
- Métriques
- Interprétation et Explication
- Paysage [Somvanshi+2026] + se situer
- Activation Patching [Chen+24] [R30/03]
- MechIR [Parry+25]
- Perturbation
- Interprétation des graphiques/ données
## Construction d'un dataset [R5/05, R20/05]
- Données dont on dispose
- Structure de données visée (motivations à cette structure : taille des documents/textes, format une question, 50% de +/-) [RAGRIGHTS-Specs]
- Outils d'extraction et mise en forme du texte (PyMuPDF4LLM, Langchain-text-splitter)
## Adaptation de RAG4HN [R20/05, Tran+25]
- Présentation de l'Archi (si pas déjà fait)
- Motivation des modifications (morceaux inutiles, format de données différent, reranking)
## Cartographie d'un modèle d'extraction d'information (nom à trouver)
### Méthodologie
- rappel de l'objectif
- Méthode perturbation [ragrights-protocole]
- stats
- langue de spécialité
- niveaux de perturbation
- type de perturbation
- questionner les biais à la construction (dû à la compréhension humaine inconsciente)
- Méthode application de activation patching [ragrights-protocole]
### Résultats et analyse
- comportements observés & interprétation
- Préconisations d'usage
- couverture de la perturbation
- activation des dernières couches
- définition du critère de sensibilité
- les moyens/ méthodes de visualisation des données
- utiliser la question comme document pour avoir un témoin ???
## Perspectives
- Reprendre les expériences avec les préconisations
- Généraliser le protocole pour les dataset à plusieurs questions ??
- Élargir les préconisations et le protocole pour la langue de spécialité (pas juste le vocabulaire)
- Proposer un protocole d'évaluation de l'importance d'un noeud identifié
- Transformer ces résultats en explication
- formulation
- exploitation lors de l'usage
- Intégration des explications dans l'architecture
- mise en perspective des explications dans le modèle
- explicabilité sur les autres composants du modèle
- Exploitation des explications pour l'affinement/ amélioration du modèle d'extraction
--------------------------------------------------------------------------------------
# Plan (gros grain)
Introduction
- Environnement du stage
- Outils utilisés
- **Difficultés techniques** (à placer autrement)
- Sujet du stage
État de l'art
- RAG & RALLM
- Le problème de la confiance pour les systèmes de RAG
Travaux réalisés
- Construction d'un dataset
- Adaptation du modèle RAG4HN
- Cartographie d'un modèle d'extraction d'information
- Méthodologie
- Résultats et Analyse
- Perspectives ?
- Conclusion et Perspectives
# Détail des sous parties
## Environnement du stage
- Stage à lieu au LIFO, dans l'équipe CA, encadré par ...
- Stage de fin de master d'informatique Minerve GPEx
- Challenge@EvalLLM comme cas d'usage, participation envisagée mais timing pas OK
- 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) dans la société
- 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
- 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 de détection, de prise en charge)
- 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 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 contrôle-t-elle?
- Présentation aux journées d'équipe CA
## Outils utilisés au cours du stage
- 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)
## Introduction du sujet du stage
TODO
## Générateurs et Modèles de Langue Augmentés par l'Extraction (RAG et RALLM)
- **Besoin et définition**
- Les modèles profonds apprennent sur les données [ref à récupérer de Lewis+20]
- Le problème des modèles génératifs : hallucination et connaissance bornée dans le temps [ref à récupérer de Lewis+20]
- Il y a quelques années, on a cherché à associer un base de connaissances à ces modèles [Lewis+20] (= définition de RAG)
- Parmis ces approches, on retrouve le cas des modèles de langue : RALLM
- **L'architecture RAG** 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)
- **RAG amélioré**??? Au delà de l'innovation de l'architecture, on retrouve des innovations sur plusieurs caratéristiques de ces modèles : [R24/04] [R16/02]
- Multimodal [Liu+25]
- Chain of Thought [Xu+24]
- Gestion BDD dynamique [ref à trouver dans R24/05]
- BDD sparse et interprétable [Prouteau]???
- **Modèle et Architecture utilisées durant le stage** 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])
## Construire des systèmes RAG de confiance
- **Trustworthy AI** 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 : ...
- **Explicabilité dans le contexte du RAG** 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 ??
- **Interprétabilité Mécaniste** [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)
- **Activation patching**
- 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
\section{Objectifs}
\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}
\section{Méthodologie}
\subsection{Construction des perturbations}
\begin{verbatim}
- on s'intéresse aux perturbations de type replace pour travailler sur l'impact des mots importants
(car liés au vocabulaire de spécialité) en les replaçant
- On propose plusieurs candidats au remplacement classé en 4 niveaux ...
- Le choix des remplaçant est fait par jugement humain
- Le choix des mots à remplacer se fait à l'aide de
- fréquence dans l'échantillon de données sélectionné
- IDF
- appartenance au vocabulaire de spécialité (jugement humain)
- présence du mot dans la question étudiée (cas du dataset à 1! question)
- pour augmenter le nombre de document perturbé et limiter l'impact d'un mot seulement dans la
cartographie, on propose un nouveau type de perturbation : full_replace
\end{verbatim}
\subsection{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 questoin 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é
\end{verbatim}
\subsection{Interprétation des résultats de l'Activation Patching}
\begin{verbatim}
SI PAS DÉJÀ FAITE DANS SOTA sur MechIR
- graphique + accompagnement à la lecture (on obtient une sensibilité de chaque
noeuds pour chaque paire (Question, document), on visualise la moyenne)
- é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
- L'identification des noeuds sensibles doit reposer sur un critère commun. On propose
un critère de sensibilité ...
- Visualisation des noeuds sensibles commun à plusieurs perturbation (matrice des noeuds sensibles)
-> croiser les différentes caractéristiques (mot remplacé, type, niveau)
-> critique des noeuds sensibles de la dernière couche
\end{verbatim}
\section{Résultats et Analyse}
\subsection{Application à la cartographie du vocabulaire de la défense français dans mE5}
\begin{verbatim}
- Grand nombre de noeuds de la dernière couche du modèle
- pas de noeuds clairement associé au vocabulaire
...
\end{verbatim}
\subsection{Préconisations d'utilisation}
\begin{verbatim}
- des perturbations qui couvrent tous ou très grande partie des documents étudiés
- utiliser la question comme document témoin
\end{verbatim}
\section{Perspectives d'évolution de la méthode proposée}
\begin{verbatim}
- échelle pour situer le niveau d'un mot candidat remplaçant en fonction du mot remplacé
- critère d'identification du vocabulaire de spécialité
- intégration d'autres informations au critère de sensibilité
\end{verbatim}
\ No newline at end of file
TODO
\ No newline at end of file
\section{Données du Challenge RAG@EvalLLM}
\begin{verbatim}
Présentation des données :
- pdf à traiter sans structure normée du contenu
- majoritairement en français sauf quelques uns en anglais
- peuvent contenir des images
Présentation de la tâche du challenge (sauf si fait dans introduction)
- Identification des documents pertinents pour une question (phrase
parfois complexe ou suite de mots clés)
- questions fournies au dernier moment
\end{verbatim}
\section{Structure de données visée}
\begin{verbatim}
Base de données:
- Paires
- liste des champs et justification
Choix pour datasets
- Dataset avec des paires question-document (questions différentes et
différents pdf, taille des documents, répartition positif/négatif)
- Dataset avec une seule question (construction à partir de 3 pdf)
[description du dataset dans les expés et les specs]
- motivation (reprendre l'expé présentée par MechIR, faciliter la création)
- limites (biais, diversité ~> généralisabilité)
=> Placer le nom des outils utilisés (PyMuPDF4LLM et langchain.text_splitter.MarkdownSplitter)
\end{verbatim}
\section{Environnement du stage}
\begin{verbatim}
- Stage à lieu au LIFO, dans l'équipe CA, encadré par ...
- Stage de fin de master d'informatique Minerve GPEx
- Challenge@EvalLLM comme cas d'usage, participation envisagée mais timing pas OK
- 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)
dans la société
- 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
- 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
de détection, de prise en charge)
- 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
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
contrôle-t-elle?
- Présentation aux journées d'équipe CA
\end{verbatim}
\section{Outils utilisés durant le stage}
\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}
\section{Contexte et enjeux du sujet}
\begin{verbatim}
TODO
\end{verbatim}
\documentclass[french]{report}
% valeur possibles : article, proc, book, report, letter, slides
% options possibles : twosides (recto-verso), 12pt, 11pt, ... (taille de police), draft (brouillon)
% pour l'edition de document en français:
\usepackage[utf8]{inputenc} % codage du fichier source
\usepackage[T1]{fontenc} % codage des fontes TeX
\usepackage{babel} % document en français
% Mise en page, propreté de rédaction
\usepackage[bottom=2cm,top=2cm,right=2cm,left=2cm]{geometry} % pour les marges
\usepackage{multicol} % pour ecrire sur plusieurs colones localement
\usepackage{xcolor} %metre du texte en couleur
% ecrire des maths
\usepackage{amsmath, amsfonts, amssymb}
%%%%%%% COMMANDES
\newcommand{\N}[1]{\mathbb{N}^{#1}}
\newcommand{\alh}[1]{\textcolor{teal}{#1}}
\newcommand{\md}[1]{\textcolor{cyan}{#1}}
% Infos du document
\title{Interprétabilité pour l'Extraction d'Information dans les systèmes de RAG}
\author{Marine DELVALLEZ}
\date{\today}
\begin{document}
\maketitle
\chapter*{Remerciements}
\tableofcontents
\chapter{Introduction}
\input{introduction/introduction.tex}
\chapter{État de l'art}
\input{sota/sota.tex}
\chapter{Construction d'un dataset}
\input{dataset/dataset.tex}
\chapter{Adaptation du modèle RAG4HN}
\input{modele/modele.tex}
\chapter{Cartographie d'un modèle d'extraction d'information}
\input{cartographie/cartographie.tex}
\chapter{Conclusions et Perspectives}
\input{conclusion/conclusion.tex}
\end{document}
\ No newline at end of file
\section{Architecture RAG4HistoricalNewspapers}
\begin{verbatim}
Reprendre [Tran+25]
\end{verbatim}
\section{Adaptation du modèle pour le stage}
\begin{verbatim}
- Suppression de la partie WebSearch (hors sujet)
- Suppression de la première extraction sur la base des titres
(incompatible avec le format des données du challenge)
- Passage de E5 à mE5 (on manipule du Français) [/!\ à vérifier]
- 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)
\end{verbatim}
\ No newline at end of file
\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 de Lewis+20]
- Le problème des modèles génératifs : hallucination et connaissance bornée dans
le temps [ref à récupérer de Lewis+20]
- Il y a quelques années, on a cherché à associer un base de connaissances à ces
modèles [Lewis+20] (= définition de RAG)
- Parmis ces approches, on retrouve le cas des modèles de langue : RALLM
\end{verbatim}
\subsection{L'architecture RAG}
\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}
\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 [ref à trouver dans R24/05]
- 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{Systèmes RAG 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 : ...
\end{verbatim}
\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}
\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}
\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}
\ No newline at end of file
# Reformatage du GIT
- Biblio
- Réunions
- Communications
- Rapports S9
- Slides S9
- Slides Journées CA
- Rapport S10
- Slides S10
- Travaux
- Architecture RALLM adaptée
- create_data
- modèle complet
- Cartographie de mE5 avec MechIR
- perturbation
- GAP
- tools
- evaluation
\ 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