Présentation de Contextual Retrieval
- Pour qu’un modèle d’IA soit utile dans un contexte précis, il a besoin de connaissances de fond
- Un chatbot de support client a besoin de connaissances sur une entreprise spécifique, et un bot d’analyse juridique a besoin d’une vaste connaissance des cas passés
- Les développeurs utilisent généralement le Retrieval-Augmented Generation (RAG) pour enrichir les connaissances d’un modèle d’IA
- Les solutions RAG traditionnelles échouent souvent à retrouver les informations pertinentes, car elles suppriment le contexte lors de l’encodage des informations
Méthode de Contextual Retrieval
- Contextual Retrieval est une méthode qui améliore fortement l’étape de recherche du RAG
- Elle utilise deux sous-techniques : Contextual Embeddings et Contextual BM25
- Elle réduit de 49 % le nombre de recherches échouées, et jusqu’à 67 % lorsqu’elle est combinée avec un reranking
- Il est possible de déployer facilement une solution Contextual Retrieval avec Claude
Utiliser simplement un prompt plus long
- Si la base de connaissances contient moins de 200 000 tokens, il peut être préférable de fournir l’intégralité de la base au modèle
- Avec la fonctionnalité de prompt caching de Claude, cette approche est plus rapide et plus rentable
- Quand la base de connaissances grossit, une solution plus scalable devient nécessaire
Concepts de base du RAG
- Le RAG est utilisé pour traiter de grandes bases de connaissances
- La base de connaissances est divisée en petits fragments de texte, puis un modèle d’embeddings est utilisé pour en encoder le sens
- Ces fragments sont stockés dans une base de données vectorielle afin d’être recherchés selon leur similarité sémantique
- BM25 est efficace pour trouver des correspondances exactes de mots ou d’expressions
Limites du RAG traditionnel
- Le découpage des documents en petits fragments peut détruire le contexte
- Par exemple, pour une question recherchant les informations financières d’une entreprise donnée, un fragment sans contexte suffisant peut être renvoyé
Implémentation de Contextual Retrieval
- Un contexte descriptif est ajouté à chaque fragment afin de créer les index d’embeddings et BM25
- Claude est utilisé pour générer un contexte concis pour chaque fragment
- Le prompt caching peut être utilisé pour réduire les coûts
Amélioration des performances
- Contextual Embeddings réduit de 35 % le taux d’échec de la recherche
- La combinaison de Contextual Embeddings et de Contextual BM25 réduit le taux d’échec de la recherche de 49 %
Points à considérer pour l’implémentation
- Il faut prendre en compte la manière de découper les documents en fragments, le choix du modèle d’embeddings et les prompts de contextualisation personnalisés
- Inclure davantage de fragments augmente la probabilité d’y trouver des informations pertinentes
Amélioration des performances via le reranking
- Le reranking améliore la qualité des réponses en ne transmettant au modèle que les fragments les plus pertinents
- Contextual Embedding et Contextual BM25 avec reranking réduisent le taux d’échec de la recherche de 67 %
Conclusion
- Combiner Embeddings et BM25 permet d’obtenir de meilleurs résultats
- Les embeddings de Voyage et Gemini sont les plus efficaces
- Transmettre au modèle les 20 meilleurs fragments est l’approche la plus efficace
- L’ajout de contexte améliore fortement la précision de la recherche
- Le reranking améliore encore davantage les performances
Résumé de GN⁺
- Contextual Retrieval est une méthode qui peut améliorer fortement la précision de recherche des modèles d’IA
- Elle est particulièrement utile pour traiter de grandes bases de connaissances
- La fonctionnalité de prompt caching de Claude permet une implémentation rentable
- Parmi d’autres projets dotés de fonctionnalités similaires, on peut citer GPT-3 d’OpenAI et BERT de Google
1 commentaires
Avis Hacker News
Premier avis
Deuxième avis
Troisième avis
Quatrième avis
h1,h2,h3, puis ajoute les en-têtes au début du chunkCinquième avis
Sixième avis
Septième avis
Huitième avis
Neuvième avis
Dixième avis