Reclassement avec des encodeurs croisés
Récupérez les 50 premiers résultats avec des embeddings économiques, puis reclassez les 5 premiers avec un encodeur croisé plus lent pour gagner en précision.
Reclassement avec des encodeurs croisés est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Pourquoi réordonner ?
La similarité des vectorisations constitue une première passe rapide et grossière. Elle récupère souvent des segments qui partagent des MOTS-CLÉS avec la requête, sans être réellement pertinents pour la QUESTION.
Un réordonnanceur prend des paires (requête, segment) et calcule un score de pertinence beaucoup plus précis.
Bi-encodeur ou CrossEncoder
Deux architectures pour mesurer la similarité textuelle :
- Bi-encodeur — vectorise séparément la requête et le segment, puis calcule la similarité cosinus. Rapide (vectorisation unique, réutilisable), mais moins précis.
- Cross-encodeur — traite conjointement (requête, segment) avec le modèle. Lent (une exécution par paire), mais beaucoup plus précis.
Récupération en deux étapes
Le modèle qui les combine :
- Le bi-encodeur récupère rapidement les 50 meilleurs candidats
- Le CrossEncoder les réordonne pour conserver les 5 meilleurs
- Les 5 meilleurs sont insérés dans l’invite du LLM
Vous obtenez la rapidité du bi-encodeur et la précision du CrossEncoder.
Utiliser CohereRerank
Le CrossEncoder de production le plus simple à utiliser :
import cohere
co = cohere.Client(COHERE_KEY)
results = co.rerank(
model='rerank-multilingual-v3.0',
query='What is the refund policy?',
documents=top_50_chunks,
top_n=5
)
for r in results.results:
print(r.index, r.relevance_score, top_50_chunks[r.index])Réordonnanceurs open source
BGE est l’option OSS de référence pour le réordonnancement :
from sentence_transformers import CrossEncoder
model = CrossEncoder('BAAI/bge-reranker-base')
pairs = [(query, chunk) for chunk in candidates]
scores = model.predict(pairs)
ranked = [c for _, c in sorted(zip(scores, candidates), reverse=True)][:5]Voyage Rerank
import voyageai
vo = voyageai.Client(api_key=VOYAGE_KEY)
res = vo.rerank(
query=query,
documents=candidates,
model='rerank-2',
top_k=5
)Quand le réordonnancement est utile
- Longues listes de candidats (50 à 200)
- Différences de pertinence subtiles
- Requêtes comportant une négation ou une comparaison
- Cas multilingues
Quand il ne l’est pas
- Ensembles de candidats déjà restreints (les 5 meilleurs résultats du bi-encodeur)
- Requêtes sensibles à la latence et présentant peu de risques
Compromis lié au coût
Les CrossEncoder effectuent une inférence par paire. Réordonner 50 candidats représente donc 50 appels au modèle (peu coûteux avec Cohere ou Voyage, mais plus lent en hébergement autonome).
Prévoyez 50 à 200 candidats pour le réordonnancement ; au-delà, le jeu en vaut rarement la chandelle.
Integrating into LangChain
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import CohereRerank
compressor = CohereRerank(top_n=5)
retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=vector_retriever
)Integrating into LlamaIndex
from llama_index.postprocessor.cohere_rerank import CohereRerank
rerank = CohereRerank(top_n=5)
query_engine = index.as_query_engine(
similarity_top_k=20,
node_postprocessors=[rerank]
)Réordonnancement tenant compte de la diversité
Vous souhaitez parfois obtenir des résultats diversifiés, et pas seulement ceux qui ont les scores les plus élevés (car ils peuvent être presque identiques). MMR (pertinence marginale maximale) équilibre le score et la diversité :
from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)Modèle en deux étapes
Pourquoi utiliser un bi-encodeur et un CrossEncoder plutôt qu’un seul modèle ?
Récapitulatif
Le bi-encodeur récupère 50 résultats, puis le CrossEncoder les réordonne pour en conserver 5. Utilisez Cohere ou Voyage en production, et BGE OSS pour un hébergement autonome. Vous obtenez une amélioration importante de la précision pour un coût supplémentaire modéré.
Questions Fréquemment Posées
La leçon « Reclassement avec des encodeurs croisés » est-elle gratuite ?
Oui — le texte complet de « Reclassement avec des encodeurs croisés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Reclassement avec des encodeurs croisés » ?
Récupérez les 50 premiers résultats avec des embeddings économiques, puis reclassez les 5 premiers avec un encodeur croisé plus lent pour gagner en précision. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Agents ?
Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Reclassement avec des encodeurs croisés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?
Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Reclassement avec des encodeurs croisés
- HyDE : embeddings de documents hypothétiques
- Recherche multi-vectorielle (ColBERT)
- Évaluation de RAG (RAGAS, Recall@K)