Aller au contenu
Cercle IA Tech · RAG Un site du réseau Cercle IA Tech

Guide

Reranking RAG : retrier les résultats avant de répondre

Le reranking dans un RAG : principe du cross-encoder, nombre de candidats, modèles ouverts ou interfaces payantes, gains publiés.

Mis à jour le

Le reranking (retri) ajoute une seconde étape à la recherche d'un RAG : un premier moteur, rapide, ramène une centaine de passages candidats ; un modèle plus lent mais plus précis les relit un par un face à la question et les réordonne. Seuls les meilleurs vont au modèle de langage. C'est l'un des réglages qui améliorent le plus la pertinence sans toucher à l'index.

Bi-encoder et cross-encoder

La documentation de Sentence Transformers explique la différence :

Bi-encoder Cross-encoder
Ce qu'il lit la question et le passage séparément la question et le passage ensemble
Ce qu'il produit un vecteur par texte, comparable et indexable un score pour la paire, pas de vecteur
Vitesse rapide : un vecteur par passage, calculé une fois lent : un calcul par paire, à chaque question
Qualité bonne meilleure, selon cette documentation
Usage dans un RAG première recherche retri des candidats

L'ordre de grandeur donné par la même page : regrouper 10 000 phrases demanderait environ 50 millions de comparaisons, soit environ 65 heures avec un cross-encoder, contre environ 5 secondes avec un bi-encoder. D'où le schéma « récupérer puis retrier » : le bi-encoder trouve par exemple les 100 premiers résultats, le cross-encoder les reclasse.

Ce que le retri a apporté dans un essai publié

Dans son article du 19/09/2024 sur la récupération contextuelle, Anthropic mesure le taux d'échec de récupération sur les 20 premiers résultats :

Configuration Réduction des échecs
Plongements contextualisés 35 %
+ recherche par mots-clés (algorithme BM25) contextualisée 49 %
+ retri (modèle de Cohere) 67 %

Leur protocole : 150 passages récupérés, 20 gardés après retri. Ces chiffres valent pour leurs jeux de données ; ils donnent un ordre d'idée, pas une promesse.

Les options pour retrier

Le site est édité par IArche, qui édite ALMA ; les outils ci-dessous sont décrits d'après leur documentation, sans classement.

  • Modèle ouvert exécuté chez vous. Sentence Transformers charge un cross-encoder en deux lignes ; l'exemple de la documentation utilise cross-encoder/ms-marco-MiniLM-L6-v2. Vérifiez qu'un modèle entraîné sur de l'anglais convient à vos documents en français.
  • Cohere Rerank. Une interface de programmation qui prend une question, une liste de documents et top_n, et renvoie pour chaque document son rang d'origine et un relevance_score. Selon la documentation de Cohere, les modèles actuels (rerank-v5.0-pro, rerank-v5.0-fast, entre autres) sont multilingues et entraînés sur plus de 100 langues.
  • Voyage AI. Anthropic, qui ne propose pas son propre modèle de plongements, présente Voyage AI dans sa documentation ; Voyage fournit aussi des modèles de retri (rerank-3, rerank-3-lite). Tarif affiché par MongoDB, qui distribue ces modèles, relevé le 15/11/2026 : 0,05 dollar par million de jetons pour rerank-3, 0,02 dollar pour rerank-3-lite, avec 200 millions de jetons offerts.

Exemples de code

Avec Sentence Transformers, d'après sa documentation :

from sentence_transformers.cross_encoder import CrossEncoder

model = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2")
scores = model.predict([["ma question", "passage 1"], ["ma question", "passage 2"]])

Avec Cohere, d'après sa documentation :

results = co.rerank(
    model="rerank-v5.0-pro", query=query, documents=docs, top_n=5
)

Régler le retri

  1. Nombre de candidats en entrée. Assez pour que le bon passage y figure : mesurez le rappel de votre première recherche (voir Évaluer un RAG).
  2. Nombre de passages en sortie. Assez pour répondre aux questions qui demandent plusieurs passages, pas au point de noyer le modèle.
  3. Latence. Le retri s'ajoute à chaque question. Mesurez-la sur votre machine ou votre interface avant de l'activer pour tous.
  4. Langue. Testez sur vos documents en français, pas sur l'exemple de la documentation.

Le retri vient après la recherche hybride : il travaille sur la liste fusionnée, pas à sa place.

Questions fréquentes

Pourquoi ne pas utiliser directement le modèle de tri pour toute la recherche ?

Parce qu'il doit lire chaque paire question-passage : la documentation Sentence Transformers estime qu'un regroupement de 10 000 phrases demanderait environ 65 heures avec un cross-encoder, contre environ 5 secondes avec un bi-encoder.

Combien de passages garder après le tri ?

Anthropic, dans ses essais, retrie 150 candidats et en garde 20, en notant que 20 passages ont donné de meilleurs résultats que 10 ou 5. À valider sur vos données.

Sources

Pages consultées pour écrire cet article :

  1. https://sbert.net/examples/cross_encoder/applications/README.html
  2. https://www.anthropic.com/news/contextual-retrieval
  3. https://docs.cohere.com/docs/rerank-overview
  4. https://platform.claude.com/docs/en/build-with-claude/embeddings
  5. https://www.mongodb.com/docs/voyageai/management/billing/

À lire aussi