"Cheap retrieval casts a wide net. The reranker is the expensive eye that looks closely at only the fish you already caught."
Two Ways a Model Can Judge Relevance
There are two shapes of relevance model, and the difference is everything. A bi-encoder (what vector search uses) embeds the query and each document separately into vectors, then compares them. Because documents can be embedded ahead of time, this is fast and scales to millions — but the query and document never actually meet inside the model. A cross-encoder (a reranker) feeds the query and a document into the model together and scores the pair jointly. The model attends to both at once, catching subtle relevance a separated comparison misses.
Better and Slower Are the Same Property
The cross-encoder is more accurate precisely because it looks at query and document together — and that's exactly why it's expensive. You can't precompute anything: every query-document pair is a fresh model call. Rerank a thousand candidates and that's a thousand forward passes, right now, with no caching possible. The very thing that makes it accurate (joint attention) is the thing that makes it too costly to run over an entire corpus. So you don't.
The Deepening Pattern: Retrieve Wide, Rerank Narrow
The resolution is a two-stage pipeline. First, use the cheap methods — BM25 and vectors, fused — to pull a wider-than-usual candidate pool: instead of the top 8, fetch the top 50. These cheap retrievers are great at recall (getting the right answers somewhere in the pool) even if their ordering is rough. Then run the expensive cross-encoder on just those 50, and take its top 8. You've spent 50 model calls, not a million, and you get precision-ranked results. Retrieve wide and cheap; rerank narrow and expensive.
Opt-In, and Honest When It Can't Run
Because reranking costs real model calls, Lantern leaves it off by default — a per-query flag you set when the extra precision is worth it. And since it calls the model server, it obeys the same honesty rule as vector search: when the reranker is unreachable, the request degrades and says so, rather than silently returning the un-reranked order dressed up as reranked. Deepening is a capability you opt into with your eyes open, not a hidden step that quietly fails.