paint-brush
Obtenir des réponses LLM pertinentes en relevant les défis courants de génération augmentée de récupérationpar@datastax
504 lectures
504 lectures

Obtenir des réponses LLM pertinentes en relevant les défis courants de génération augmentée de récupération

par DataStax4m2024/01/16
Read on Terminal Reader

Trop long; Pour lire

Nous examinons les problèmes courants pouvant survenir avec les implémentations RAG et les interactions LLM.
featured image - Obtenir des réponses LLM pertinentes en relevant les défis courants de génération augmentée de récupération
DataStax HackerNoon profile picture
0-item
1-item


Développer des applications d’IA générative avec génération augmentée de récupération (RAG) et les bases de données vectorielles peuvent être difficiles. Vous devrez souvent dépanner les implémentations RAG qui s'appuient sur des bases de données vectorielles pour garantir que le contexte pertinent est récupéré ; ceci est essentiel, car ce contexte est ensuite inclus dans une invite vers un grand modèle de langage pour fournir des résultats plus précis.


Dans l'article précédent de cette série , nous avons examiné le pipeline d'intégration, qui remplit le base de données de vecteurs avec les intégrations, et a examiné trois domaines qui peuvent conduire à de mauvais résultats : les modèles d'intégration sous-optimaux, les stratégies de segmentation inefficaces et le manque de filtrage des métadonnées.

Ici, nous examinerons l'interaction réelle avec le LLM et examinerons quelques problèmes courants qui peuvent conduire à de mauvais résultats : des invites imprécises et des approches de génération insuffisantes.

Affinement rapide

Même les meilleures stratégies d'intégration et de segmentation ne peuvent pas remplacer le besoin de qualité. ingénierie rapide . Cela implique de rendre les invites plus explicites, spécifiques et alignées sur le résultat attendu. Différents formats d'invite, longueurs et choix lexicaux doivent être testés pour affiner le processus RAG.

Un regard simplifié sur un LLM


Plus précisément, vous devez prendre en compte plusieurs éléments lors de la création de vos invites pour les applications RAG. Ceux-ci inclus:


Dites au LLM son rôle : lorsqu'ils interagissent avec des agents LLM comme ChatGPT, ils agiront par défaut comme un chatbot utile. Cependant, vous pouvez modifier la nature des réponses qui seront générées en demandant au LLM d'agir d'une manière particulière. Des exemples pourraient être des choses comme « vous êtes un avocat évaluant si l'une des parties a violé un accord » ou « vous êtes un agent du service client pour un fournisseur de services Internet ; votre travail consiste à aider les gens à résoudre leurs problèmes Internet » ou tout ce qui convient à votre situation particulière.


Dites explicitement au LLM d'utiliser le contexte fourni : indiquez clairement au LLM que vous fournissez le contexte et que vous souhaitez que la réponse générée reflète ce contexte. Vous pouvez le faire en disant quelque chose comme « votre réponse doit prendre en compte le contexte suivant » suivi du contexte. Utiliser des exemples : dans le scénario mentionné ci-dessus consistant à demander au LLM d'agir en tant qu'avocat évaluant les contrats, vous souhaiterez peut-être inclure plusieurs exemples dans l'invite. Par exemple, vous pouvez donner l'exemple d'un contrat stipulant que le paiement est dû dans les 30 jours, mais que l'acheteur n'a envoyé son paiement que 40 jours après la signature du contrat et a donc violé l'accord. Vous pouvez fournir des exemples supplémentaires de droits de recours et de moyens possibles de résoudre les violations de contrat.


Spécifiez le format de sortie : si votre cas d'utilisation nécessite une sortie spécifique, vous pouvez spécifier le format auquel la sortie générée doit adhérer. Vous pouvez combiner cette technique avec le conseil ci-dessus pour fournir des exemples afin d'indiquer clairement au LLM comment vous souhaitez qu'il réponde, ainsi que les points d'information clés que vous attendez dans la réponse générée.


Utiliser la chaîne de pensée : pour les cas d'utilisation où le raisonnement est impliqué pour déterminer la réponse appropriée, vous pouvez envisager d'utiliser une technique appelée chaîne de pensée pour aider à expliquer les étapes que vous souhaitez que le LLM suive pour arriver à une réponse générée. Par exemple, dans le cas des contrats juridiques, vous souhaiterez peut-être guider le LLM à travers les étapes logiques qu'une personne suivrait pour déterminer si une clause contractuelle a été violée. Par exemple, lorsque vous traitez des contrats juridiques, vous pouvez demander au LLM de rechercher d'abord les clauses spécifiant les conditions de paiement, puis d'identifier le délai dont dispose l'acheteur pour soumettre le paiement, puis de calculer le nombre de jours entre le moment où le paiement a été reçu et le moment où le paiement a été reçu. date à laquelle le contrat a été signé. Ensuite, si le paiement prenait plus de temps que le délai convenu, l’acheteur violait l’accord.


Tirer parti de ces techniques pour améliorer votre ingénierie rapide peut avoir un impact significatif sur la qualité des résultats générés que vous êtes en mesure de produire dans vos applications RAG. Cependant, vous devrez parfois recourir à des techniques impliquant de multiples échanges avec le LLM pour obtenir une réponse acceptable.

Modèles avancés

ÉCLATER

Récupération active prospective, ou ÉCLATER , est un exemple de technique RAG multi-requêtes qui implique d'appeler de manière itérative le LLM avec des instructions personnalisées dans votre invite qui demandent au LLM de fournir des questions supplémentaires sur des phrases clés qui l'aideraient à générer une meilleure réponse. Une fois que le LLM a un contexte sans lacunes, il se termine par la réponse finale. Le processus ajoute une boucle entre le LLM et l'agent IA (le chatbot IA dans le diagramme) pour faciliter ces itérations :

ÉCLATER


Vous pouvez voir un exemple du fonctionnement de FLARE dans l' exemple de livre de recettes LangChain de FLARE .

RAG-Fusion

En générant des requêtes similaires à la requête de l'utilisateur et en récupérant le contexte pertinent à la fois pour la requête d'origine ainsi que pour les requêtes similaires générées, nous sommes en mesure d'augmenter la probabilité que nous ayons sélectionné le contexte le plus utile pour générer des résultats précis. Le processus, appelé « fusion RAG », ressemble à ceci :

RAG-Fusion

L'étape clé ici consiste à utiliser une fonction de classement réciproque pour affiner davantage les résultats de l'ANN afin d'identifier le contexte le plus pertinent à utiliser pour générer une réponse.

Conclusion

RAG est une approche simple à utiliser, mais qui laisse souvent les développeurs frustrés par des résultats insatisfaisants pour des raisons peu claires. La pertinence des résultats dans les applications d’IA générative compatibles RAG peut être affectée par plusieurs facteurs. En sélectionnant méticuleusement les modèles d'intégration, en formulant des stratégies de segmentation et en concevant des invites, vous pouvez améliorer considérablement la qualité et la précision des réponses générées dans les systèmes alimentés par des LLM comme ChatGPT. Espérons que ces conseils vous aideront à créer des applications RAG plus utiles qui offrent l'expérience et la valeur que vous recherchez.


Essayez DataStax Astra DB , la seule base de données vectorielle permettant de créer des applications d'IA au niveau de la production sur des données en temps réel .


Par Chris Latimer, DataStax


Apparaît également ici .