reranking
A second-stage ranking pass over initially retrieved documents using a more accurate (but slower) cross-encoder model to improve result relevance before generation.
Syntax
rag
candidates = vector_search(query, k=20)
reranked = cross_encoder.rerank(query, candidates, top_k=3)Example
rag
# Reranking with cross-encoder:
from sentence_transformers import CrossEncoder
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
# Score query-doc pairs:
pairs = [(query, doc) for doc in initial_results]
scores = reranker.predict(pairs)
# Sort by reranker score:
reranked = sorted(
zip(scores, initial_results),
reverse=True
)[:3]
final_docs = [doc for _, doc in reranked]