Vektorové databáze
Vektorové databáze — to jsou specializované systémy pro ukládání a vyhledávání, optimalizované pro práci s vysokodimenzionálními číselnými reprezentacemi (vektory) nestrukturovaných dat[1]. V kontextu velkých jazykových modelů (LLM) zajišťují efektivní sémantické vyhledávání a jsou klíčovou součástí moderních systémů umělé inteligence, zejména v architektuře RAG.
Na rozdíl od tradičních relačních databází zaměřených na přesné shody se vektorové databáze specializují na přibližné vyhledávání nejbližších sousedů (Approximate Nearest Neighbor, ANN), které nachází sémanticky blízké objekty ve vysokodimenzionálním prostoru[2].
Základy vektorových databází
Vektorové reprezentace (Embeddings)
Vektorové reprezentace (embeddings) — to jsou číselné reprezentace textu, obrázků, zvuku a dalších typů dat ve formě vektorů. Klíčový princip spočívá v tom, že sémanticky blízké objekty (například slova s podobným významem) jsou v tomto vektorovém prostoru umístěny blízko sebe[3].
Moderní textové embedding modely jsou vytvářeny pomocí modelů založených na architektuře transformer, které využívají mechanismy pozornosti (self-attention) k pochopení kontextu. Dimenzionalita těchto reprezentací se pohybuje od 256 do 1024 dimenzí a více u většiny moderních modelů[4].
Metriky podobnosti
Pro měření „vzdálenosti" nebo podobnosti mezi vektory se používají různé metriky:
- Kosinová podobnost (cosine similarity): Měří kosinus úhlu mezi dvěma vektory. Zvláště účinná pro textové embedding modely, protože zohledňuje směr vektorů, nikoli jejich velikost[5].
- Euklidovská vzdálenost (L2): Standardní přímočará vzdálenost mezi dvěma body v prostoru.
- Skalární součin (dot product): Podobné kosinové podobnosti, avšak není normalizováno[6].
Algoritmy indexování
Pro rychlé vyhledávání ve vysokodimenzionálních prostorech se používají specializované ANN algoritmy.
HNSW (Hierarchical Navigable Small World)
Algoritmus HNSW využívá koncept „malého světa" a vícevrstvou hierarchickou strukturu grafů. Horní vrstvy obsahují dlouhé spojení pro rychlý pohyb v prostoru (hrubé vyhledávání), zatímco dolní vrstvy obsahují krátká spojení pro přesné nalezení sousedů. HNSW vykazuje logaritmickou časovou složitost O(log N) a je preferovanou volbou pro většinu moderních vektorových databází[7].
IVF (Inverted File)
Algoritmus IVF rozděluje prostor do clusterů pomocí shlukování k-means. Vyhledávání probíhá v omezeném počtu nejbližších clusterů, což výrazně urychluje celý proces. Počet clusterů se obvykle volí jako √N, kde N je celkový počet vektorů v datasetu[8].
LSH (Locality-Sensitive Hashing)
Algoritmus LSH využívá rodinu hašovacích funkcí, které s vysokou pravděpodobností generují stejné haše pro blízké vektory. To umožňuje rychlé seskupování podobných objektů[9].
Oblíbené vektorové databáze
- Pinecone: Plně spravovaná cloudová vektorová databáze se serverless architekturou.
- Qdrant: Vysoce výkonná databáze napsaná v jazyce Rust s podporou pokročilého filtrování a ACID-kompatibilních transakcí.
- Milvus: Škálovatelná open-source databáze s cloud-native architekturou. Podporuje mnoho typů indexů včetně GPU-akcelerovaných variant.
- Weaviate: Open-source vektorová databáze s GraphQL API a podporou znalostních grafů.
- Chroma: Odlehčená open-source databáze optimalizovaná pro rychlé prototypování a experimenty.
- FAISS: Knihovna od společnosti Meta, která není plnohodnotnou databází, ale poskytuje vysoce výkonné algoritmy indexování pro statická data.
Využití s LLM: architektura RAG
Retrieval-Augmented Generation (RAG) — to je architektura, ve které je LLM doplněn externími znalostmi prostřednictvím vektorového vyhledávání. RAG systémy se skládají ze dvou hlavních komponent[10]:
- Retriever (Vyhledávací komponenta): Komponenta vyhledávání, která využívá vektorovou databázi k nalezení relevantních informací na základě dotazu uživatele.
- Generator (Generátor): LLM, který využívá původní dotaz a informace nalezené retrieverem ke generování odpovědi.
Pro efektivní fungování RAG se používá hybridní vyhledávání — kombinace sémantického (vektorového) a lexikálního (klíčového, například BM25) vyhledávání, což zajišťuje přesnější a relevantnější výsledky.
Trendy a budoucí vývoj
Trh vektorových databází vykazuje explozivní růst, který je předpovídán z 1,98 mld. USD v roce 2023 na 7,13 mld. USD do roku 2029 (CAGR 23,7 %)[11]. Klíčové směry rozvoje zahrnují:
- Multimodální systémy: Podpora simultánního vyhledávání podle textu, obrázků, zvuku a videa v jednotném vektorovém prostoru.
- Automatická optimalizace: Využití ML pro automatický výběr optimálních indexů a parametrů.
- Edge computing: Vývoj kompaktních řešení pro mobilní zařízení a zařízení IoT.
- Kvantové výpočty: Potenciální exponenciální urychlení vyhledávání podobnosti.
- Neuromorfní čipy: Napodobení funkce mozku pro dosažení velmi nízké spotřeby energie při provádění vyhledávání.
Odkazy
- Oficiální web Pinecone
- Oficiální web Qdrant
- Oficiální web Milvus
- Oficiální web Weaviate
Literatura
- 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.
Poznámky
- ↑ «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]