Vektordatabaser
Vektordatabaser — är specialiserade lagrings- och söksystem optimerade för arbete med högdimensionella numeriska representationer (vektorer) av ostrukturerad data[1]. I kontexten av stora språkmodeller (LLM) möjliggör de effektiv semantisk sökning och utgör en nyckelkomponent i moderna system för artificiell intelligens, i synnerhet inom RAG-arkitekturen.
Till skillnad från traditionella relationsdatabaser, inriktade på exakta träffar, specialiserar sig vektordatabaser på approximativ sökning efter närmaste grannar (Approximate Nearest Neighbor, ANN), och hittar semantiskt närstående objekt i ett högdimensionellt rum[2].
Grunderna i vektordatabaser
Vektorrepresentationer (Embeddings)
Vektorrepresentationer (embeddings) — är numeriska representationer av text, bilder, ljud och andra datatyper i form av vektorer. Nyckelprincipen är att semantiskt närstående objekt (till exempel ord med liknande betydelse) placeras nära varandra i detta vektorrum[3].
Moderna textuella embeddings skapas med hjälp av modeller baserade på transformer-arkitekturen, som använder uppmärksamhetsmekanismer (self-attention) för att förstå kontext. Dimensionaliteten hos sådana representationer varierar från 256 till 1024 dimensioner och mer för de flesta moderna modeller[4].
Likhetsmått
För att mäta "avståndet" eller likheten mellan vektorer används olika mätvärden:
- Kosinuslikhet (cosine similarity): Mäter kosinus för vinkeln mellan två vektorer. Särskilt effektivt för textuella embeddings, eftersom det tar hänsyn till vektorernas riktning snarare än deras magnitud[5].
- Euklidiskt avstånd (L2): Det standardmässiga rätlinjiga avståndet mellan två punkter i rummet.
- Skalärprodukt (dot product): Liknar kosinuslikhet men är inte normaliserat[6].
Indexeringsalgoritmer
För snabb sökning i högdimensionella rum används specialiserade ANN-algoritmer.
HNSW (Hierarchical Navigable Small World)
Algoritmen HNSW använder konceptet "liten värld" och en flerskiktad hierarkisk grafstruktur. De övre skikten innehåller långa kopplingar för snabb förflyttning genom rummet (grov sökning), medan de nedre innehåller korta kopplingar för exakt lokalisering av grannar. HNSW uppvisar logaritmisk tidskomplexitet O(log N) och är det föredragna valet för de flesta moderna vektordatabaser[7].
IVF (Inverted File)
Algoritmen IVF delar upp rummet i kluster med hjälp av k-means-klustring. Sökningen sker inom ett begränsat antal närmaste kluster, vilket påtagligt snabbar upp processen. Antalet kluster väljs vanligtvis som √N, där N är det totala antalet vektorer i datasetet[8].
LSH (Locality-Sensitive Hashing)
Algoritmen LSH använder en familj av hashfunktioner som med hög sannolikhet genererar identiska hashar för närstående vektorer. Detta möjliggör snabb gruppering av liknande objekt[9].
Populära vektordatabaser
- Pinecone: En fullständigt hanterad molnbaserad vektordatabas med serverless-arkitektur.
- Qdrant: En högpresterande databas skriven i Rust, med stöd för avancerad filtrering och ACID-kompatibla transaktioner.
- Milvus: En skalbar open-source-databas med cloud-native-arkitektur. Stöder många typer av index, inklusive GPU-accelererade varianter.
- Weaviate: En open-source-vektordatabas med GraphQL API och stöd för kunskapsgrafer.
- Chroma: En lättviktig open-source-databas optimerad för snabb prototypframtagning och experiment.
- FAISS: Ett bibliotek från Meta som inte är en fullständig databas, men som tillhandahåller högpresterande indexeringsalgoritmer för statisk data.
Användning med LLM: RAG-arkitekturen
Retrieval-Augmented Generation (RAG) — är en arkitektur där en LLM kompletteras med en extern kunskapsbas via vektorsökning. RAG-system består av två huvudkomponenter[10]:
- Hämtare (Retriever): En sökkomponent som använder vektordatabasen för att hitta relevant information baserat på användarens förfrågan.
- Generator (Generator): En LLM som använder den ursprungliga förfrågan och den information som hämtaren har hittat för att generera ett svar.
För effektiv RAG-drift används hybridsökning — en kombination av semantisk (vektorbaserad) och lexikal (nyckelordsbaserad, till exempel BM25) sökning, vilket ger mer precisa och relevanta resultat.
Trender och framtida utveckling
Marknaden för vektordatabaser uppvisar explosiv tillväxt, med prognoser från 1,98 miljarder USD år 2023 till 7,13 miljarder USD till 2029 (CAGR 23,7%)[11]. Viktiga utvecklingsriktningar inkluderar:
- Multimodala system: Stöd för samtidig sökning efter text, bilder, ljud och video i ett gemensamt vektorrum.
- Automatisk optimering: Användning av ML för automatiskt val av optimala index och parametrar.
- Edge computing: Utveckling av kompakta lösningar för mobila enheter och IoT-enheter.
- Kvantkomplexitet: Potentiell exponentiell acceleration av likhetssökning.
- Neuromorfiska chip: Imitation av hjärnans funktion för extremt låg energiförbrukning vid sökning.
Länkar
- Officiell webbplats för Pinecone
- Officiell webbplats för Qdrant
- Officiell webbplats för Milvus
- Officiell webbplats för Weaviate
Litteratur
- 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.
Noter
- ↑ «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]