

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Compréhension LLMs et RAG
<a name="understanding"></a>

Pour comprendre comment l'amélioration de la qualité du document source améliore la qualité d'une réponse RAG, vous devez comprendre le fonctionnement interne d'un LLM. Le véritable pouvoir de LLMs réside dans leur capacité à utiliser des mécanismes d'attention personnelle et des architectures de transformateurs. Ces techniques avancées permettent aux modèles de traiter et de relier efficacement différentes parties de la séquence d'entrée, indépendamment de leur position ou de leur distance dans le texte. Cette fonctionnalité contraste nettement avec les modèles linguistiques traditionnels, qui ont souvent du mal à gérer les dépendances à long terme et à comprendre le contexte. De plus, LLMs sont formés à une échelle sans précédent. Certains des modèles les plus importants sont composés de milliards de paramètres et ont ingéré des téraoctets de données textuelles provenant de diverses sources. Cette échelle massive permet de LLMs développer une compréhension approfondie du langage, en capturant des nuances subtiles, des expressions idiomatiques et des indices contextuels qui étaient auparavant difficiles pour les systèmes d'IA. Le résultat est une classe de modèles capables de générer un texte cohérent et fluide et de démontrer des capacités remarquables dans des tâches telles que la réponse aux questions, la synthèse de texte et même la génération de code.

Pour utiliser ces modèles, nous pouvons nous tourner vers des services tels qu'[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html), qui donne accès à une variété de modèles de base d'Amazon et de fournisseurs tiers, notamment Anthropic, Cohere et Meta. Vous pouvez utiliser Amazon Bedrock pour expérimenter des state-of-the-art modèles, les personnaliser et les peaufiner, ou les intégrer à vos solutions génératives basées sur l'IA via une API unique.

Bien qu'ils LLMs excellent dans la capture de modèles et la génération de texte cohérent, ils n'ont souvent pas accès à des informations spécialisées up-to-date ou n'ont pas accès à des informations spécialisées. RAG combine le pouvoir générateur de LLMs avec un composant de récupération capable d'accéder aux informations pertinentes provenant de sources externes et de les intégrer, dans le cadre de l'invite LLM matérialisée. Parmi les sources externes, on peut citer les [bases de connaissances](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html) pour Amazon Bedrock, les systèmes de recherche intelligents tels qu'[Amazon](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html) Kendra ou les bases de données vectorielles telles qu'[Amazon OpenSearch ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) Service.

![Le flux de travail qui explique comment une application basée sur RAG répond à la requête d'un utilisateur.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/writing-best-practices-rag/images/rag-workflow.png)


Le diagramme décrit le flux de travail suivant :

1. L'utilisateur soumet une requête à l'application RAG.

1. L'application RAG interroge une base de données vectorielle contenant des sources de connaissances, telles que des documents, des données ou des médias.

1. L'application RAG extrait les informations pertinentes de la base de données vectorielle en fonction des similitudes sémantiques entre la requête et les documents stockés.

1. L'application RAG complète l'invite d'origine avec le contexte récupéré et l'envoie au point de terminaison LLM.

1. Le point de terminaison LLM génère une réponse et la renvoie à l'application RAG.

1. L'application RAG renvoie la réponse générée à l'utilisateur.

À la base, RAG utilise un processus en deux étapes. Dans un premier temps, un modèle de récupération identifie et extrait les documents ou passages pertinents en fonction de la requête d'entrée. Ce modèle de récupération peut être un système de récupération d'informations traditionnel, un modèle de récupération dense ou une combinaison des deux. Dans la deuxième étape, les informations récupérées et la requête d'origine sont introduites dans un LLM sous forme de modèle d'invite entièrement matérialisé. LLMs dépendent fortement de la qualité du contenu source fourni par le composant retriever. Ils appliquent un mécanisme d'attention personnelle pour encoder mathématiquement le lien entre le contenu récupéré et la tâche. Le LLM génère ensuite une réponse basée à la fois sur la requête et sur les informations extraites. Dans RAG, le contrôle de la qualité des documents sources récupérés représente un moyen direct d'améliorer la représentation interne d'une tâche par un LLM. RAG augmente efficacement les données de formation du LLM avec des données externes pertinentes. Cette approche permet à RAG de tirer parti des points forts des deux systèmes LLMs et des systèmes de récupération, permettant ainsi de générer des réponses plus précises et informées qui intègrent les connaissances actuelles et spécialisées.

## Vecteurs et intégrations
<a name="understanding-vectors-embeddings"></a>

Les vecteurs et les intégrations sont des concepts fondamentaux de l'apprentissage automatique et du traitement du langage naturel. Les *vecteurs* sont des objets mathématiques qui représentent des quantités possédant à la fois une amplitude et une direction. Dans le contexte du traitement du langage naturel (NLP), les mots, les phrases ou les documents sont souvent représentés sous forme de vecteurs dans des espaces vectoriels de grande dimension. *Les intégrations*, quant à elles, sont un moyen de représenter des objets tels que des mots ou des documents dans un espace vectoriel de dimension inférieure où les relations entre les vecteurs capturent des similitudes sémantiques ou syntaxiques. Les intégrations de mots, par exemple, permettent à des mots ayant des significations similaires d'avoir des représentations vectorielles similaires. Cela permet aux algorithmes de comprendre et de traiter le langage plus efficacement.

## bases de données vectorielles
<a name="understanding-vector-databases"></a>

Dans l'IA générative, une *base de données vectorielle* est une base de données qui stocke et gère les représentations vectorielles de documents, de requêtes ou d'autres objets. Il est conçu pour stocker et récupérer efficacement les vecteurs. Cela prend en charge des opérations rapides et évolutives telles que la recherche sémantique et la mise en correspondance des similitudes. Les bases de données vectorielles indexent les vecteurs à l'aide de structures de données spécialisées, telles que les graphes Hierarchical Navigable Small World (HNSW) ou les algorithmes K-Nearest Nearest Neighbors (KNN). Ces structures de données permettent d'effectuer des recherches rapides auprès des voisins les plus proches, ce qui permet de trouver rapidement des vecteurs similaires dans la base de données.

## Recherche sémantique
<a name="understanding-semantic-search"></a>

La *recherche sémantique* est une technique qui améliore la pertinence des résultats de recherche en comprenant l'intention et le contexte de la requête, plutôt que de simplement faire correspondre des mots clés. En termes techniques, la recherche sémantique consiste à comparer les représentations vectorielles de la requête et les documents de la base de données afin de trouver les correspondances les plus pertinentes. Différentes stratégies de récupération peuvent être utilisées pour la recherche sémantique, notamment :
+ **HNSW** — Structure de données basée sur des graphes qui organise les vecteurs de manière à faciliter la recherche des voisins les plus proches.
+ **KNN** — Algorithme qui trouve les K vecteurs les plus proches d'un vecteur de requête sur la base d'une métrique de distance, telle que la similitude des cosinus.
+ **Similarité du cosinus** : mesure de similitude entre deux vecteurs non nuls qui mesure le cosinus de l'angle entre eux. Il est souvent utilisé dans la recherche sémantique pour comparer la direction des vecteurs dans un espace de grande dimension.
+ **Hachage sensible à la localité (LSH)** : technique qui hache des vecteurs similaires vers des compartiments identiques ou voisins avec une probabilité élevée. Cela permet d'effectuer des recherches approximatives auprès du plus proche voisin, ce qui peut être plus rapide que des recherches exactes dans des espaces de grande dimension.