Recherche hybride et reranking
IA / LLM 🔴 SeniorDéfinition
La recherche hybride combine un signal lexical (BM25 ou vecteurs creux, bon sur les termes exacts : références, noms propres) et un signal sémantique (vecteurs denses), puis fusionne les listes, souvent par Reciprocal Rank Fusion (RRF). Le reranking est une seconde passe : un modèle cross-encoder (bge-reranker-v2-m3, cohere-rerank-4-fast, rerank-2.5 de Voyage) rescorre les k premiers résultats pour la requête et renvoie un ordre plus précis.
Analogie
Un recruteur qui fait d'abord une présélection large sur mots-clés et sens, puis relit finement les dix meilleurs CV.
Exemple de code
-- RRF en SQL : fusion d'un top-20 plein texte et d'un top-20 vectoriel
WITH lex AS (
SELECT id, row_number() OVER (ORDER BY ts_rank(tsv, q) DESC) AS r
FROM chunks, plainto_tsquery('french', $1) q WHERE tsv @@ q LIMIT 20),
sem AS (
SELECT id, row_number() OVER (ORDER BY embedding <=> $2::vector) AS r
FROM chunks LIMIT 20)
SELECT c.id, c.content,
COALESCE(1.0/(60+lex.r),0) + COALESCE(1.0/(60+sem.r),0) AS rrf
FROM chunks c LEFT JOIN lex USING (id) LEFT JOIN sem USING (id)
WHERE lex.id IS NOT NULL OR sem.id IS NOT NULL
ORDER BY rrf DESC LIMIT 10; -- puis reranker ces 10 avant le prompt
Cas d'usage
Corpus techniques avec codes produits, numéros de version, jargon : la sémantique seule rate les correspondances exactes.
Anti-pattern
Termes liés
Sources
Fiche mise à jour le 2026-09-27