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

ÉtapeMéthodeRôle
FiltrageFiltres structurésAppliquer les contraintes de tenant, d’autorisations, de produit, de langue, de temps et de disponibilité.
Recherche lexicaleBM25Faire correspondre les termes ; préserver les IDs et les codes d’erreur avec des champs ou des analyseurs adaptés.
Recherche denseEmbeddingsSynonymes, paraphrases, intentions imprécises et rappel sémantique.
FusionReciprocal Rank Fusion ou combinaison pondérée de systèmes de rechercheFusionner les candidats issus des recherches sparse et dense sans supposer leurs scores comparables.
RerankingCross-encoderLire la requête avec chaque candidat pour attribuer des scores à une liste restreinte.
Précision finaleReranker LLM ou modèle de réponseRésoudre les nuances de pertinence uniquement lorsque la liste est réduite.
ÉvaluationRecall@k, nDCG, MRR, annotations de clics, annotations humainesVérifier si chaque étape ajoutée améliore la référence.

Points de départ selon le cas d’usage

ProduitApproche à testerPourquoi
Recherche dans la documentationBM25 plus embeddings plus cross-encoderLes noms exacts d’API et les questions sémantiques comptent tous deux.
Recherche pour RAGRé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 produitsFiltres lexicaux plus recherche hybride plus attributs métierLa disponibilité, le prix, la popularité et les facettes exactes comptent.
Recherche pour le supportRecherche hybride plus actualité et métadonnées des ticketsLes formulations similaires et la politique en vigueur comptent toutes deux.
Base de connaissances interneRéférence BM25, puis recherche dense à partir des journaux de requêtesCommencer 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 prudenteLes 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

  1. 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.
  2. Mesurez BM25 seul.
  3. Testez la recherche dense lorsque BM25 manque des passages pertinents.
  4. Si les deux ensembles de résultats se complètent, testez la fusion avec nDCG et Recall@k.
  5. Testez le reranking par cross-encoder lorsque des candidats pertinents sont classés trop bas ; mesurez Precision@1 et nDCG.
  6. N’ajoutez le reranking par LLM que s’il améliore la qualité une fois le coût et la latence pris en compte.
  7. 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

Références