Векторни бази данни
Векторни бази данни — това са специализирани системи за съхранение и търсене, оптимизирани за работа с високоразмерни числови представяния (вектори) на неструктурирани данни[1]. В контекста на големите езикови модели (LLM) те осигуряват ефективно семантично търсене и са ключов компонент на съвременните системи за изкуствен интелект, по-специално в архитектурата RAG.
За разлика от традиционните релационни бази данни, ориентирани към точни съвпадения, векторните бази данни се специализират в приближено търсене на най-близки съседи (Approximate Nearest Neighbor, ANN), намирайки семантично близки обекти във високоразмерното пространство[2].
Основи на векторните бази данни
Векторни представяния (Embeddings)
Векторните представяния (embeddings) — това са числови представяния на текст, изображения, аудио и други типове данни под формата на вектори. Ключовият принцип се състои в това, че семантично близките обекти (например думи с подобно значение) се намират в това векторно пространство близо едно до друго[3].
Съвременните текстови embedding модели се създават с използване на модели на базата на архитектурата transformer, които прилагат механизми на внимание (self-attention) за разбиране на контекста. Размерността на такива представяния варира от 256 до 1024 измерения и повече при повечето съвременни модели[4].
Метрики за сходство
За измерване на „разстоянието" или сходството между вектори се използват различни метрики:
- Косинусово сходство (cosine similarity): Измерва косинуса на ъгъла между два вектора. Особено ефективно за текстови embeddings, тъй като отчита посоката на векторите, а не тяхната магнитуда[5].
- Евклидово разстояние (L2): Стандартното праволинейно разстояние между две точки в пространството.
- Скаларно произведение (dot product): Подобно на косинусовото сходство, но ненормализирано[6].
Алгоритми за индексиране
За бързо търсене във високоразмерни пространства се използват специализирани ANN алгоритми.
HNSW (Hierarchical Navigable Small World)
Алгоритъмът HNSW използва концепцията за „малкия свят" и многослойна йерархична структура от графи. Горните слоеве съдържат дълги връзки за бързо придвижване в пространството (грубо търсене), а долните — кратки за точно намиране на съседи. HNSW демонстрира логаритмична времева сложност O(log N) и е предпочитаният избор за повечето съвременни векторни бази данни[7].
IVF (Inverted File)
Алгоритъмът IVF разделя пространството на клъстери с използване на k-means клъстеризация. Търсенето се извършва в ограничен брой най-близки клъстери, което значително ускорява процеса. Броят на клъстерите обикновено се избира като √N, където N е общият брой вектори в dataset-а[8].
LSH (Locality-Sensitive Hashing)
Алгоритъмът LSH използва семейство от хеш функции, които с висока вероятност генерират еднакви хешове за близки вектори. Това позволява бързо групиране на сходни обекти[9].
Популярни векторни бази данни
- Pinecone: Напълно управлявана облачна векторна база данни със serverless архитектура.
- Qdrant: Високопроизводителна база данни, написана на Rust, с поддръжка на разширено филтриране и ACID-съвместими транзакции.
- Milvus: Мащабируема open-source база данни с cloud-native архитектура. Поддържа множество типове индекси, включително GPU-ускорени варианти.
- Weaviate: Open-source векторна база данни с GraphQL API и поддръжка на графове от знания.
- Chroma: Лекотегловна open-source база данни, оптимизирана за бързо прототипиране и експерименти.
- FAISS: Библиотека от Meta, която не е пълноценна база данни, но предоставя високопроизводителни алгоритми за индексиране на статични данни.
Приложение с LLM: архитектура RAG
Retrieval-Augmented Generation (RAG) — това е архитектура, при която LLM се допълва с външна база от знания чрез векторно търсене. RAG системите се състоят от два основни компонента[10]:
- Ретривър (Retriever): Компонентът за търсене, който използва векторната база данни за намиране на релевантна информация по заявката на потребителя.
- Генератор (Generator): LLM, която използва първоначалната заявка и информацията, намерена от ретривъра, за генериране на отговор.
За ефективна работа на RAG се използва хибридно търсене — комбинация от семантично (векторно) и лексикално (ключово, например BM25) търсене, което осигурява по-точни и релевантни резултати.
Тенденции и бъдещо развитие
Пазарът на векторни бази данни демонстрира взривен растеж, прогнозиран от $1,98 млрд. през 2023 година до $7,13 млрд. към 2029 година (CAGR 23,7%)[11]. Ключовите насоки на развитие включват:
- Мултимодални системи: Поддръжка на едновременно търсене по текст, изображения, аудио и видео в единно векторно пространство.
- Автоматична оптимизация: Използване на ML за автоматичен избор на оптимални индекси и параметри.
- Edge computing: Разработване на компактни решения за мобилни и IoT устройства.
- Квантови изчисления: Потенциално експоненциално ускоряване на търсенето по сходство.
- Невроморфни чипове: Имитация на работата на мозъка за свръхниска консумация на енергия при извършване на търсене.
Препратки
- Официален сайт на Pinecone
- Официален сайт на Qdrant
- Официален сайт на Milvus
- Официален сайт на Weaviate
Литература
- 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.
Бележки
- ↑ «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]