Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Cross-Encoder (Reranker)

ia

Définition

Un Cross-Encoder (ou reranker) est un modele de classement de pertinence qui prend en entree la paire (requete, document) concatenee et produit un score de pertinence unique, contrairement aux Bi-Encoders qui encodent independamment la requete et le document. Le Cross-Encoder effectue de l'attention croisee entre les deux textes, permettant de capturer des interactions semantiques fines qui sont impossibles avec les embeddings independants. Dans les pipelines RAG, le Cross-Encoder est utilise dans l'etape de reranking : apres le retrieval initial par Bi-Encoder (rapide mais approximatif), le Top-K documents recuperes sont re-scores par le Cross-Encoder (plus lent mais plus precis). Typiquement, retriever 50-100 documents avec le Bi-Encoder, puis selectionner le Top-5-10 avec le Cross-Encoder pour le contexte LLM. Les Cross-Encoders les plus performants en 2025 : BAAI/bge-reranker-v2-m3 (multilingual, 568M params, base state-of-the-art), mxbai-rerank-large-v1, Cohere Rerank API (proprietaire mais excellent), Jina AI Reranker. Ces modeles sont bases sur des encodeurs bidirectionnels (DeBERTa, BERT) fine-tunes sur des datasets de paires question-reponse. La latence est le principal defi du Cross-Encoder : contrairement au Bi-Encoder ou les embeddings peuvent etre pre-calcules, le Cross-Encoder doit etre execute en temps reel pour chaque paire (requete, document). Pour N=50 documents et un Cross-Encoder de 500M params, le reranking prend 1-3 secondes sur GPU. Des versions distillees (100M params) offrent un bon compromis latence/precision. L'amelioration typique du reranking sur les pipelines RAG : +10-25% de Context Precision (les documents les plus pertinents remontent dans le Top-5), +5-15% de Faithfulness de la reponse finale. Le gain est particulierement marque pour les questions ou le document pertinent n'est pas le plus proche en cosinus embedding (eg, questions inferentielles).

Reranking avec Cross-Encoder

from sentence_transformers import CrossEncoder

# Charger un cross-encoder
reranker = CrossEncoder('BAAI/bge-reranker-v2-m3', max_length=512)

def rerank_documents(query, documents, top_k=5):
    # Creer les paires (query, doc)
    pairs = [(query, doc['content']) for doc in documents]

    # Scorer avec le cross-encoder
    scores = reranker.predict(pairs, show_progress_bar=False)

    # Re-ordonner par score
    ranked = sorted(zip(documents, scores), key=lambda x: x[1], reverse=True)
    return [doc for doc, _ in ranked[:top_k]]

Bi-Encoder vs Cross-Encoder

AspectBi-EncoderCross-Encoder
Vitesse indexingPre-calcul possibleN/A
Vitesse requeteTres rapide (ANN)Lent (1-5s pour N docs)
PrecisionApproximativeHaute
Usage optimalRetrieval initial (recall)Reranking (precision)

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis