📌 À connaître pour la sécurité et la gestion des données dans les projets IA
Avec l’essor des agents IA, copilotes et assistants automatisés, le terme RAG revient souvent.
Je vous partage cet excellent article explicatif que je viens de lire dans un document du Campus Cyber: " l'analyse des attaques de système IA"
C'est quoi le système RAG ?
L'intelligence artificielle (IA) générative excelle dans la création de réponses textuelles basées sur de grands modèles de langage, où l'IA est entraînée sur un grand nombre de données. La bonne nouvelle est que le texte généré est souvent facile à lire et fournit des réponses détaillées.
La mauvaise nouvelle est que les informations utilisées pour générer la réponse sont limitées aux informations utilisées pour entraîner l'IA, souvent un LLM. Les données du LLM peuvent être périmées depuis des semaines, des mois ou des années, sans capacité simple de les mettre à jour.
De plus, dans un chatbot d'IA d'entreprise, elles peuvent ne pas prendre en compte des informations spécifiques aux produits ou services de l'entreprise.
Cela peut conduire à des réponses incorrectes qui érodent la confiance en la technologie de certains clients et collaborateurs
Naissance des RAG - Génération Augmentée de Récupération (Retrieval Augmented Generation) :
C'est là qu'intervient la RAG : elle fournit un moyen d'optimiser le résultat d'un LLM avec des informations ciblées, sans modifier le modèle sous-jacent lui-même. Le RAG permet d’utiliser les données de l’entreprise (ex : base documentaire des produits), en tant que source de données pour le LLM.
C’est donc une technique qui améliore la qualité de l'IA générative en permettant aux grands modèles de langage (LLM) d'exploiter des ressources de données supplémentaires sans réentraînement (qui, rappelons-le, est très coûteux du fait des volumes de données impliquées et de la taille des modèles).
Comment fonctionne une RAG
Corpus : la première étape consiste à rassembler les informations ciblées, les ressources de données supplémentaires que l’on souhaite mettre à disposition du LLM inclus dans notre système IA. Elles forment notre corpus documentaire ou base de connaissances.
Ces données sont ensuite traitées afin de devenir exploitables par notre RAG :
• Découpage (chunks) : les documents du corpus sont découpés en courts passages. Certains de ces passages seront fournis en entrée du LLM pour aider à la génération d’une réponse appropriée (c’est le contexte du prompt). Ils ne peuvent pas être trop conséquents puisque les entrées fournies aux LLMs ne peuvent pas dépasser une certaine quantité, déterminée par le contexte d’un LLM. La fenêtre de contexte d'un LLM peut être considérée comme l'équivalent de sa mémoire de travail. Elle détermine la durée d'une conversation qu'il peut mener sans oublier les détails de l'échange précédent. Elle détermine également la taille maximale des documents qu'il peut traiter en même temps.
• Représentation numérique (embeddings) : le contenu sémantique de chacun des passages est converti sous forme de vecteurs.
Cette représentation numérique permet de conserver le sens des mots, puisque par exemple des mots au sens proche seront transformés en vecteurs avec des caractéristiques communes, ayant une distance vectorielle faible.
• Base vectorielle (vector store) : ces vecteurs sémantiques sont stockés dans une base de données spécialement conçue pour les calculs vectoriels, qui sera interrogée en complément du prompt de l’utilisateur.
Lorsqu’un utilisateur interroge l’IA, la RAG entre en jeu pour fournir au service d’IA des compléments d’informations qui permettra au LLM sous-jacent de répondre en se basant sur les informations du corpus documentaire :
• Représentation numérique (embeddings) : la question de l’utilisateur est convertie en vecteurs sémantiques, avec la même méthode que celle utilisée précédemment pour créer la base vectorielle du corpus.
• Recherche de similarité : le module de recherche utilise des mesures de similarité pour comparer les vecteurs de la question aux vecteurs des documents de la base de données. Les vecteurs correspondants aux passages les plus « proches » de la question sont sélectionnés pour la génération de la réponse.
Une fois sélectionnés, ces vecteurs sont reconvertis en texte naturel, c’est-àdire aux passages correspondants de documents du corpus initial.
• LLM : le LLM utilise la question et les extraits récupérés par la recherche précédente pour générer une réponse pertinente.
Avantages d’utiliser une RAG
• Si le processus de formation du LLM est long et coûteux, c'est tout à fait l'inverse pour les mises à jour du RAG. De nouvelles données peuvent être chargées et traduites en vecteurs de manière continue et incrémentielle.
• La RAG présente aussi l'avantage d'utiliser une base de données vectorielle, ce qui permet au service d’IA de fournir la source spécifique des données citées dans sa réponse, ce que les LLMs ne peuvent pas faire. Par conséquent, s'il y a une inexactitude dans le résultat de l'IA, le document qui contient cette information erronée peut être rapidement identifié et corrigé, puis l'information corrigée peut être introduite dans la base de données vectorielle.
Attaques spécifiques aux RAG
• Les systèmes RAG accèdent souvent à de grandes bases de données, ce qui soulève des préoccupations concernant la sécurité des données et la confidentialité. Il est crucial de protéger les informations sensibles tout en maintenant la fonctionnalité du système, ce qui nécessite un équilibre délicat.
• De la même façon, chaque manipulation de ces données est un point d’entrée potentiel pour les attaquants : la représentation numérique, la recherche dans la base de données vectorielles, la transmission des données sélectionnées vers le LLM, et enfin l’interprétation des données sélectionnées.
• Le modèle LLM inclus dans le service d’IA quant à lui est vulnérable aux attaques classiques sur les systèmes d’IA.