Vektoros adatbázisok
Vektoros adatbázisok — olyan specializált tárolási és keresési rendszerek, amelyek nagy dimenziószámú numerikus reprezentációk (vektorok) feldolgozására és strukturálatlan adatok kezelésére vannak optimalizálva[1]. A nagy nyelvi modellek (LLM) kontextusában hatékony szemantikus keresést tesznek lehetővé, és a modern mesterséges intelligencia rendszerek kulcsfontosságú összetevői, különösen a RAG architektúrában.
A hagyományos relációs adatbázisoktól eltérően, amelyek pontos egyezésekre összpontosítanak, a vektoros adatbázisok a közelítő legközelebbi szomszéd keresésre (Approximate Nearest Neighbor, ANN) specializálódtak, amelyek nagy dimenziószámú térben szemantikailag közeli objektumokat találnak meg[2].
Vektoros adatbázisok alapjai
Vektoros reprezentációk (Embeddings)
Vektoros reprezentációk (embeddings) — szöveg, képek, hang és más adattípusok numerikus, vektoros formában való ábrázolásai. Az alapelv az, hogy a szemantikailag közeli objektumok (például azonos jelentésű szavak) egymás közelében helyezkednek el ebben a vektortérben[3].
A modern szöveges embedding modellek transformer architektúrán alapulnak, amelyek önfigyelmi mechanizmusokat (self-attention) alkalmaznak a kontextus megértéséhez. Az ilyen reprezentációk dimenziószáma a legtöbb modern modell esetében 256-tól 1024-ig vagy még több dimenzióig terjedhet[4].
Hasonlósági mérőszámok
A vektorok közötti „távolság" vagy hasonlóság mérésére különböző mérőszámokat alkalmaznak:
- Koszinusz-hasonlóság (cosine similarity): Két vektor közötti szög koszinuszát méri. Különösen hatékony szöveges embedding esetén, mivel a vektorok irányát veszi figyelembe, nem azok nagyságát[5].
- Euklideszi távolság (L2): A két pont közötti standard egyenes vonalú távolság a térben.
- Skaláris szorzat (dot product): Hasonló a koszinusz-hasonlósághoz, de nincs normalizálva[6].
Indexelési algoritmusok
A nagy dimenziószámú terekben való gyors kereséshez specializált ANN-algoritmusokat alkalmaznak.
HNSW (Hierarchical Navigable Small World)
A HNSW algoritmus a „kis világ" koncepcióját és egy többrétegű hierarchikus gráfstruktúrát használ. A felső rétegek hosszú összeköttetéseket tartalmaznak a tér gyors bejárásához (durva keresés), míg az alsó rétegek rövid összeköttetéseket a szomszédok pontos megtalálásához. A HNSW logaritmikus időbonyolultságot mutat O(log N) esetén, és a legtöbb modern vektoros adatbázis preferált választása[7].
IVF (Inverted File)
Az IVF algoritmus a teret k-means klaszterezéssel klaszterekre osztja. A keresés a legközelebbi klaszterek korlátozott számán belül zajlik, ami jelentősen felgyorsítja a folyamatot. A klaszterek száma általában √N értékre van beállítva, ahol N a dataset vektorainak teljes száma[8].
LSH (Locality-Sensitive Hashing)
Az LSH algoritmus olyan hash-függvény-családot használ, amelyek nagy valószínűséggel azonos hash-értéket generálnak közeli vektorokhoz. Ez lehetővé teszi a hasonló objektumok gyors csoportosítását[9].
Népszerű vektoros adatbázisok
- Pinecone: Teljesen felügyelt, felhőalapú vektoros adatbázis serverless architektúrával.
- Qdrant: Rust nyelven írt, nagy teljesítményű adatbázis, fejlett szűrési és ACID-kompatibilis tranzakciótámogatással.
- Milvus: Skálázható, nyílt forráskódú adatbázis cloud-native architektúrával. Számos indextípust támogat, köztük GPU-gyorsított változatokat.
- Weaviate: Nyílt forráskódú vektoros adatbázis GraphQL API-val és tudásgráf-támogatással.
- Chroma: Könnyűsúlyú, nyílt forráskódú adatbázis, gyors prototípuskészítésre és kísérletezésre optimalizálva.
- FAISS: A Meta könyvtára, amely nem teljes értékű adatbázis, de nagy teljesítményű indexelési algoritmusokat biztosít statikus adatokhoz.
Alkalmazás LLM-mel: RAG architektúra
Retrieval-Augmented Generation (RAG) — olyan architektúra, amelyben az LLM vektoros keresésen keresztül külső tudásbázissal egészül ki. A RAG-rendszerek két fő összetevőből állnak[10]:
- Visszakereső (Retriever): A keresési összetevő, amely a vektoros adatbázist használja a felhasználó lekérdezéséhez releváns információk megtalálásához.
- Generátor (Generator): Az LLM, amely az eredeti lekérdezést és a visszakereső által megtalált információkat felhasználva választ generál.
A RAG hatékony működéséhez hibrid keresést alkalmaznak — a szemantikus (vektoros) és a lexikális (kulcsszavas, például BM25) keresés kombinációját, ami pontosabb és relevánsabb eredményeket biztosít.
Tendenciák és jövőbeli fejlődés
A vektoros adatbázisok piaca robbanásszerű növekedést mutat, az előrejelzések szerint 2023-ban 1,98 milliárd dollárról 2029-re 7,13 milliárd dollárra nő (CAGR 23,7%)[11]. A fejlődés főbb irányai:
- Multimodális rendszerek: Szöveg, kép, hang és videó egyidejű keresésének támogatása egységes vektortérben.
- Automatikus optimalizálás: ML alkalmazása az optimális indexek és paraméterek automatikus kiválasztásához.
- Edge computing: Kompakt megoldások fejlesztése mobil- és IoT-eszközökhöz.
- Kvantumszámítástechnika: A hasonlóságkeresés potenciálisan exponenciális gyorsítása.
- Neuromorf chipek: Az agyi működés utánzása rendkívül alacsony energiafogyasztású keresés megvalósításához.
Hivatkozások
- A Pinecone hivatalos weboldala
- A Qdrant hivatalos weboldala
- A Milvus hivatalos weboldala
- A Weaviate hivatalos weboldala
Irodalom
- 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.
Megjegyzések
- ↑ «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]