Unité 4 / 11

Stratégies de récupération : Top-k, hybride, reclassement

Gains :

  • Implémentation d'une recherche hybride qui combine la sélection top-k et la recherche sémantique et par mots clés
  • Augmenter la précision de la première recherche avec le reclassement
  • Rendre les questions difficiles plus accessibles grâce à des techniques telles que la transformation de requêtes et HyDE

Vous avez bien déchiqueté les documents et les avez placés dans la base de données vectorielles. Maintenant, le vrai travail : récupérer les bons éléments lorsque l'utilisateur pose une question. C'est ce qu'on appelle la récupération et c'est l'épine dorsale de la qualité RAG. Rappelez-vous la phrase « Qualité de récupération = qualité RAG » ; Cette unité est exactement l’art d’améliorer cette qualité. Nous aborderons les techniques pratiques de la sélection top-k à la recherche hybride, du reclassement à la transformation des requêtes.

Top-k : Combien de pièces allons-nous apporter ?

Le paramètre le plus basique : combien de pièces (k) renvoyer de la recherche. Si vous apportez moins (k=1), il y a un risque élevé de manquer la bonne pièce ; Si vous en ajoutez trop (k=20), cela ajoutera du bruit au modèle et le coût du jeton augmentera.

Distinguer deux notions. Rappel : la vitesse à laquelle la bonne pièce se trouve parmi celles récupérées. Précision : la vitesse à laquelle ce qui est récupéré est pertinent. L'augmentation de k augmente le rappel mais diminue la précision. Le but est d’équilibrer les deux.

top-k

Impact

situation appropriée

1-3

Haute précision, risque de raté

Des questions simples à réponse unique

4-8

Solde ; la plupart des scénarios

RAG général des entreprises

10-20

Rappel plus élevé, le bruit augmente

Avec reclassement (ci-dessous)

Astuce : modèle commun et puissant : recherchez une page large (k=20), puis resserrez-la avec un reclassement (top 4). De cette façon, vous ne manquerez de rien et vous donnerez un contexte clair au modèle.

Recherche hybride : la puissance de deux recherches

La recherche sémantique (vecteur) capture le sens mais manque des éléments : code produit complet ("XR-4471"), abréviation rare, nom propre, numéro de version. Pour ces tâches de correspondance exacte, la recherche par mots clés à l'ancienne, en particulier l'algorithme classique appelé BM25, est très efficace.

La recherche hybride combine les deux : les recherches sémantiques et par mots clés fonctionnent, combinant les résultats. Ainsi, dans une question telle que « Période de garantie du

La fusion se fait généralement avec RRF (Reciprocal Rank Fusion) : la piste la plus haute dans les deux listes apparaît.

# Récupération hybride (conceptuelle)sem = vector_search(question, k=20) # Meaningkey = bm25_search(question, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # fusionner les deux, top 8

Reclassement : deuxième passe plus intelligent

Le premier appel peut être rapide mais grossier. Le reclassement note les candidats renvoyés par la première recherche un par un avec un modèle plus puissant (généralement un encodeur croisé - un modèle qui lit la question et le passage ensemble et note la pertinence) et déplace les plus pertinents vers le haut.

La logique est la suivante : la première recherche attribue un grand nombre de candidats au rappel (20 candidats), le re-ranker sélectionne les 4 meilleurs pour plus de précision. Cette approche en deux étapes est beaucoup plus précise qu’une recherche en une seule étape. Cela entraîne des retards et un traitement supplémentaire ; Le gain est une augmentation significative de la qualité.

# Récupération en deux étapes (conceptuel) candidats = hybrid_search (question, k = 20) # broad, quickscore = reranker.score (question, candidats) # score de pertinence pour chaque contexte de candidat =rated.rank()[:4] # top 4

Transformer la requête

Parfois, le problème ne réside pas dans la recherche, mais dans la question elle-même. Si l'utilisateur demande « qu'en est-il des travailleurs à distance ? », cela ne peut pas être recherché seul (on ne sait pas clairement ce qui concerne les travailleurs à distance). Voici les techniques de transformation de requêtes :

  • Réécrivez : utilisez l'historique des conversations pour rendre la question autonome : « À quoi les travailleurs à distance ont-ils droit aux congés annuels ? »
  • Multi-requêtes : générez 3 expressions différentes de la même question, recherchez avec elles toutes, combinez les résultats. Différents mots trouvent différentes pièces.
  • HyDE (Hypothetical Document Embeddings) : imprimez d'abord une "réponse possible" au modèle, puis intégrez et recherchez cette réponse imaginaire. La réponse imaginaire est parfois meilleure parce qu’elle est plus proche du document réel.

# Variantes (conceptuelles) multi-requêtes = model.uret("Exprimez cette question de 3 manières différentes : " + question)tum_sonuc = []pour v en variantes : all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]

Récupération faible / Récupération forte

Faible (un seul étage, sémantique uniquement, constante k=3) :

result = vector_search(question, k=3)# Problème : le code produit est manqué, impossible de saisir la bonne partie 3 dans les questions difficiles.

Puissant (hybride + widek + re-ranking + multi-requête si nécessaire) :

candidats = hybrid_search(rewrite(question, past), k=20)context = reranker.score(question, candidates).first(4)# La correspondance exacte et la signification sont capturées ; Il s'agit des 4 meilleurs modèles.

Trois mini-étuis

Cas 1 — Code produit échappé. Une recherche purement sémantique auprès d'une équipe d'assistance n'a pas permis de trouver mot pour mot « RTX-9080 » dans la question « Erreur du pilote RTX-9080 » ; Il apportait d'autres produits portant des noms similaires. Lorsque la recherche hybride a été ajoutée, une correspondance exacte des codes s'est produite et le taux de renvoi d'articles corrects est passé de 58 % à 92 %.

Cas 2 — Différence de reclassement. Un parajuriste travaillait avec k=5 mais l'élément correct est 7-10 la plupart du temps. Il restait dans les rangs. Lorsque k=20 + reclassement a été introduit, le taux d'article correct figurant dans le top 3 est passé de 61 % à 94 % ; La latence n'a augmenté que de 300 ms — un compromis acceptable.

Cas 3 — Question complémentaire sans contexte. Dans un assistant RH, l’utilisateur demande « et les temps partiels ? Quand j'ai demandé, le système apportait des pièces non pertinentes. En réécrivant la requête (en extrayant le contexte « congés annuels » du passé et en ajoutant « Les salariés à temps partiel ont droit aux congés annuels »), le taux de réponses correctes est passé de 40 % à 86 %.

Erreurs courantes

  • S'appuyer uniquement sur la recherche sémantique : le code produit, l'abréviation, le nom propre sont omis ; Ajoutez un hybride.
  • Garder k trop petit : la bonne pièce ne peut pas entrer dans la liste ; élargissez-le et réduisez-le en reclassant.
  • Ne jamais penser au reclassement : la première recherche est impolie ; Le deuxième smart pass améliore considérablement la qualité.
  • Recherche de questions de suivi telles quelles : une question sans contexte recherche une question dénuée de sens ; récrire.
  • Augmentation aveugle de k (sans reclassement) : le modèle est rempli de bruit, la réponse est déformée et le coût augmente.
Attention : Chaque technique ajoute du coût et du délai. Une requête multiple signifie une recherche triple, un reclassement signifie un appel de modèle supplémentaire. Commencez par un hybride simple + un k raisonnable en premier ; Mesurez et ajoutez des techniques lourdes là où c'est vraiment nécessaire. Ajouter sans mesurer.

En résumé

  • Top-k est l'équilibre entre rappel et précision ; Généralement 4-8 est un bon début.
  • La recherche hybride combine la recherche sémantique avec la recherche par mot-clé (BM25) ; Récupère les correspondances exactes.
  • Le reclassement réévalue les candidats de la recherche initiale large avec un modèle robuste et sélectionne les meilleurs.
  • La transformation des requêtes (réécriture, multi-requêtes, HyDE) rend les questions difficiles et sans contexte consultables.
  • Modèle fort : récupération large → fusion avec hybride → étroit avec reclassement ; mais ajoutez chaque technique en la mesurant.

Tâche de candidature

Préparez 6 questions difficiles avec les données des unités précédentes : au moins 2 nécessitant des correspondances exactes (code produit, abréviation, date), 2 sémantiques (même sujet avec des mots différents), 2 questions de suivi sans contexte. (1) Considérez d’abord chaque question comme une recherche sémantique pure et marquez manuellement les parties qui apparaîtront. (2) Réévaluer les mêmes questions en ajoutant un hybride et un reclassement. (3) Réécrivez les questions de suivi sans contexte. Notez sous forme de tableau quelle technique fait une différence dans quel type de question.

liste de contrôle

  • [ ] Je sais que top-k est une balance de rappel-précision et une plage de départ raisonnable.
  • [ ] Je peux expliquer pourquoi la recherche hybride récupère les correspondances exactes.
  • [ ] Je peux appliquer la logique en deux étapes du reclassement (large → intelligent étroit).
  • [ ] Je reconnais la nécessité de réécrire les questions de suivi sans contexte.
  • [ ] Je confirme que j'ai ajouté des techniques lourdes en mesurant, pas en mesurant.