Formation à GPT3 et ChatGPT
Musclez le contenu + SEO
Intelligence artificielle générative

Outils pour créer des systèmes RAG (Retrieval Augmented Generation)

Voici 12 des meilleurs outils logiciels de RAG, Retrieval Augmentation Generation.

Qu'est-ce que la génération augmentée par récupération ou Retrieval Augmented Generation (RAG) ?

Rapide rappel sur les bases des RAGs

  1. L'utilisateur rentre son prompt dans une interface de type chatbot
  2. Le système de RAG réalise une recherche dans la base de l'entreprise (une base de connaissance, une base de données produits, des cours/leçons...) et extrait les contenus les plus pertinents
  3. Le système RAG transmet ces contenus à un LLM qui formule sa réponse sur base des éléments transmis.

Comment construit-on un système de RAG, cette techno qui permet de contrôler, par exemple, ce qu'un chatbot/LLM d'entreprise répond exactement ?

La Retrieval Augmented Generation (RAG) combine des composants de récupération et de génération pour améliorer les capacités de génération de texte des LLMs.

Les modules de récupération recherchent dans les bases/sources de connaissances les informations pertinentes en fonction des données d'entrée par l'utilisateur en langage naturel

Les modules de génération produisent ensuite des réponses conditionnées par le contexte récupéré (c'est à dire par les informations récupérées des bases de connaissances puisque vectorisées.

Par exemple, dans un scénario de réponse à une question :

  • Le récupérateur trouve des passages sur le sujet de la question dans une base de données.
  • Le générateur incorpore dans sa réponse des faits/termes tirés des passages retrouvés.

Cela permet d'améliorer la précision en ancrant le contenu dans des connaissances externes. Le générateur peut également référencer des sources, ce qui permet de comprendre comment les conclusions sont tirées. L'utilisateurs comprend alors mieux, d'où les réponses du système d'IA viennent.

La recherche sur les RAG s'est accélérée depuis 2020, les articles ayant été multipliés par 6 entre 2020 et 2022. Des géants de la technologie comme Google, Meta et Microsoft développent activement des techniques de RAG.

12 principaux outils et modèles de RAG

Il existe trois catégories principales de solutions RAG :

1. LLM avec RAG intégré

Certains grands modèles de langage (LLM) offrent désormais des capacités RAG intégrées et permettent d'éviter de tout reconstruire.

Azure Machine Learning

Il permet de développer de la RAG par le biais du studio IA et des SDK d'Azure Cognitive Services.

Offre des modèles préconstruits comme BART-RAG.

ChatGPT

OpenAI a lancé un plugin de récupération pour augmenter les réponses ChatGPT avec des connaissances externes pertinentes. Actuellement en version bêta limitée.

Anthropic's Constitutional AI

Il Utilise un module de récupération entraînés pour fournir des preuves pour les réponses générées. Axé sur la transparence.

Hugging Face's RAG

Peut affiner/fine-tuner les modèles RAG, en fusionnant les technologies DPR et seq2seq, afin d'améliorer à la fois la recherche et la génération de données pour des tâches spécifiques.

2. Framework et bibliothèques RAG

Pour aller plus loin et créer sa propre plateforme de RAG indépendant des systèmes sus-cités,

Ces outils de développement permettent de construire des pipelines RAG personnalisés :

Haystack

Haystack est un Framework qui intègre des modules pour la recherche de documents, la lecture et la génération de réponse de Deepset.

FARM

Bibliothèque Transformer de Deepset pour construire des systèmes RAG en utilisant PyTorch.

REALM (Retrieval-Enhanced Reader for Open-Domain Question Answering)

Toolkit de Google pour la génération de réponse à des questions générales en utilisant des techniques RAG.

LangChain : Permettre l'enchaînement d'étapes, y compris des prompts et le recours à des API externes, pour que les LLM répondent aux questions avec plus de précision et de rapidité.

3. Composants spécifiques RAG

Le développement de système RAG s'appuie sur des bases de données vectorielles et des modèles de récupération spécialisés :

Jina AI

Principale base de données vectorielles open source conçue pour la recherche neuronale. Très performante sur ce type de recherche.

Milvus

Base de données vectorielles optimisée pour la recherche par similarité.

Dense Passage Retrieval (DPR)

Encode les "passages" pour une recherche de similarité sémantique . Développé par Facebook.

ColBERT

Modèle de récupération neuronale de pointe pour l'extraction de passages pertinents.

Développé par Microsoft.

Comment fonctionnent les modèles RAG ?

Les systèmes RAG comportent deux phases clés :

  • Récupérer: extraire les informations pertinentes pour l'entrée à l'aide d'algorithmes tels que BM25, DPR ou ColBERT.
  • Générer: produire un texte de réponse conditionné par le contexte récupéré.

Sous le capot, ces phases s'appuient sur plusieurs modules techno:

  1. Recherche sémantique

Des bases de données vectorielles doivent rapidement retrouver les passages pertinents en utilisant des mesures de similarité comme le produit de points ou la distance cosinusoïdale.

  1. Génération enrichie de connaissances

Le générateur génère sa réponse texte en s'appuyant sur les vecteurs récupérés et avec l'aide d'approches telles que les mécanismes d'attention  et l'encodage du contexte.

  1. Reranking itératif

Certains systèmes effectuent plusieurs cycles de recherche et de génération (et non, un seul), permettant, dans certains cas, de fournir des réponses plus précises les résultats.

  1. Optimisation multitâche

Entraînement conjoint des composants récupérateur/chercheur et générateur pour une meilleure cohérence.

 

Voici une esquisse d'une architecture RAG simplifiée :

INTRODUIRE SCHEMA RAG

Comme vous pouvez le voir, RAG combine les forces de la recherche neuronale et de la génération de grands modèles de langage. C'est très intéressant !

5 avantages du RAG

D'après mon expérience de consultant, voici quelques-uns des principaux avantages de RAG :

  1. Plus grande précision

Le fait de fonder les réponses sur des connaissances externes (au LLM, mais internes à l'entreprise) réduit les problèmes d'hallucination/erreurs des LLM.

  1. Informations à jour

Le composant de recherche identifie des informations les plus récentes que celle intégrées dans les LLM qui sont limitées aux données utilisées lors de la phase d'entraînement.

  1. Transparence

La citation des sources permet aux utilisateurs de mieux comprendre l'origine des réponses.

  1. Personnalisation

Adaptation des réponses à des contextes spécifiques grâce à l'indexation de corpus pertinents.

  1. Scalabilité

 Ce dernier point très technique est intéressant. Les techniques de recherche approximative (nearest neighbors) peuvent aider de réaliser des recherches dans de grands ensembles de données (bases de conaissances).

Dans le contexte de la recherche des plus proches voisins (Approximate nearest neighbor), lorsque la taille de l'ensemble de données augmente ou que la dimensionnalité des données s'accroît, la recherche exacte des plus proches voisins par force brute devient coûteuse en calculs et peu pratique.

Les méthodes de recherche ANN échangent une petite perte de précision contre des gains de performance significatifs. Elles offrent un moyen de trouver rapidement les informations liées à la question de façon large (les voisins les plus proches approximatifs d'un query point), plutôt que de trouver les voisins exacts les plus proches, ce qui est plus coûteux d'un point de vue technique.

Voici quelques façons clés dont la recherche ANN favorise la scalabilité :

  • Complexité de calcul réduite

Les algorithmes ANN ont une complexité temporelle sous-linéaire ou logarithmique par rapport à la recherche linéaire par force brute. Cela leur permet de mieux s'adapter à des ensembles de données plus volumineux.

  • Space partitioning

De nombreuses méthodes ANN partitionnent l'espace à haute dimension à l'aide de structures de données comme les arbres k-d ou des approches basées sur des graphes. Cela évite d'avoir à comparer la requête à tous les points de données.

  • Dimensionality reduction

Des techniques comme la quantification de produits et les codes binaires peuvent mapper des données de haute dimension vers des représentations de dimension inférieure pour une recherche ANN efficace.

  • Calcul distribué/parallèle

Certains algorithmes ANN comme les arbres à points de référence peuvent être parallélisés sur plusieurs machines pour traiter des ensembles de données à l'échelle des milliards.

 

 

Search