Overview

A reranker is a cross-encoder model that reads a query and a candidate document together and outputs a relevance score. First-stage retrieval with bi-encoder embeddings encodes query and document separately, which is fast but coarse; a reranker sees how the query terms interact with the document, which is more accurate but needs one forward pass per candidate.

Run it as a second stage: retrieve a broad candidate set with vector or hybrid search, rerank it, and pass only the top few passages to the model. Add one when the right document is in the candidates but not near the top. It adds latency per candidate, so rerank a short list, and measure recall and mean reciprocal rank on an eval set before and after to confirm the gain justifies the delay.

Options include hosted rerank APIs (Cohere, Voyage, Jina) and open cross-encoders such as those in Sentence Transformers and mixedbread’s models.