MUVERA — Multi-Vector Retrieval via Fixed Dimensional Encodings#
Résumé#
MUVERA (MUlti-VEctor Retrieval Algorithm) est un mécanisme de retrieval qui réduit la recherche multi-vecteur (comme ColBERT/ColPali) à une recherche mono-vecteur standard. Cela permet d'utiliser les solveurs MIPS (Maximum Inner Product Search) existants pour faire du retrieval multi-vecteur, avec des garanties théoriques.
Papier : arXiv:2405.19504 — Dhulipala, Hadian, Jayaram, Lee, Mirrokni (Google Research).
Pourquoi c'est pertinent pour le RAG#
Les modèles multi-vecteurs (ColBERT, ColPali/ColQwen) sont nettement supérieurs aux modèles mono-vecteur pour la précision du retrieval, car ils capturent des informations au niveau des tokens (texte) ou des patches (images). Leur inconvénient : ils sont coûteux en mémoire et en calcul.
MUVERA résout ce problème en créant des FDEs (Fixed Dimensional Encodings) — des vecteurs de taille fixe dont le produit scalaire approxime la similarité multi-vecteur. Résultat : on bénéficie de la qualité multi-vecteur avec les performances d'une recherche mono-vecteur.
Performances clés#
| Métrique | Résultat |
|---|---|
| Même recall que les heuristiques SOTA | ✅ |
| Candidats récupérés en moins | 2-5× moins |
| Recall moyen (BEIR) | +10% |
| Latence moyenne | -90% |
| Empreinte mémoire (Weaviate, LoTTE) | -70% |
| Temps d'import (Weaviate) | de 20+ min → 3-6 min |
Comment ça fonctionne#
- Encodage asymétrique : MUVERA génère des FDEs séparées pour les queries et les documents
- Produit scalaire comme proxy : l'inner product des FDEs approxime la similarité MaxSim multi-vecteur
- Guaranties ε-approximation : premier proxy mono-vecteur pour la similarité multi-vecteur avec garanties théoriques
- Reranking optionnel : après la récupération rapide via FDEs, les représentations multi-vecteurs originales peuvent reranker le top-k pour la précision finale
Implémentations#
- Weaviate 1.31+ : support natif de MUVERA pour les embeddings multi-vecteurs. Configuration simple via les paramètres de collection.
- Qdrant / FastEmbed 0.7.2+ : support MUVERA embeddings.
- TxtAI 9.0 : support MUVERA et ColBERT multi-vector ranking.
Trade-offs#
efplus élevé dans HNSW peut réduire le throughput de queries (mais améliore le recall)- Légère dégradation de recall possible par rapport au retrieval multi-vecteur pur (mitigeable via reranking)
- Meilleur pour : déploiements à grande échelle où les coûts mémoire sont significatifs, et les cas d'usage qui tolèrent une légère perte de recall