01
Por que a busca por embedding erra a ordem dos trechos
A busca vetorial funciona assim: no momento da ingestão, cada trecho é transformado em um vetor por um modelo de embedding; no momento da consulta, a pergunta vira outro vetor e você busca os trechos cujo vetor está mais próximo. Isso é chamado de bi-encoder, porque pergunta e trecho são codificados separadamente, cada um sem ver o outro. É extremamente rápido, porque os vetores dos trechos são pré-calculados e a busca é só uma comparação de distância. O problema é justamente esse: pergunta e trecho nunca se olham. O embedding comprime todo o significado de um parágrafo num único vetor de algumas centenas de dimensões, e nessa compressão detalhes se perdem. Dois trechos que falam do mesmo assunto geral ficam próximos da pergunta, mesmo que só um responda de fato à pergunta específica.
O sintoma clássico é o trecho certo aparecer entre os recuperados, mas fora do topo. Você pede os 20 vizinhos mais próximos e a resposta exata está na posição 9. Se o pipeline monta o contexto com os 3 ou 5 primeiros, a resposta certa foi recuperada e depois descartada, e o modelo responde a partir de trechos que só tangenciam a pergunta. Não é falha do embedding em recuperar, é falha em ordenar. Recall alto e ordem ruim é exatamente o cenário em que o reranking mais rende: a informação está lá, só está na posição errada.
| Aspecto | Bi-encoder (embedding) | Cross-encoder (reranker) |
|---|---|---|
| Como compara | Vetor da pergunta contra vetor do trecho | Lê pergunta e trecho juntos, par a par |
| Velocidade | Muito rápida, vetores pré-calculados | Lenta, um forward por par pergunta-trecho |
| Escala | Milhões de trechos por consulta | Dezenas de candidatos por consulta |
| Precisão da ordem | Boa para triagem, fraca no topo | Alta, entende a pergunta específica |
A lição é que embedding e reranking não competem, eles se complementam. O embedding é a triagem barata que varre tudo e traz os candidatos plausíveis; o reranking é o segundo olhar caro que lê com atenção e decide a ordem final. Usar só o primeiro é rápido e impreciso no topo; o resto do artigo é sobre como encaixar o segundo sem estourar latência nem custo.