0
RAG Engineering
Phase 3Module 10 of 18

Re-ranking

First-stage retrievers (vector, BM25) optimize for recall — cast a wide net. But top-k from ANN search includes false positives. Re-ranking optimizes precision — ensuring the 5 chunks the LLM sees are truly the most relevant. This directly reduces hallucination and improves answer quality.

Re-ranking is like a hiring funnel: recruiters (first-stage retrievers) send 50 resumes, but the hiring manager (re-ranker) personally interviews the best candidates before making a final shortlist of 5.

Visual Workflows

Start here — study each diagram, then use + / to zoom if needed.

100%
Loading diagram...

Scroll inside the frame · use + / − to zoom

Key Takeaways

  • 1.Re-ranking is the second-stage refinement step in retrieval — taking a broad candidate set from fast retrievers and reordering by deep relevance signals before passing the best chunks to the LLM.
  • 2.Re-ranking pipeline: retrieve k=50-100 candidates → score with cross-encoder, LLM-based reranker (Cohere Rerank, Jina), or learning-to-rank model → return top-n=5.
  • 3.Multi-stage: hybrid fusion → cross-encoder → optional LLM rerank for high-stakes queries.
  • 4.Monitor: precision@n, nDCG, and latency contribution.
  • 5.Cohere Rerank API handles batching and scaling.

Real Example

Scenario

Enterprise support bot retrieves 50 chunks via hybrid search, re-ranks with Cohere Rerank v3 to top-5. Precision@5 improves from 0.6 to 0.85. Answer faithfulness on eval set jumps 20%.

What you would do

In RAG Engineering, apply Re-ranking to this scenario: Enterprise support bot retrieves 50 chunks via hybrid search, re-ranks with Cohere Rerank v3 to top-5. Identify the inputs, run the technique, validate the output, and note one thing you would monitor in production.

Practice Task

Open the Code Walkthrough below and run it locally. Change one parameter related to Re-ranking (e.g. model, temperature, top_k, or tool name), observe the difference in output, and write 2–3 sentences explaining what changed.

Code Walkthrough

Highlighted lines show where Re-ranking happens in the code.

Re-ranking
1import cohere  # import dependencies2
3co = cohere.Client()4
5query = "How do I configure SAML SSO?"6doc_texts = [c.page_content for c in candidates]7
8response = co.rerank(9    model="rerank-english-v3.0",10    query=query,11    documents=doc_texts,12    top_n=5,13)14
15reranked = [candidates[r.index] for r in response.results]

Cheat Sheet

Quick recap

quick ref
  • Retrieve wide, re-rank narrow
  • 50 candidates → top 5
  • precision@5 is key metric
  • Cross-encoder = self-hosted
  • Cohere Rerank = managed
  • Always measure end-to-end faithfulness

Common Mistakes

  • Passing top-5 from ANN directly to LLM without re-ranking
  • Re-ranking too few candidates — recall suffers
  • Optimizing retrieval metrics without measuring answer quality
  • No latency budget for re-ranking step
  • Using expensive LLM reranking when cross-encoder suffices