Wektorowe bazy danych
Wektorowe bazy danych — to wyspecjalizowane systemy przechowywania i wyszukiwania, zoptymalizowane do pracy z wysokowymiarowymi reprezentacjami numerycznymi (wektorami) danych nieustrukturyzowanych[1]. W kontekście dużych modeli językowych (LLM) zapewniają one efektywne wyszukiwanie semantyczne i są kluczowym komponentem nowoczesnych systemów sztucznej inteligencji, w szczególności w architekturze RAG.
W przeciwieństwie do tradycyjnych relacyjnych baz danych, ukierunkowanych na dokładne dopasowania, wektorowe bazy danych specjalizują się w przybliżonym wyszukiwaniu najbliższych sąsiadów (Approximate Nearest Neighbor, ANN), znajdując semantycznie bliskie obiekty w przestrzeni wysokowymiarowej[2].
Podstawy wektorowych baz danych
Reprezentacje wektorowe (Embeddings)
Reprezentacje wektorowe (embeddings) — to numeryczne reprezentacje tekstu, obrazów, dźwięku i innych typów danych w postaci wektorów. Kluczowa zasada polega na tym, że semantycznie bliskie obiekty (na przykład słowa o podobnym znaczeniu) znajdują się w tej przestrzeni wektorowej blisko siebie[3].
Nowoczesne tekstowe embeddingi tworzone są z wykorzystaniem modeli opartych na architekturze transformer, które stosują mechanizmy uwagi (self-attention) do rozumienia kontekstu. Wymiarowość takich reprezentacji waha się od 256 do 1024 wymiarów i więcej w przypadku większości współczesnych modeli[4].
Metryki podobieństwa
Do pomiaru „odległości" lub podobieństwa między wektorami stosuje się różne metryki:
- Podobieństwo kosinusowe (cosine similarity): Mierzy cosinus kąta między dwoma wektorami. Szczególnie skuteczne dla tekstowych embeddingów, ponieważ uwzględnia kierunek wektorów, a nie ich długość[5].
- Odległość euklidesowa (L2): Standardowa odległość prostoliniowa między dwoma punktami w przestrzeni.
- Iloczyn skalarny (dot product): Podobne do podobieństwa kosinusowego, lecz nienormalizowane[6].
Algorytmy indeksowania
Do szybkiego wyszukiwania w przestrzeniach wysokowymiarowych stosuje się wyspecjalizowane algorytmy ANN.
HNSW (Hierarchical Navigable Small World)
Algorytm HNSW wykorzystuje koncepcję „małego świata" i wielowarstwową hierarchiczną strukturę grafów. Wyższe warstwy zawierają długie połączenia umożliwiające szybkie poruszanie się po przestrzeni (przeszukiwanie zgrubne), a niższe — krótkie, służące do precyzyjnego znajdowania sąsiadów. HNSW wykazuje logarytmiczną złożoność czasową O(log N) i jest preferowanym wyborem dla większości nowoczesnych wektorowych baz danych[7].
IVF (Inverted File)
Algorytm IVF dzieli przestrzeń na klastry z wykorzystaniem klasteryzacji k-means. Wyszukiwanie odbywa się w ograniczonej liczbie najbliższych klastrów, co znacząco przyspiesza ten proces. Liczba klastrów jest zazwyczaj dobierana jako √N, gdzie N to całkowita liczba wektorów w zbiorze danych (dataset)[8].
LSH (Locality-Sensitive Hashing)
Algorytm LSH wykorzystuje rodzinę funkcji skrótu, które z wysokim prawdopodobieństwem generują identyczne skróty dla bliskich wektorów. Pozwala to na szybkie grupowanie podobnych obiektów[9].
Popularne wektorowe bazy danych
- Pinecone: W pełni zarządzana, chmurowa wektorowa baza danych z architekturą serverless.
- Qdrant: Wydajna baza danych napisana w Rust, z obsługą zaawansowanego filtrowania i transakcji zgodnych z ACID.
- Milvus: Skalowalna baza danych open-source z architekturą cloud-native. Obsługuje wiele typów indeksów, w tym warianty akcelerowane przez GPU.
- Weaviate: Wektorowa baza danych open-source z GraphQL API i obsługą grafów wiedzy.
- Chroma: Lekka baza danych open-source, zoptymalizowana pod kątem szybkiego prototypowania i eksperymentów.
- FAISS: Biblioteka firmy Meta, niebędąca pełnoprawną bazą danych, lecz dostarczająca wysokowydajne algorytmy indeksowania dla danych statycznych.
Zastosowanie z LLM: architektura RAG
Retrieval-Augmented Generation (RAG) — to architektura, w której LLM jest uzupełniany zewnętrzną bazą wiedzy za pośrednictwem wyszukiwania wektorowego. Systemy RAG składają się z dwóch głównych komponentów[10]:
- Retriever (Wyszukiwarka): Komponent wyszukiwania, który wykorzystuje wektorową bazę danych do znajdowania istotnych informacji na podstawie zapytania użytkownika.
- Generator: LLM, który wykorzystuje oryginalne zapytanie oraz informacje znalezione przez retriever do wygenerowania odpowiedzi.
Dla efektywnego działania RAG stosuje się wyszukiwanie hybrydowe — kombinację wyszukiwania semantycznego (wektorowego) i leksykalnego (na podstawie słów kluczowych, np. BM25), co zapewnia dokładniejsze i bardziej trafne wyniki.
Tendencje i przyszły rozwój
Rynek wektorowych baz danych wykazuje gwałtowny wzrost, prognozowany z 1,98 mld USD w 2023 roku do 7,13 mld USD do 2029 roku (CAGR 23,7%)[11]. Kluczowe kierunki rozwoju obejmują:
- Systemy multimodalne: Obsługa jednoczesnego wyszukiwania po tekście, obrazach, dźwięku i wideo w jednej przestrzeni wektorowej.
- Automatyczna optymalizacja: Wykorzystanie ML do automatycznego doboru optymalnych indeksów i parametrów.
- Edge computing: Opracowywanie kompaktowych rozwiązań dla urządzeń mobilnych i IoT.
- Obliczenia kwantowe: Potencjalne wykładnicze przyspieszenie wyszukiwania podobieństwa.
- Chipy neuromorficzne: Naśladowanie pracy mózgu w celu osiągnięcia ultraniskiego zużycia energii podczas wyszukiwania.
Odnośniki
- Oficjalna strona Pinecone
- Oficjalna strona Qdrant
- Oficjalna strona Milvus
- Oficjalna strona 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.
Przypisy
- ↑ «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]