Un bi-encoder (o dual-encoder) è un’architettura con due encoder separati che trasformano query e documenti in vettori nello stesso spazio semantico. La ricerca avviene confrontando i vettori (es. cosine similarity) per recuperare rapidamente i contenuti più affini.
A differenza dei cross-encoder, che valutano la coppia query-documento insieme (alto costo ma massima precisione), i bi-encoder pre-calcolano gli embeddings dei documenti e calcolano al volo l’embedding della query. Il matching è poi un’operazione di nearest-neighbor search su un vector index (FAISS, HNSW, ecc.). Questo rende i bi-encoder ideali per recall ad ampio raggio e scenari low-latency. Spesso sono il primo stadio di pipeline a due fasi: recall (bi-encoder) → precision (cross-encoder/reranker).