Aller au contenu
4.8Expert7 min

Reranking en RAG : cross-encoder vs. bi-encoder

Sebastian KarallMis à jour le 28 octobre 2026
Définition

Le reranking est la deuxième étape de récupération dans un pipeline RAG : un cross-encoder réévalue les meilleurs candidats trouvés par le bi-encoder rapide et les classe selon leur pertinence réelle pour la requête. Selon Anthropic, le reranking réduit nettement le taux d'erreur de récupération par rapport à une récupération purement vectorielle, au prix d'une latence plus élevée.

L’essentiel

  • Les bi-encoders encodent la requête et le document séparément et sont assez rapides pour la récupération initiale sur des millions de chunks ; les cross-encoders traitent la requête et le document ensemble et sont plus précis, mais trop coûteux pour la première passe.
  • Le reranking est une étape post-récupération : la récupération hybride fournit un top-50 à top-100 de candidats, que le reranker ramène au top-5 à top-10 le plus pertinent pour le prompt du LLM.
  • Contextual Retrieval d'Anthropic réduit de 49 % le taux d'erreur de récupération top-20 ; combiné au reranking, de 67 % (de 5,7 à 1,9 %).
  • Modèles utiles en pratique (situation en octobre 2026) : Cohere Rerank 3.5 et 4.0 (API, multilingue, allemand compris), BGE-Reranker v2-m3 (Apache 2.0, déployable on-premise), Jina Reranker v2, v3 et v3.5 (poids ouverts, mais sous CC BY-NC 4.0 : usage commercial uniquement avec licence, via l'API ou des offres cloud), Voyage rerank-3 et rerank-3-lite (API), ainsi que des rerankers LLM-as-Judge.
  • Le compromis oppose latence et précision : la récupération hybride associée au reranking affiche généralement une latence totale d'environ 100 à 800 millisecondes.
  • Un top-k trop large transmis au LLM provoque l'effet « Lost-in-the-Middle » et des coûts plus élevés ; le reranking associé à un top-k de 5 à 10 est la parade standard.

Le reranking est la deuxième étape de récupération dans un pipeline RAG : un cross-encoder réévalue les meilleurs candidats trouvés par le bi-encoder rapide et les classe selon leur pertinence réelle pour la requête. Selon Anthropic, le reranking réduit nettement le taux d'erreur de récupération par rapport à une récupération purement vectorielle, au prix d'une latence plus élevée. Le reranking n'a donc rien d'un bonus facultatif : dans les systèmes en production, c'est le levier le plus fiable entre « sémantiquement proche » et « réellement pertinent ».

  • Ce qu'il fait : le reranking réordonne les candidats trouvés par la première récupération avant qu'ils n'arrivent dans le prompt du LLM.
  • Pourquoi deux étapes : le bi-encoder rapide assure le rappel sur des millions de chunks, le cross-encoder précis assure la précision sur le top-k final.
  • Effet concret : Anthropic fait état d'une réduction allant jusqu'à 67 % du taux d'erreur de récupération top-20 lorsque Contextual Retrieval est combiné au reranking.

Pourquoi une récupération en une seule étape ne suffit pas

La récupération vectorielle classique repose sur un bi-encoder. Celui-ci encode à l'avance chaque chunk de document dans un vecteur et le stocke dans un index ANN (le plus souvent HNSW). Au moment de la requête, celle-ci est projetée dans le même espace vectoriel, et la similarité est calculée via la distance cosinus. C'est extrêmement rapide et cela passe à l'échelle sur des millions d'entrées, mais c'est une approximation. La requête et le document ne se « voient » jamais ensemble ; le modèle compare seulement deux condensés produits indépendamment.

Il en résulte un anti-pattern typique : les résultats top-k sont sémantiquement proches, mais pas forcément pertinents pour la question posée. C'est précisément là qu'intervient le reranking. Il s'agit d'une étape post-récupération qui applique un mécanisme plus précis, mais plus lent, à un petit ensemble de candidats plutôt qu'à l'ensemble du corpus.

Bi-encoder vs. cross-encoder : la différence fondamentale

Le cœur architectural du reranking, c'est le passage du bi-encoder au cross-encoder.

Un bi-encoder traite la requête et le document séparément. Chacun est encodé dans un vecteur, et la pertinence ne découle qu'ensuite de la distance entre ces vecteurs. Comme les embeddings des documents peuvent être calculés et indexés à l'avance, le bi-encoder est le seul choix praticable pour la récupération initiale sur de grands corpus.

Un cross-encoder traite la requête et le document ensemble, en un seul forward pass. Le modèle voit les deux textes simultanément et peut tenir compte des interactions mot à mot, des négations et des nuances de sens. Le résultat est une évaluation de pertinence nettement plus précise, mais le calcul doit être fait pour chaque paire requête-document. Sur des millions de chunks, ce serait d'un coût prohibitif ; sur 50 à 100 candidats préfiltrés, c'est acceptable.

Caractéristique

Bi-encoder

Cross-encoder

Entrée

Requête et document séparés

Requête et document ensemble

Indexation préalable

Oui (vecteurs de documents stockables)

Non (par paires, à l'exécution)

Vitesse

Très rapide

Lent (forward pass par paire)

Précision

Approximation

Élevée

Rôle dans le pipeline

Récupération initiale (rappel)

Reranking (précision)

Volume traité

Des millions de chunks

De quelques dizaines à quelques centaines de candidats

Entre les deux se trouve l'approche late interaction (ColBERT) : elle stocke des embeddings au niveau des tokens pour chaque document et calcule la pertinence via une opération MaxSim entre les tokens de la requête et ceux du document. Elle offre plus de précision qu'un bi-encoder classique et passe mieux à l'échelle qu'un cross-encoder complet, mais consomme nettement plus de mémoire pour les vecteurs de tokens.

Position dans le pipeline et stratégie top-k

Le reranking est une étape bien définie du chemin de requête. L'agencement canonique est le suivant :

```
[Récupération hybride, top_k = 50-100]
-> [Cross-Encoder Reranker (Cohere Rerank / BGE / Jina)]
-> [top_k = 5-10]
-> [Prompt + citation des sources]
-> [LLM]
```

Le point décisif : le reranker n'intervient qu'après le rappel peu coûteux du bi-encoder. La récupération hybride initiale (recherche dense plus BM25, fusionnées par Reciprocal Rank Fusion) fournit délibérément un pool généreux de 50 à 100 candidats afin de maximiser le rappel. Le cross-encoder réduit ensuite ce pool aux 5 à 10 chunks vraiment pertinents qui entrent dans le prompt.

Ce resserrement n'est pas qu'une question de coûts. Un top-k trop large transmis au LLM provoque l'effet « Lost-in-the-Middle » : les informations pertinentes situées au milieu d'un long contexte sont moins bien traitées, et les coûts en tokens augmentent. Le reranking associé à un top-k serré de 5 à 10 est la parade standard, avec une consigne supplémentaire : placer les chunks les plus importants en tête du prompt.

Panorama des modèles de reranking (octobre 2026)

Modèle

Type

Hébergement / licence

Langues

Remarque

Cohere Rerank 3.5 / 4.0 (pro, fast)

Cross-encoder

API

multilingue, allemand compris

Standard côté API

BGE-Reranker v2-m3

Cross-encoder

Poids ouverts, Apache 2.0

multilingue

Déployable on-premise, usage commercial libre

Jina Reranker v2 / v3 / v3.5

Cross-encoder (listwise à partir de v3)

Poids ouverts, CC BY-NC 4.0 (usage commercial uniquement avec licence, via API ou offres cloud)

multilingue

Jina AI (Berlin), intégré à Elastic depuis octobre 2025

Voyage rerank-3 / rerank-3-lite

Cross-encoder

API

multilingue

Voyage AI, intégré à MongoDB depuis février 2025

LLM-as-Judge (Haystack LLMRanker)

Prompt LLM

prompt GPT/Claude personnalisé

toutes

flexible, mais plus coûteux

Pour les scénarios européens avec des exigences de souveraineté, le BGE-Reranker v2-m3 est l'option on-premise la plus évidente : il est sous Apache 2.0, multilingue et peut tourner à des fins commerciales dans ton propre centre de données ou dans une région de l'UE. L'ancien modèle bge-reranker-large (licence MIT) ne couvre que le chinois et l'anglais, selon sa fiche de modèle. Les Jina Reranker v2, v3 et v3.5 (publié le 27.07.2026) ont certes des poids ouverts, mais sont sous CC BY-NC 4.0. Pour un usage commercial on-premise, il te faut une licence de Jina AI ; sinon, il te reste l'API Jina, Elastic Inference Service ou les offres sur AWS, Azure et Google Cloud. Jina AI est basée à Berlin, mais appartient à Elastic depuis octobre 2025.

Si tu acceptes une API et que tu as besoin d'une qualité multilingue, allemand compris, tu choisiras en pratique Cohere Rerank. L'alternative Voyage appartient à MongoDB depuis février 2025 ; ses modèles actuels sont rerank-3 et rerank-3-lite. Selon le billet de lancement du 30.09.2026, Voyage a testé rerank-3 sur 95 jeux de données issus de 9 domaines, dont 51 multilingues couvrant 31 langues. L'approche LLM-as-Judge (par exemple le LLMRanker de Haystack) est la plus flexible, mais la plus chère par requête, et ne devrait être utilisée que là où la qualité du reranking est critique et le budget de latence confortable.

Compromis latence/qualité

Le reranking est l'étape la plus coûteuse de la partie récupération du chemin en ligne (avant la génération par le LLM), car le cross-encoder effectue un calcul par candidat. Dans les systèmes en production, la latence totale de la récupération hybride et du reranking se situe généralement autour de 100 à 800 millisecondes. Cette fourchette se pilote directement :

  • Taille du pool d'entrée : reranker 100 candidats coûte plus cher que 30. Selon le corpus, un pool plus petit suffit souvent.
  • Choix du modèle : les rerankers en API comme Cohere sont optimisés pour le débit ; un LLM-as-Judge est nettement plus lent.
  • Matériel : les rerankers auto-hébergés profitent fortement de l'inférence GPU ; sur CPU, la latence augmente considérablement.

Le compromis n'est donc pas « reranking ou pas », mais « combien de candidats pour quel budget de latence ». Pour la plupart des cas d'usage en entreprise, le gain de précision vaut la latence supplémentaire.

Exemple chiffré : gain de précision

Dans la publication « Introducing Contextual Retrieval » (19.09.2024), Anthropic a mesuré des chiffres concrets sur ses propres benchmarks (code, fiction, articles ArXiv, science) ; Cohere servait de reranker. C'est à lire comme l'évaluation d'un fournisseur, donc intéressée, mais documentée sur le plan méthodologique :

  • Base (récupération seule) : taux d'erreur de récupération top-20 de 5,7 %.
  • Contextual Embeddings seuls : réduction de 35 %, à 3,7 %.
  • Contextual Retrieval (embeddings plus BM25) : réduction de 49 %, à 2,9 %.
  • Contextual Retrieval plus reranking : réduction de 67 %, à 1,9 %.

Concrètement : sur 1 000 documents pertinents, 57 manquent au départ dans le top-20, contre seulement 19 avec le pipeline complet. Le reranking seul, soit le passage de 2,9 à 1,9 %, élimine dans cette configuration environ un tiers supplémentaire des erreurs restantes. Pour un système RAG en production, chaque erreur de récupération évitée, c'est un chunk de moins qui pousse le LLM vers une réponse fausse ou non étayée. C'est précisément pour cela que la pratique RAG classe « pas de reranking » parmi les anti-patterns évidents : les top-k sont alors sémantiquement proches, mais pas pertinents.

Pour les agences et les décideurs B2B

Si tu mets en place un système RAG en production en Europe, prévois le reranking dès le départ comme une étape fixe du pipeline, pas comme un réglage après coup. Le levier est important, l'effort d'implémentation limité : un appel API supplémentaire (Cohere) ou un reranker auto-hébergé sous licence ouverte comme BGE v2-m3, entre la récupération et le LLM. Pour les agences qui construisent des assistants de connaissances ou des moteurs de recherche internes pour leurs clients, le reranking offre le meilleur rapport entre gain de qualité et effort, et un argument mesurable en pitch, car le gain de précision se démontre dans des frameworks d'évaluation comme RAGAS (Context Precision). Blck Alpaca conçoit ce type d'architectures de récupération en deux étapes, avec un choix de modèles conforme aux exigences de l'UE et une budgétisation de la latence. Fais vérifier si, dans ton pipeline RAG actuel, les bons chunks arrivent vraiment en tête.

Résumer avec l’IAChatGPTClaudePerplexity

Ouvre le chat avec un prompt prêt à l’emploi.

Questions fréquentes

Quelle est la différence entre un bi-encoder et un cross-encoder ?
Un bi-encoder encode la requête et le document indépendamment, dans des vecteurs distincts ; la similarité n'est calculée qu'ensuite, via la distance cosinus. C'est rapide et indexable à l'avance, donc idéal pour la récupération initiale. Un cross-encoder traite la requête et le document ensemble en un seul forward pass et fournit ainsi une évaluation de pertinence nettement plus précise, mais il demande trop de calcul pour parcourir des millions de chunks. C'est pourquoi le cross-encoder n'intervient qu'au moment du reranking, sur un petit nombre de candidats.
Ai-je besoin du reranking si j'utilise déjà la recherche hybride ?
Dans la plupart des cas en production, oui. La recherche hybride améliore le rappel : davantage de documents pertinents arrivent dans le pool de candidats. Le reranking améliore la précision en tête de classement : il fait en sorte que les chunks vraiment les plus pertinents se retrouvent tout en haut et entrent dans le contexte limité du LLM. Selon Anthropic, le reranking apporte un gain de qualité mesurable au-delà de Contextual Retrieval (la réduction du taux d'erreur top-20 passe de 49 à 67 %, le taux d'erreur lui-même baisse de 2,9 à 1,9 %).
Quels modèles de reranking comptent en 2026 ?
Le standard côté API est Cohere Rerank, actuellement en version 4.0 (pro et fast) aux côtés de la 3.5, multilingue, allemand compris. Le BGE-Reranker v2-m3 a des poids ouverts sous une licence libre pour un usage commercial (Apache 2.0) ; c'est l'option on-premise la plus évidente. Les Jina Reranker v2, v3 et v3.5 ont eux aussi des poids ouverts, mais sont sous CC BY-NC 4.0 : tu ne peux les utiliser commercialement que via l'API Jina, via des offres cloud (selon la version, AWS, Azure, Google Cloud ou Elastic Inference Service) ou avec une licence de Jina AI. Jina AI appartient à Elastic depuis octobre 2025. Voyage rerank-3 et rerank-3-lite sont d'autres variantes en API (Voyage range désormais rerank-2.5 parmi ses anciens modèles) ; Voyage AI appartient à MongoDB depuis février 2025. Un reranker LLM-as-Judge, comme le LLMRanker de Haystack, est flexible mais plus coûteux. Toutes les informations sont à jour en octobre 2026.
Combien de latence le reranking ajoute-t-il ?
Le reranking est l'étape la plus coûteuse de la partie récupération du chemin de requête (avant la génération par le LLM), car le cross-encoder calcule un forward pass complet par candidat. En pratique, la latence totale de la récupération hybride et du reranking se situe généralement autour de 100 à 800 millisecondes. Le levier, c'est le nombre de candidats soumis au reranking : plus le pool d'entrée est petit, plus la latence et les coûts baissent.
Qu'est-ce que ColBERT, ou late interaction ?
ColBERT est une approche de late interaction qui se situe entre le bi-encoder et le cross-encoder. Au lieu d'un seul vecteur par document, il stocke des embeddings au niveau des tokens et calcule la pertinence via une opération MaxSim entre les tokens de la requête et ceux du document. On obtient une précision supérieure à celle d'un bi-encoder pur et un meilleur passage à l'échelle qu'avec un cross-encoder, mais il faut plus de mémoire pour les vecteurs de tokens.

Envie d’aller plus loin ?

Reçois les nouvelles analyses directement dans ta boîte mail ou découvre comment nous mettons ce savoir au service des entreprises.