Vectordatabases
Vectordatabases zijn gespecialiseerde opslag- en zoeksystemen die zijn geoptimaliseerd voor het werken met hoogdimensionale numerieke representaties (vectoren) van ongestructureerde gegevens[1]. In de context van grote taalmodellen (LLM) bieden zij efficiënt semantisch zoeken en vormen zij een sleutelcomponent van moderne kunstmatige-intelligentiesystemen, met name in de RAG-architectuur.
In tegenstelling tot traditionele relationele databases, die gericht zijn op exacte overeenkomsten, zijn vectordatabases gespecialiseerd in benaderd zoeken naar de dichtstbijzijnde buren (Approximate Nearest Neighbor, ANN), waarbij semantisch verwante objecten in een hoogdimensionale ruimte worden gevonden[2].
Grondbeginselen van vectordatabases
Vectorrepresentaties (Embeddings)
Vectorrepresentaties (embeddings) zijn numerieke representaties van tekst, afbeeldingen, audio en andere gegevenstypen in de vorm van vectoren. Het kernprincipe is dat semantisch verwante objecten (bijvoorbeeld woorden met een vergelijkbare betekenis) dicht bij elkaar in deze vectorruimte worden geplaatst[3].
Moderne tekstembeddings worden gemaakt met behulp van modellen op basis van de transformer-architectuur, die self-attention-mechanismen toepassen voor het begrijpen van context. De dimensionaliteit van dergelijke representaties varieert van 256 tot 1024 dimensies en meer voor de meeste hedendaagse modellen[4].
Gelijkheidsmetrieken
Voor het meten van de "afstand" of gelijkenis tussen vectoren worden verschillende metrieken gebruikt:
- Cosinusgelijkenis (cosine similarity): Meet de cosinus van de hoek tussen twee vectoren. Bijzonder effectief voor tekstembeddings, omdat het rekening houdt met de richting van de vectoren en niet met hun magnitude[5].
- Euclidische afstand (L2): De standaard rechte-lijnafstand tussen twee punten in de ruimte.
- Inwendig product (dot product): Vergelijkbaar met cosinusgelijkenis, maar niet genormaliseerd[6].
Algoritmen voor indexering
Voor snel zoeken in hoogdimensionale ruimten worden gespecialiseerde ANN-algoritmen gebruikt.
HNSW (Hierarchical Navigable Small World)
Het algoritme HNSW maakt gebruik van het concept van de "kleine wereld" en een meerlaagse hiërarchische grafstructuur. De bovenste lagen bevatten lange verbindingen voor snelle verplaatsing door de ruimte (globaal zoeken), terwijl de onderste lagen korte verbindingen bevatten voor het nauwkeurig vinden van buren. HNSW vertoont een logaritmische tijdscomplexiteit van O(log N) en is de geprefereerde keuze voor de meeste moderne vectordatabases[7].
IVF (Inverted File)
Het algoritme IVF verdeelt de ruimte in clusters met behulp van k-means-clustering. Het zoeken vindt plaats in een beperkt aantal dichtstbijzijnde clusters, wat het proces aanzienlijk versnelt. Het aantal clusters wordt doorgaans gekozen als √N, waarbij N het totale aantal vectoren in de dataset is[8].
LSH (Locality-Sensitive Hashing)
Het algoritme LSH maakt gebruik van een familie hashfuncties die met grote waarschijnlijkheid identieke hashes genereren voor nabijgelegen vectoren. Dit maakt het mogelijk om vergelijkbare objecten snel te groeperen[9].
Populaire vectordatabases
- Pinecone: Een volledig beheerde cloudgebaseerde vectordatabase met een serverless-architectuur.
- Qdrant: Een krachtige database geschreven in Rust, met ondersteuning voor geavanceerde filtering en ACID-compatibele transacties.
- Milvus: Een schaalbare open-source database met een cloud-native architectuur. Ondersteunt meerdere typen indexen, waaronder GPU-versnelde varianten.
- Weaviate: Een open-source vectordatabase met een GraphQL API en ondersteuning voor kennisgrafieken.
- Chroma: Een lichtgewicht open-source database, geoptimaliseerd voor snelle prototyping en experimenten.
- FAISS: Een bibliotheek van Meta, die geen volwaardige database is, maar hoogwaardige indexeringsalgoritmen biedt voor statische gegevens.
Toepassing met LLM: RAG-architectuur
Retrieval-Augmented Generation (RAG) is een architectuur waarbij een LLM wordt aangevuld met een externe kennisbasis via vectorzoeken. RAG-systemen bestaan uit twee hoofdcomponenten[10]:
- Retriever: De zoekcomponent die de vectordatabase gebruikt om relevante informatie te vinden op basis van de zoekopdracht van de gebruiker.
- Generator: Een LLM die de oorspronkelijke zoekopdracht en de door de retriever gevonden informatie gebruikt om een antwoord te genereren.
Voor een effectieve werking van RAG wordt hybride zoeken gebruikt — een combinatie van semantisch (vectorgebaseerd) en lexicaal (op sleutelwoorden gebaseerd, bijvoorbeeld BM25) zoeken, wat zorgt voor nauwkeurigere en relevantere resultaten.
Trends en toekomstige ontwikkeling
De markt voor vectordatabases vertoont een explosieve groei, met een verwachte stijging van $1,98 miljard in 2023 naar $7,13 miljard in 2029 (CAGR 23,7%)[11]. De belangrijkste ontwikkelingsrichtingen zijn:
- Multimodale systemen: Ondersteuning voor gelijktijdig zoeken op tekst, afbeeldingen, audio en video in één vectorruimte.
- Automatische optimalisatie: Gebruik van ML voor het automatisch selecteren van optimale indexen en parameters.
- Edge computing: Ontwikkeling van compacte oplossingen voor mobiele apparaten en IoT-apparaten.
- Kwantumcomputing: Potentiële exponentiële versnelling van gelijkeniszoeken.
- Neuromorfische chips: Nabootsing van de werking van de hersenen voor ultralaag energieverbruik bij het uitvoeren van zoekopdrachten.
Verwijzingen
- Officiële website van Pinecone
- Officiële website van Qdrant
- Officiële website van Milvus
- Officiële website van Weaviate
Literatuur
- 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.
Noten
- ↑ «What Is a Vector Database?». CloudRaft. [1]
- ↑ «What is a Vector Database?». Qdrant Blog. [2]
- ↑ «What Are Vector Embeddings?». LakeFS. [3]
- ↑ «What are embeddings?». Zilliz. [4]
- ↑ Sahoo, A., Maiti, J. «A Comparative Study of Similarity Metrics for Textual Embeddings». arXiv:2501.01234. [5]
- ↑ «Vector search and dense vector fields». Elastic. [6]
- ↑ Malkov, Y. A., Yashunin, D. A. «Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs». arXiv:1603.09320. [7]
- ↑ «The index IVF». FAISS Wiki. [8]
- ↑ Datar, M., et al. «Locality-Sensitive Hashing Scheme Based on p-Stable Distributions». Symposium on Computational Geometry. [9]
- ↑ Lewis, P., et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv:2005.11401. [10]
- ↑ «Vector Database Global Market Report 2024». The Business Research Company. [11]