Bases de données vectorielles

From Systems analysis wiki
Jump to navigation Jump to search

Les bases de données vectorielles sont des systèmes de stockage et de recherche spécialisés, optimisés pour travailler avec des représentations numériques de haute dimension (vecteurs) de données non structurées[1]. Dans le contexte des grands modèles de langage (LLM), elles permettent une recherche sémantique efficace et constituent un composant clé des systèmes d'intelligence artificielle modernes, notamment dans l'architecture RAG.

Contrairement aux bases de données relationnelles traditionnelles, axées sur les correspondances exactes, les bases de données vectorielles se spécialisent dans la recherche approximative des plus proches voisins (Approximate Nearest Neighbor, ANN), trouvant des objets sémantiquement proches dans un espace de haute dimension[2].

Fondements des bases de données vectorielles

Représentations vectorielles (Embeddings)

Les représentations vectorielles (embeddings) sont des représentations numériques de textes, d'images, de sons et d'autres types de données sous forme de vecteurs. Le principe clé est que les objets sémantiquement proches (par exemple, des mots ayant une signification similaire) sont positionnés à proximité les uns des autres dans cet espace vectoriel[3].

Les embeddings textuels modernes sont créés à l'aide de modèles basés sur l'architecture Transformer, qui appliquent des mécanismes d'attention (self-attention) pour comprendre le contexte. La dimension de ces représentations varie de 256 à 1024 dimensions, voire plus, pour la plupart des modèles contemporains[4].

Métriques de similarité

Pour mesurer la « distance » ou la similarité entre les vecteurs, différentes métriques sont utilisées :

  • Similarité cosinus (cosine similarity) : Mesure le cosinus de l'angle entre deux vecteurs. Particulièrement efficace pour les embeddings textuels, car elle prend en compte la direction des vecteurs plutôt que leur magnitude[5].
  • Distance euclidienne (L2) : La distance en ligne droite standard entre deux points dans l'espace.
  • Produit scalaire (dot product) : Similaire à la similarité cosinus, mais non normalisé[6].

Algorithmes d'indexation

Pour une recherche rapide dans les espaces de haute dimension, des algorithmes ANN spécialisés sont utilisés.

HNSW (Hierarchical Navigable Small World)

L'algorithme HNSW utilise le concept de « petit monde » (small world) et une structure hiérarchique de graphes multicouches. Les couches supérieures contiennent des liens longs pour un déplacement rapide dans l'espace (recherche grossière), tandis que les couches inférieures contiennent des liens courts pour une localisation précise des voisins. HNSW présente une complexité temporelle logarithmique de O(log N) et constitue le choix privilégié pour la plupart des bases de données vectorielles modernes[7].

IVF (Inverted File)

L'algorithme IVF divise l'espace en clusters à l'aide du partitionnement k-moyennes (k-means). La recherche s'effectue dans un nombre limité de clusters les plus proches, ce qui accélère considérablement le processus. Le nombre de clusters est généralement choisi comme étant √N, où N est le nombre total de vecteurs dans le jeu de données[8].

LSH (Locality-Sensitive Hashing)

L'algorithme LSH utilise une famille de fonctions de hachage qui, avec une forte probabilité, génèrent des hachages identiques pour des vecteurs proches. Cela permet de regrouper rapidement des objets similaires[9].

Bases de données vectorielles populaires

  • Pinecone : Une base de données vectorielle cloud entièrement gérée avec une architecture serverless.
  • Qdrant : Une base de données haute performance écrite en Rust, prenant en charge un filtrage avancé et des transactions conformes à ACID.
  • Milvus : Une base de données open-source évolutive avec une architecture native pour le cloud (cloud-native). Elle prend en charge de nombreux types d'index, y compris des variantes accélérées par GPU.
  • Weaviate : Une base de données vectorielle open-source avec une API GraphQL et une prise en charge des graphes de connaissances.
  • Chroma : Une base de données open-source légère, optimisée pour le prototypage rapide et l'expérimentation.
  • FAISS : Une bibliothèque de Meta, qui n'est pas une base de données à part entière, mais qui fournit des algorithmes d'indexation haute performance pour des données statiques.

Application avec les LLM : architecture RAG

Retrieval-Augmented Generation (RAG) est une architecture dans laquelle un LLM est complété par une base de connaissances externe via une recherche vectorielle. Les systèmes RAG se composent de deux composants principaux[10] :

  1. Retriever : Le composant de recherche qui utilise une base de données vectorielle pour trouver des informations pertinentes en réponse à la requête de l'utilisateur.
  2. Générateur : Le LLM qui utilise la requête initiale et les informations trouvées par le retriever pour générer une réponse.

Pour un fonctionnement efficace, RAG utilise la recherche hybride — une combinaison de recherche sémantique (vectorielle) et de recherche lexicale (par mots-clés, par exemple BM25), ce qui garantit des résultats plus précis et pertinents.

Tendances et développements futurs

Le marché des bases de données vectorielles connaît une croissance explosive, avec des prévisions passant de 1,98 milliard de dollars en 2023 à 7,13 milliards de dollars d'ici 2029 (TCAC de 23,7 %)[11]. Les principaux axes de développement incluent :

  • Systèmes multimodaux : Prise en charge de la recherche simultanée de textes, d'images, de sons et de vidéos dans un espace vectoriel unifié.
  • Optimisation automatique : Utilisation du ML pour la sélection automatique des index et des paramètres optimaux.
  • Edge computing : Développement de solutions compactes pour les appareils mobiles et IoT.
  • Informatique quantique : Accélération exponentielle potentielle de la recherche de similarité.
  • Puces neuromorphiques : Imitation du fonctionnement du cerveau pour une consommation d'énergie ultra-faible lors de l'exécution de la recherche.

Liens

Bibliographie

  • Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
  • Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
  • Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
  • Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
  • Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
  • Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
  • Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
  • Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
  • Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.

Notes

  1. "What Is a Vector Database?". CloudRaft. [1]
  2. "What is a Vector Database?". Qdrant Blog. [2]
  3. "What Are Vector Embeddings?". LakeFS. [3]
  4. "What are embeddings?". Zilliz. [4]
  5. Sahoo, A., Maiti, J. "A Comparative Study of Similarity Metrics for Textual Embeddings". arXiv:2501.01234. [5]
  6. "Vector search and dense vector fields". Elastic. [6]
  7. Malkov, Y. A., Yashunin, D. A. "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs". arXiv:1603.09320. [7]
  8. "The index IVF". FAISS Wiki. [8]
  9. Datar, M., et al. "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions". Symposium on Computational Geometry. [9]
  10. Lewis, P., et al. "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks". arXiv:2005.11401. [10]
  11. "Vector Database Global Market Report 2024". The Business Research Company. [11]