Vektoros adatbázisok

From Systems analysis Wiki
Jump to navigation Jump to search

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]:

  1. 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.
  2. 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

  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]