← Resources
By Sora Kashiwagi
— Senior Engineer, Vector Search
·
· TUTORIAL
Busca híbrida: combinando BM25 e busca vetorial para RAG
A busca por palavras-chave (BM25) e a busca vetorial falham de maneiras opostas, e é exatamente por isso que o RAG em produção as combina. Este guia explica os dois métodos, como a fusão (RRF) une seus resultados, onde o reranking se encaixa e quando a busca híbrida supera significativamente a vetorial pura.
Dois tipos de busca que falham de formas diferentes
BM25 (busca léxica ou por palavras-chave) pontua documentos pela sobreposição exata de termos, dando mais peso a termos raros e penalizando o comprimento. É determinística e opera sobre um índice invertido. A busca vetorial (semântica) codifica consultas e documentos em embeddings densos e recupera por similaridade de vizinhos mais próximos, capturando significado, sinônimos e paráfrases — mesmo entre idiomas.
Suas fraquezas são imagens espelhadas. BM25 não encontra sinônimos e conceitos: uma consulta por «problemas de memória em banco de dados» não encontrará uma página intitulada «políticas de despejo de cache» se as palavras literais forem diferentes. A busca vetorial perde tokens exatos — acrônimos, SKUs, códigos de erro, IDs, números de modelo — e sofre de deriva semântica, retornando resultados semanticamente próximos mas errados, como «tênis Adidas para corrida» para uma consulta «tênis Nike para corrida». Como os modos de falha são complementares, nenhum por si só é suficiente.
O que a busca híbrida faz
A busca híbrida executa a recuperação léxica (BM25) e a densa (vetorial) em paralelo e, em seguida, mescla suas duas listas de resultados ordenados em uma só. A etapa de mesclagem é a parte interessante, pois as pontuações do BM25 e as pontuações de similaridade vetorial vivem em escalas completamente diferentes — não dá para simplesmente somá-las.
É por isso que o método de fusão dominante, Reciprocal Rank Fusion (RRF), usa apenas a posição no ranking, não as pontuações brutas. A pontuação fundida de cada documento é a soma, entre ambos os recuperadores, de 1 dividido por (k mais seu rank), onde k é uma constante pequena (comumente 60; alguns estudos usam 20). Como ignora completamente as distribuições de pontuação, o RRF é livre de normalização e funciona «pronto para uso» — o que explica por que é o padrão na maioria dos bancos de dados vetoriais.
RRF vs. fusão ponderada
O RRF não é a única opção. A fusão ponderada (alfa) normaliza os dois conjuntos de pontuações e os combina com um peso ajustável: alfa 0 é busca pura por palavras-chave, 1 é busca vetorial pura, 0,5 é igual, e os padrões costumam ficar em torno de 0,75 em direção ao semântico. Alguns mecanismos também oferecem fusão baseada em pontuação relativa e em distribuição.
O trade-off: o RRF é robusto e tem poucos parâmetros, ideal quando você não quer ajustar por corpus. A fusão ponderada oferece um controle para favorecer a correspondência exata de termos (alfa menor) em conteúdo técnico rico em identificadores, ou a semântica (alfa maior) para perguntas em linguagem natural. Comece com o RRF; recorra à fusão ponderada quando tiver uma razão clara para favorecer um dos recuperadores.
Onde o reranking se encaixa
A recuperação híbrida é a primeira etapa; o reranking é a segunda. Um recuperador rápido (BM25, vetorial ou híbrido) extrai um conjunto de candidatos, e então um cross-encoder reavalia cada candidato codificando conjuntamente a consulta e o documento em uma única passagem com atenção cruzada completa. Cross-encoders são muito mais precisos do que os recuperadores da primeira etapa, mas caros demais para rodar sobre todo o corpus, então só reavaliam os candidatos top-k.
O pipeline de produção canônico é, portanto: recuperação híbrida (BM25 + vetorial, fundida com RRF) → cross-encoder ou reranker com LLM → melhores resultados no contexto do modelo. Cada etapa faz aquilo em que é melhor — recall primeiro, precisão por último.
Isso realmente ajuda? E como construir em osFoundry
Os ganhos são reais, mas dependem dos seus dados. O estudo BEIR da Elastic descobriu que o híbrido com RRF elevou o NDCG@10 médio em cerca de 18% em relação ao BM25 sozinho, e por uma margem menor em relação a um encoder aprendido robusto, sendo igual ou melhor que o BM25 em todos os conjuntos de dados testados. À medida que os modelos densos melhoraram, o ganho marginal do híbrido diminuiu — geralmente alguns pontos percentuais em dados dentro do domínio — mas permanece maior em corpus fora do domínio, termos raros e consultas que misturam linguagem natural com identificadores exatos. O híbrido continua sendo o padrão em produção.
O pipeline de RAG personalizado do osFoundry expõe isso como etapas componíveis em vez de uma caixa-preta: uma etapa BM25 e uma etapa vetorial rodam em paralelo, uma etapa de fusão (RRF por padrão, ponderada como opção) as mescla, e uma etapa de reranking refina o resultado antes que ele chegue ao modelo. Você ajusta o equilíbrio léxico-semântico por base de conhecimento na configuração, seguindo o padrão recuperar-fundir-reordenar sem escrever o encanamento.
Frequently asked questions
- Qual é a diferença entre busca por palavras-chave e busca semântica?
- A busca por palavras-chave (léxica), como BM25, corresponde a termos exatos e pondera os raros — precisa, mas cega a sinônimos. A busca semântica (vetorial) codifica o significado em embeddings e busca por similaridade, capturando paráfrases e conceitos relacionados, mas pode perder tokens exatos como IDs e códigos de erro. São fortes em situações opostas.
- O que é busca híbrida?
- A busca híbrida executa em paralelo tanto a recuperação por palavras-chave (BM25) quanto a vetorial e mescla seus resultados ordenados em uma única lista com um algoritmo de fusão. Existe porque os dois métodos falham de formas diferentes — a vetorial lida com sinônimos e conceitos, BM25 acerta em termos exatos, identificadores e jargão raro — então combiná-los melhora tanto o recall quanto a precisão.
- O que é Reciprocal Rank Fusion (RRF)?
- O RRF mescla duas listas ordenadas usando apenas a posição no ranking, não as pontuações brutas. A pontuação fundida de cada documento é a soma, entre os recuperadores, de 1 dividido por (k mais seu rank), onde k é uma constante pequena (comumente 60). Como ignora as escalas de pontuação incompatíveis do BM25 e da busca vetorial, não precisa de normalização e funciona bem pronto para uso.
- Quando a busca híbrida supera a busca vetorial pura?
- Quando as consultas misturam linguagem natural com identificadores exatos, usam jargão raro ou específico do domínio, rodam contra conteúdo fora do domínio ou são multilíngues. A busca vetorial pura pode bastar para perguntas puramente conceituais sobre dados bem incorporados e dentro do domínio. Para bases de conhecimento técnicas cheias de códigos e nomes de produtos, a híbrida é claramente melhor.
- Por que a busca vetorial perde termos exatos e IDs?
- Os embeddings comprimem o texto em um vetor de tamanho fixo que captura o significado, não a ortografia exata, então tokens raros como códigos de erro, SKUs e acrônimos são suavizados — uma propriedade às vezes chamada de cegueira estrutural. O modelo sabe sobre o que é uma passagem, mas não que ela contém a string literal que você pesquisou, que é exatamente o que o BM25 faz bem.
- RRF ou fusão ponderada — qual devo usar?
- Comece com o RRF: é robusto, tem poucos parâmetros e não precisa de ajuste por corpus. Mude para a fusão ponderada (alfa) quando tiver uma razão clara para favorecer um recuperador — um alfa menor para favorecer a correspondência exata de termos em conteúdo rico em identificadores, um alfa maior para favorecer a semântica em perguntas em linguagem natural.
- A busca híbrida adiciona latência ou custo, e vale a pena?
- Ela executa duas recuperações mais uma etapa de fusão, então há alguma sobrecarga, e o reranking adiciona mais. Para a maioria dos sistemas RAG, os ganhos em recall e precisão justificam, especialmente em corpus técnicos ou de conteúdo misto. Se você tem dados bem incorporados e puramente conceituais e a latência é crítica, a vetorial pura pode bastar — meça com suas próprias consultas.
Sources