Baze de date vectoriale
Bazele de date vectoriale sunt sisteme specializate de stocare și căutare, optimizate pentru lucrul cu reprezentări numerice de înaltă dimensionalitate (vectori) ale datelor nestructurate[1]. În contextul modelelor lingvistice de mari dimensiuni (LLM), acestea asigură o căutare semantică eficientă și reprezintă o componentă-cheie a sistemelor moderne de inteligență artificială, în special în arhitectura RAG.
Spre deosebire de bazele de date relaționale tradiționale, orientate spre potriviri exacte, bazele de date vectoriale sunt specializate în căutarea aproximativă a celor mai apropiați vecini (Approximate Nearest Neighbor, ANN), identificând obiecte semantic apropiate în spațiul de înaltă dimensionalitate[2].
Bazele bazelor de date vectoriale
Reprezentări vectoriale (Embeddings)
Reprezentările vectoriale (embeddings) sunt reprezentări numerice ale textului, imaginilor, sunetului și altor tipuri de date sub formă de vectori. Principiul-cheie constă în faptul că obiectele semantic apropiate (de exemplu, cuvintele cu înțeles similar) sunt plasate în acest spațiu vectorial unele lângă altele[3].
Embeddingurile textuale moderne sunt create cu ajutorul modelelor bazate pe arhitectura transformer, care aplică mecanisme de atenție (self-attention) pentru înțelegerea contextului. Dimensionalitatea acestor reprezentări variază de la 256 la 1024 de dimensiuni și chiar mai mult pentru majoritatea modelelor moderne[4].
Metrici de similaritate
Pentru măsurarea „distanței" sau a similarității dintre vectori se utilizează diverse metrici:
- Similaritate cosinusoidală (cosine similarity): Măsoară cosinusul unghiului dintre doi vectori. Este deosebit de eficientă pentru embeddinguri textuale, deoarece ia în considerare direcția vectorilor, nu magnitudinea acestora[5].
- Distanța euclidiană (L2): Distanța rectilinie standard dintre două puncte în spațiu.
- Produsul scalar (dot product): Similar cu similaritatea cosinusoidală, dar nenormalizat[6].
Algoritmi de indexare
Pentru căutarea rapidă în spații de înaltă dimensionalitate se utilizează algoritmi ANN specializați.
HNSW (Hierarchical Navigable Small World)
Algoritmul HNSW folosește conceptul „lumii mici" și o structură ierarhică pe mai multe niveluri de grafuri. Nivelurile superioare conțin legături lungi pentru deplasarea rapidă în spațiu (căutare grosieră), iar cele inferioare — legături scurte pentru identificarea precisă a vecinilor. HNSW demonstrează o complexitate temporală logaritmică O(log N) și reprezintă alegerea preferată pentru majoritatea bazelor de date vectoriale moderne[7].
IVF (Inverted File)
Algoritmul IVF împarte spațiul în clustere folosind clustering k-means. Căutarea are loc într-un număr limitat de clustere apropiate, ceea ce accelerează semnificativ procesul. Numărul de clustere este ales de obicei ca √N, unde N este numărul total de vectori din dataset[8].
LSH (Locality-Sensitive Hashing)
Algoritmul LSH utilizează o familie de funcții hash care generează, cu probabilitate ridicată, hash-uri identice pentru vectori apropiați. Aceasta permite gruparea rapidă a obiectelor similare[9].
Baze de date vectoriale populare
- Pinecone: Bază de date vectorială cloud complet gestionată, cu arhitectură serverless.
- Qdrant: Bază de date de înaltă performanță, scrisă în Rust, cu suport pentru filtrare avansată și tranzacții compatibile ACID.
- Milvus: Bază de date open-source scalabilă, cu arhitectură cloud-native. Suportă numeroase tipuri de indecși, inclusiv variante accelerate prin GPU.
- Weaviate: Bază de date vectorială open-source cu API GraphQL și suport pentru grafuri de cunoștințe.
- Chroma: Bază de date open-source ușoară, optimizată pentru prototipare rapidă și experimente.
- FAISS: Bibliotecă de la Meta, care nu este o bază de date completă, dar oferă algoritmi de indexare de înaltă performanță pentru date statice.
Utilizare cu LLM: arhitectura RAG
Retrieval-Augmented Generation (RAG) este o arhitectură în care un LLM este completat cu o bază de cunoștințe externă prin intermediul căutării vectoriale. Sistemele RAG sunt compuse din două componente principale[10]:
- Retriever (Retriever): Componenta de căutare, care utilizează baza de date vectorială pentru a găsi informații relevante la interogarea utilizatorului.
- Generator (Generator): LLM-ul care folosește interogarea inițială și informațiile găsite de retriever pentru a genera răspunsul.
Pentru funcționarea eficientă a RAG se utilizează căutarea hibridă — o combinație de căutare semantică (vectorială) și lexicală (prin cuvinte-cheie, de exemplu BM25), ceea ce asigură rezultate mai precise și mai relevante.
Tendințe și dezvoltare viitoare
Piața bazelor de date vectoriale înregistrează o creștere explozivă, prognozată de la 1,98 miliarde USD în 2023 până la 7,13 miliarde USD până în 2029 (CAGR 23,7%)[11]. Direcțiile principale de dezvoltare includ:
- Sisteme multimodale: Suport pentru căutarea simultană după text, imagini, audio și video într-un spațiu vectorial unificat.
- Optimizare automată: Utilizarea ML pentru selectarea automată a indecșilor și parametrilor optimi.
- Edge computing: Dezvoltarea de soluții compacte pentru dispozitive mobile și IoT.
- Calcul cuantic: Potențială accelerare exponențială a căutării de similaritate.
- Cipuri neuromorfe: Imitarea funcționării creierului pentru un consum ultraredus de energie la efectuarea căutărilor.
Referințe
- Site-ul oficial Pinecone
- Site-ul oficial Qdrant
- Site-ul oficial Milvus
- Site-ul oficial Weaviate
Bibliografie
- 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.
Note
- ↑ «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]