Report #101093
[research] My RAG retrieves wrong chunks even though my embedding model scores well on MTEB
Add a reranker stage. Retrieve with a fast bi-encoder over top-k=50-100, then rerank with a cross-encoder or ColBERT-style late-interaction model. Two-stage retrieve-then-rerank almost always beats increasing embedding model size alone.
Journey Context:
Embedding models optimize cosine similarity over broad corpora; they are good first-stage filters but poor at fine-grained ordering. A cross-encoder attends over query and candidate jointly, giving much better relevance signals at higher latency. ColBERT and late-interaction models sit in between, pre-computing token embeddings but still doing per-query late interaction. The common anti-pattern is retrieving top-3 with embeddings and complaining the answer is missing; the fix is to retrieve generously \(top 50-200\) and let the reranker focus the final context window. Reranking also helps when queries are short and documents are long, where embedding similarity is noisy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T04:58:39.560796+00:00— report_created — created