BM25, embeddings et rerankers : choisir les étapes de recherche
Traduction automatique
Cet article a été traduit automatiquement depuis la version originale en anglais.
BM25 classe le texte selon la correspondance avec les termes de la requête. Les embeddings trouvent des candidats de sens similaire. Un reranker attribue de nouveaux scores aux candidats récupérés pour améliorer leur ordre. Pour les ingénieurs qui construisent des systèmes de recherche ou de RAG, ces étapes répondent à des problèmes différents et doivent être testées séparément.
Commencez par BM25 et appliquez les autorisations des documents. Ajoutez des embeddings lorsque des passages pertinents manquent parce que la requête utilise d’autres mots. Ajoutez un reranker lorsque les bons passages sont récupérés, mais apparaissent trop bas dans la liste. Ne conservez chaque étape que si elle améliore les résultats annotés dans les limites du budget de temps et de coût.
Par exemple, une requête sur ERR-42 nécessite une gestion correcte des identifiants. Une question sur un échec après la sortie de veille peut nécessiter une correspondance sémantique si le manuel parle d’un « échec de reprise ». Le reranking n’aide qu’une fois le passage requis présent dans l’ensemble de candidats.
Rôle de chaque étape
| Étape | Méthode | Rôle |
|---|---|---|
| Filtrage | Filtres structurés | Appliquer les contraintes de tenant, d’autorisations, de produit, de langue, de temps et de disponibilité. |
| Recherche lexicale | BM25 | Faire correspondre les termes ; préserver les IDs et les codes d’erreur avec des champs ou des analyseurs adaptés. |
| Recherche dense | Embeddings | Synonymes, paraphrases, intentions imprécises et rappel sémantique. |
| Fusion | Reciprocal Rank Fusion ou combinaison pondérée de systèmes de recherche | Fusionner les candidats issus des recherches sparse et dense sans supposer leurs scores comparables. |
| Reranking | Cross-encoder | Lire la requête avec chaque candidat pour attribuer des scores à une liste restreinte. |
| Précision finale | Reranker LLM ou modèle de réponse | Résoudre les nuances de pertinence uniquement lorsque la liste est réduite. |
| Évaluation | Recall@k, nDCG, MRR, annotations de clics, annotations humaines | Vérifier si chaque étape ajoutée améliore la référence. |
Points de départ selon le cas d’usage
| Produit | Approche à tester | Pourquoi |
|---|---|---|
| Recherche dans la documentation | BM25 plus embeddings plus cross-encoder | Les noms exacts d’API et les questions sémantiques comptent tous deux. |
| Recherche pour RAG | Référence BM25 ; comparer recherche hybride et reranking | Évaluer la couverture des preuves, les éléments étayant les réponses et la latence. |
| Recherche de produits | Filtres lexicaux plus recherche hybride plus attributs métier | La disponibilité, le prix, la popularité et les facettes exactes comptent. |
| Recherche pour le support | Recherche hybride plus actualité et métadonnées des tickets | Les formulations similaires et la politique en vigueur comptent toutes deux. |
| Base de connaissances interne | Référence BM25, puis recherche dense à partir des journaux de requêtes | Commencer par des mesures avant d’ajouter le coût des modèles. |
| Recherche juridique ou de conformité | Référence lexicale plus filtres stricts, puis expansion sémantique prudente | Les faux positifs comme les faux négatifs ont un coût élevé. |
Pourquoi BM25 a toujours sa place dans le système
Les embeddings trouvent des textes de sens similaire, mais ne remplacent pas de façon fiable la correspondance exacte. Les codes d’erreur, noms de fonctions, SKU de produits, formulations juridiques et noms de personnes expriment souvent l’intention par leur orthographe exacte. BM25 constitue une référence utile, car il favorise les termes correspondants. L’analyse du texte peut modifier ces termes : l’analyseur standard d’Elasticsearch segmente le texte et le convertit en minuscules. Préservez les IDs sensibles à la ponctuation, comme ERR-42, avec un analyseur adapté ou un champ de valeur exacte. Le classement BM25 ne garantit pas l’égalité exacte des chaînes.
La recherche dense peut ajouter des résultats pertinents lorsque les utilisateurs ne connaissent pas le vocabulaire du document. Testez-la aux côtés de BM25. Si les deux systèmes trouvent des résultats utiles et complémentaires, RRF peut combiner leurs listes classées. Il utilise les positions des résultats plutôt que de comparer les scores bruts de la recherche lexicale et des embeddings.
Quand ajouter un reranker
Ajoutez un cross-encoder lorsque des documents pertinents entrent dans l’ensemble de candidats, mais sont classés trop bas. Un cross-encoder lit la requête avec chaque document candidat. Cela nécessite un passage du modèle pour chaque paire ; appliquez-le donc à une liste restreinte. Choisissez le nombre de candidats à partir du rappel et de la latence mesurés ; les 50 premiers constituent une expérience utile, pas un seuil universel.
Testez un reranker LLM lorsqu’un cross-encoder manque des distinctions nécessaires à votre application, comme la version d’une politique qui s’applique. Il ajoute du calcul dont le coût dépend du nombre de candidats et de la longueur des entrées. Comparez qualité, latence et coût sur la même liste restreinte avant de le conserver.
Recall@k mesure la quantité de contenu pertinent et annoté qui apparaît dans les k premiers résultats. MRR favorise une position élevée pour le premier résultat pertinent ; nDCG mesure l’ordre lorsque les annotations présentent différents niveaux de pertinence. Precision@1 vérifie si le premier résultat est pertinent.
Séquence d’évaluation
- Annotez de vraies requêtes couvrant les intentions, langues, autorisations et coûts d’échec importants. Commencez petit, puis élargissez jusqu’à ce que les segments et l’incertitude permettent d’étayer la décision.
- Mesurez BM25 seul.
- Testez la recherche dense lorsque BM25 manque des passages pertinents.
- Si les deux ensembles de résultats se complètent, testez la fusion avec nDCG et Recall@k.
- Testez le reranking par cross-encoder lorsque des candidats pertinents sont classés trop bas ; mesurez Precision@1 et nDCG.
- N’ajoutez le reranking par LLM que s’il améliore la qualité une fois le coût et la latence pris en compte.
- Surveillez les métriques de production : taux de requêtes sans résultat, taux de reformulation, taux de clics, corrections des réponses, latence p95 et coût.
Lectures approfondies
- L’article Les étapes du classement de recherche présente le guide complet d’implémentation.
- L’article Métriques d’évaluation du RAG explique l’évaluation de la recherche et des citations.