Connect with us

Intelligence artificielle

Une plongée en profondeur dans la génération augmentée de récupération dans les LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Imaginez que vous êtes un analyste et que vous avez accès à un grand modèle de langage. Vous êtes enthousiaste à l’idée des perspectives qu’il offre pour votre flux de travail. Mais ensuite, vous lui posez des questions sur les derniers cours des actions ou le taux d’inflation actuel, et il vous répond :

“Je suis désolé, mais je ne peux pas fournir de données en temps réel ou postérieures à la date de fin de formation. Mes dernières données de formation ne remontent qu’à janvier 2022.”

Les grands modèles de langage, malgré leur puissance linguistique, manquent de capacité à comprendre le « maintenant ». Et dans un monde en constante évolution, « maintenant » est tout.

Les recherches ont montré que les grands modèles de langage pré-entraînés (LLM) sont également des répertoires de connaissances factuelles.

Ils ont été formés sur tellement de données qu’ils ont absorbé un grand nombre de faits et de chiffres. Lorsqu’ils sont affinés, ils peuvent obtenir des résultats remarquables sur une variété de tâches de traitement du langage naturel.

Mais voici l’astuce : leur capacité à accéder et à manipuler ces connaissances stockées n’est pas parfaite. Surtout lorsque la tâche en question est intensive en connaissances, ces modèles peuvent être dépassés par des architectures plus spécialisées. C’est comme avoir une bibliothèque avec tous les livres du monde, mais sans catalogue pour trouver ce dont vous avez besoin.

Mise à niveau de la navigation de ChatGPT d’OpenAI

La récente annonce d’OpenAI concernant la fonctionnalité de navigation de ChatGPT constitue un progrès significatif dans le sens de la génération augmentée de récupération (RAG). Avec ChatGPT capable de parcourir Internet pour obtenir des informations actuelles et autorisées, cela reflète l’approche RAG consistant à extraire dynamiquement des données de sources externes pour fournir des réponses enrichies.

https://twitter.com/OpenAI/status/1707077710047216095

Actuellement disponible pour les utilisateurs Plus et Entreprise, OpenAI prévoit de déployer cette fonctionnalité pour tous les utilisateurs prochainement. Les utilisateurs peuvent l’activer en sélectionnant « Parcourir avec Bing » sous l’option GPT-4.

Nouvelle fonction de navigation de Chatgpt

Nouvelle fonction de navigation de Chatgpt

 L’ingénierie de prompt est efficace mais insuffisante

Les invites servent de passerelle aux connaissances des LLM. Ils guident le modèle, en lui fournissant une direction pour la réponse. Cependant, la création d’une invite efficace n’est pas la solution complète pour obtenir ce que vous voulez d’un LLM. Néanmoins, analysons quelques bonnes pratiques à considérer lors de la rédaction d’une invite :

  1. Clarté : Une invite bien définie élimine l’ambiguïté. Elle doit être directe, en garantissant que le modèle comprend l’intention de l’utilisateur. Cette clarté se traduit souvent par des réponses plus cohérentes et pertinentes.
  2. Contexte : Surtout pour les entrées étendues, le placement de l’instruction peut influencer la sortie. Par exemple, déplacer l’instruction vers la fin d’une longue invite peut souvent donner de meilleurs résultats.
  3. Précision dans l’instruction : La force de la question, souvent transmise par le cadre « qui, quoi, où, quand, pourquoi, comment », peut guider le modèle vers une réponse plus ciblée. De plus, spécifier le format de sortie ou la taille désirée peut affiner davantage la sortie du modèle.
  4. Gestion de l’incertitude : Il est essentiel de guider le modèle sur la façon de répondre lorsqu’il est incertain. Par exemple, en instruisant le modèle de répondre par « Je ne sais pas » lorsqu’il est incertain, cela peut prévenir la génération de réponses inexactes ou « hallucinées ».
  5. Pensée étape par étape : Pour les instructions complexes, guider le modèle pour penser de manière systématique ou en décomposant la tâche en sous-tâches peut conduire à des sorties plus complètes et précises.

En relation avec l’importance des invites pour guider ChatGPT, un article complet peut être trouvé sur Unite.ai.

Defis dans les modèles de génération de l’IA

L’ingénierie de prompt consiste à affiner les directives données à votre modèle pour améliorer ses performances. C’est une façon très rentable d’améliorer la précision de votre application d’IA générative, nécessitant uniquement de légères modifications de code. Bien que l’ingénierie de prompt puisse considérablement améliorer les sorties, il est crucial de comprendre les limitations inhérentes aux grands modèles de langage (LLM). Deux défis principaux sont les « hallucinations » et les « coupures de connaissances ».

  • Hallucinations : Cela fait référence aux cas où le modèle retourne avec confiance une réponse incorrecte ou fabriquée. Bien que les LLM avancés aient des mécanismes intégrés pour reconnaître et éviter de telles sorties.
Hallucinations dans les LLM

Hallucinations dans les LLM

  • Coupures de connaissances : Chaque modèle LLM a une date de fin de formation, après laquelle il n’est pas au courant des événements ou des développements. Cette limitation signifie que les connaissances du modèle sont gelées au point de sa dernière date de formation. Par exemple, un modèle formé jusqu’en 2022 ne connaîtrait pas les événements de 2023.
Coupure de connaissances dans les LLM

Coupure de connaissances dans les LLM

La génération augmentée de récupération (RAG) offre une solution à ces défis. Elle permet aux modèles d’accéder à des informations externes, atténuant les problèmes d’hallucinations en fournissant l’accès à des données propriétaires ou spécifiques à un domaine. Pour les coupures de connaissances, la RAG peut accéder à des informations actuelles au-delà de la date de formation du modèle, en garantissant que la sortie est à jour.

Elle permet également au LLM de puiser des données en temps réel à partir de diverses sources externes.

Introduction à la génération augmentée de récupération

La génération augmentée de récupération (RAG) est un cadre, plutôt qu’une technologie spécifique, qui permet aux grands modèles de langage d’accéder à des données sur lesquelles ils n’ont pas été formés. Il existe plusieurs façons de mettre en œuvre la RAG, et la meilleure option dépend de votre tâche spécifique et de la nature de vos données.

Le cadre RAG fonctionne de manière structurée :

Entrée d’invite

Le processus commence avec une entrée ou une invite de l’utilisateur. Cela peut être une question ou une déclaration demandant des informations spécifiques.

Récupération à partir de sources externes

Au lieu de générer directement une réponse basée sur sa formation, le modèle, avec l’aide d’un composant de récupération, recherche des sources de données externes. Ces sources peuvent aller des bases de connaissances, des bases de données et des magasins de documents à des données accessibles sur Internet.

Compréhension de la récupération

En son essence, la récupération reflète une opération de recherche. Il s’agit d’extraire les informations les plus pertinentes en réponse à une entrée de l’utilisateur. Ce processus peut être décomposé en deux étapes :

  1. Indexation : C’est sans doute la partie la plus difficile de l’ensemble du parcours RAG, qui consiste à indexer votre base de connaissances. Le processus d’indexation peut être divisé en deux phases : Chargement et Division. Dans des outils comme LangChain, ces processus sont appelés « chargeurs » et « diviseurs ». Les chargeurs récupèrent le contenu à partir de diverses sources, qu’il s’agisse de pages Web ou de PDF. Une fois récupéré, les diviseurs segmentent ensuite ce contenu en morceaux gérables, les optimisant pour l’incorporation et la recherche.
  2. Requête : Il s’agit de l’extraction des fragments de connaissance les plus pertinents en fonction d’un terme de recherche.

Bien qu’il existe de nombreuses façons d’aborder la récupération, allant de la simple correspondance de texte à l’utilisation de moteurs de recherche comme Google, les systèmes RAG modernes s’appuient sur la recherche sémantique. Au cœur de la recherche sémantique se trouve le concept d’incorporation.

Les incorporations sont centrales dans la façon dont les grands modèles de langage (LLM) comprennent le langage. Lorsque les humains tentent d’articuler comment ils dérivent le sens des mots, l’explication revient souvent à une compréhension inhérente. Profondément dans nos structures cognitives, nous reconnaissons que « enfant » et « gamin » sont synonymes, ou que « rouge » et « vert » désignent tous deux des couleurs.

Augmentation de l’invite

Les informations récupérées sont ensuite combinées avec l’invite originale, créant une invite augmentée ou étendue. Cette invite augmentée fournit au modèle un contexte supplémentaire, ce qui est particulièrement précieux si les données sont spécifiques à un domaine ou ne font pas partie du corpus de formation initial du modèle.

Génération de la complétion

Avec l’invite augmentée en main, le modèle génère ensuite une complétion ou une réponse. Cette réponse n’est pas seulement basée sur la formation du modèle mais est également informée par les données en temps réel récupérées.

Génération augmentée de récupération

Génération augmentée de récupération

Architecture du premier LLM RAG

L’article de recherche publié par Meta en 2020 « Génération augmentée de récupération pour les tâches de traitement du langage naturel intensives en connaissances » offre un aperçu approfondi de cette technique. Le modèle de génération augmentée de récupération (RAG) améliore le processus de génération traditionnel avec un mécanisme de récupération ou de recherche externe. Cela permet au modèle de puiser des informations pertinentes à partir de vastes corpus de données, améliorant ainsi sa capacité à générer des réponses contextuellement précises.

J'ai passé les cinq dernières années à me plonger dans le monde fascinant de l'apprentissage automatique et de l'apprentissage profond. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité permanente m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en détail.