42 points par GN⁺ 2025-07-28 | 1 commentaires | Partager sur WhatsApp

En travaillant chez Weaviate, une base de données vectorielle, voici un résumé de 37 leçons tirées de l’expérience réelle en production
↳ De BM25, l’utilité de la recherche par mots-clés, jusqu’à la recherche vectorielle, les embeddings et la recherche hybride

1. BM25 est une base de référence puissante pour la recherche

  • En pratique, il est plus réaliste de commencer par une recherche simple par mots-clés comme BM25, de vérifier les performances, puis d’étendre progressivement vers la recherche vectorielle plutôt que de partir directement sur une recherche vectorielle complexe

2. La recherche vectorielle est approximative (Approximate), pas exacte (Exact)

  • À grande échelle, on utilise des algorithmes d’approximate nearest neighbors (ANN) comme HNSW, IVF, ScaNN, etc. pour gagner en vitesse, au prix de certains compromis sur la précision
  • L’indexation vectorielle est l’élément clé qui garantit la vitesse des vector DB à grande échelle

3. Une vector DB ne stocke pas seulement des embeddings

  • Elle stocke aussi les données sources (texte, etc.) et les métadonnées, ce qui permet le filtrage par métadonnées, la recherche par mots-clés, la recherche hybride, etc.

4. L’usage principal d’une vector DB n’est pas l’IA générative, mais la “recherche”

  • Même injecter du contexte dans un LLM relève fondamentalement de la “recherche”, et les vector DB ainsi que les LLM forment une combinaison particulièrement adaptée

5. Il faut spécifier explicitement le nombre de résultats à retourner

  • Si l’on ne définit pas le paramètre limit ou top_k, tous les résultats les plus proches de la requête sont triés puis renvoyés

6. Il existe plusieurs types d’embeddings

  • En plus des vecteurs denses (dense), il existe aussi différents formats de vecteurs d’embedding comme sparse, binary, multi-vector, etc.

7. Des benchmarks pour choisir un modèle d’embedding

  • MTEB couvre de nombreuses tâches d’embedding (classification, clustering, recherche, etc.)
  • Pour un benchmark spécialisé en recherche d’information, voir BEIR

8. La plupart des modèles de MTEB sont uniquement en anglais

  • Pour un environnement multilingue ou non anglophone, il est recommandé d’utiliser le benchmark MMTEB

9. Histoire des embeddings : statiques vs contextuels

  • Les embeddings statiques comme Word2Vec ou GloVe fournissent une représentation fixe par mot
  • Les embeddings contextuels comme BERT génèrent des vecteurs dynamiquement selon le contexte
  • Les embeddings statiques restent rapides à consulter dans des environnements contraints en ressources

10. Différence entre sparse vector et sparse embedding

  • Un sparse vector peut être généré de façon statistique comme TF-IDF/BM25, ou par réseau de neurones (sparse embedding, SPLADE, etc.)
  • Tous les sparse embeddings sont des sparse vectors, mais l’inverse n’est pas vrai

11. On peut créer des embeddings pour bien plus que du texte

  • Images, PDF (après conversion en image), graphes, etc. peuvent aussi être transformés en embeddings pour permettre une recherche vectorielle multimodale

12. Nombre de dimensions des embeddings et coût de stockage

  • Plus le nombre de dimensions augmente, plus le coût de stockage augmente aussi
  • Pour des usages simples comme un “chatbot”, un modèle à haute dimension peut être inutile
  • Il est aussi possible de réduire la dimension avec Matryoshka Representation Learning

13. Les tutoriels “Chat with your docs” sont le hello world de l’IA générative

14. Un modèle d’embedding doit être appelé de manière répétée

  • Il faut ré-embeder et réindexer non seulement lors de l’ingestion des documents, mais aussi au moment des requêtes, lors de l’ajout ou de la modification de documents, et à chaque changement de modèle d’embedding

15. La similarité vectorielle et la pertinence réelle peuvent différer

  • Des phrases semblables (par ex. “comment réparer un robinet” vs “où acheter un robinet”) peuvent en réalité être peu pertinentes l’une pour l’autre

16. Cosine similarity et cosine distance sont différentes

  • Similarité et distance sont mathématiquement inversement corrélées
  • Pour un même vecteur, la similarité vaut 1 et la distance 0

17. Avec des vecteurs normalisés, cosine similarity et dot product sont équivalents

  • Si les vecteurs sont normalisés, le dot product est plus efficace en calcul

18. Le R de RAG n’est pas “vector search”, mais “retrieval”

  • Dans le RAG, les méthodes de retrieval sont diverses : mots-clés, vecteurs, filtres, etc.

19. La recherche vectorielle n’est qu’un outil parmi d’autres

  • L’important est la combinaison de plusieurs approches comme la recherche par mots-clés, le filtrage et le reranking (hybride)

20. Bien appliquer recherche par mots-clés et recherche vectorielle

  • La recherche vectorielle convient aux correspondances sémantiques et synonymiques, la recherche par mots-clés aux termes exacts ; si les deux sont nécessaires, on peut utiliser une recherche hybride et ajuster la pondération alpha

21. Ce que signifie la recherche hybride

  • Elle désigne généralement une combinaison mots-clés + vecteurs, mais toute combinaison avec d’autres modes de recherche comme les métadonnées est aussi dite “hybride”

22. Le filtrage n’accélère pas toujours la recherche

  • Par exemple, la connectivité d’un graphe HNSW peut être rompue, et un filtrage a posteriori peut ne retourner aucun résultat
  • Chaque vector DB applique ses propres techniques d’optimisation pour gérer cela

23. L’utilité des pipelines de recherche en deux étapes

  • Pas seulement pour les systèmes de recommandation : en RAG aussi, on peut extraire un premier ensemble de candidats, puis améliorer la qualité avec un reranking performant en second passage

24. Différence entre recherche vectorielle et reranking

  • La recherche vectorielle renvoie une partie des résultats depuis l’ensemble de la base, tandis que le reranking réordonne un ensemble de résultats déjà obtenu

25. La difficulté de choisir la taille des chunks à embeder

  • Trop petits, ils font perdre du contexte ; trop grands, ils diluent le sens
  • On peut aussi vectoriser un document entier avec du mean pooling, mais l’information peut alors être diluée (comme une affiche créée en fusionnant toutes les images d’un film)

26. Différence entre bibliothèque d’indexation vectorielle et vector DB

  • Les deux sont rapides, mais une vector DB fournit aussi des fonctions de gestion des données comme la durabilité, le CRUD, les filtres, la recherche hybride, etc.

27. Même avec l’extension du contexte des LLM, le RAG continue d’évoluer

  • À chaque apparition de LLM à long contexte, on entend que “le RAG est mort”, mais dans la pratique il reste nécessaire

28. La quantification vectorielle peut réduire l’information de 97 % tout en conservant la recherche

  • Avec la binary quantization, par exemple, on peut réduire le stockage par 32 (32-bit float → 1-bit, etc.)

29. La recherche vectorielle n’est pas robuste aux fautes de frappe

  • Même avec un grand corpus textuel, toutes les fautes de frappe ne sont pas reflétées dans les données ; seules certaines sont couvertes

30. Il existe de nombreuses métriques pour évaluer la qualité de la recherche

  • Les métriques de ranking comme NDCG@k, mais aussi des métriques simples comme Precision/Recall, peuvent être efficaces selon le contexte

31. Exemple concret du trade-off Precision-Recall

  • Renvoyer un seul résultat (Precision ↑ / Recall ↓), ou renvoyer tous les résultats (Recall ↑ / Precision ↓), illustre bien des cas extrêmes

32. Des métriques qui tiennent compte de l’ordre des résultats

  • Precision/Recall ne prennent pas en compte l’ordre ; il faut des métriques comme MRR@k, MAP@k, NDCG@k pour cela

33. L’influence du tokenizer

  • Pas seulement le BPE : le tokenizer influence aussi la qualité de la recherche par mots-clés et de la recherche hybride

34. Out-of-domain et out-of-vocabulary sont différents

  • L’OOV peut être atténué avec un tokenizer intelligent, mais en out-of-domain, l’embedding lui-même peut perdre tout son sens

35. La nécessité d’optimiser les requêtes

  • Comme pour la recherche par mots-clés, il faut prendre l’habitude d’optimiser les requêtes aussi en recherche vectorielle

36. Le paradigme après la recherche vectorielle

  • Recherche par mots-clés → recherche vectorielle → retrieval fondé sur le raisonnement des LLM

37. La recherche d’information (retrieval) est aujourd’hui le domaine le plus “hot”

  • Avec les LLM, trouver l’information optimale à leur fournir est devenu l’enjeu le plus central et le plus important

1 commentaires

 
mhj5730 2025-07-29

C’est intéressant de voir toutes les réflexions qu’on peut avoir en travaillant sur la recherche vectorielle.