Vektorová databáze
Vektorová databáze nebo vektorové úložiště (anglicky vector database management system, VDBMS, vector database nebo vector store) je databáze, která spolu s dalšími datovými položkami může ukládat vektory, tedy seznamy čísel s pevnou délkou. Vektorové databáze obvykle implementují algoritmy ANN (Aproximate Nearest Neighbor),[1][2] takže lze v databázi vyhledávat pomocí vektoru, a získat tak databázové záznamy, jejichž uložené vektory jsou dotazovanému vektoru nejbližší.
Vektory jsou matematické reprezentace dat ve vysokorozměrném prostoru. V tomto prostoru každá dimenze odpovídá nějaké vlastnosti (feature) dat a k reprezentaci složitých dat lze použít desítky až stovky tisíc dimenzí. Pozice vektoru v tomto prostoru představuje jeho charakteristiky. Vektorizovat lze slova, věty nebo celé dokumenty a obrázky, záznamy zvuku a další typy dat.[3]
Vektory charakterizující data lze vypočítat z nezpracovaných dat pomocí metod strojového učení, jako jsou algoritmy extrakce znaků dat, vnoření slov[4] nebo metody hlubokého učení. Smyslem je, aby sémanticky podobné datové položky obdržely vektory, které jsou blízko u sebe.
Vektorové databáze lze použít pro vyhledávání podle podobnosti, multimodální vyhledávání, doporučovací nástroje, velké jazykové modely (LLM) atd.[5]
Vektorové databáze se také používají k implementaci Retrieval-Augmented Generation (RAG), což je metoda pro zlepšení doménově specifických výstupů velkých jazykových modelů. Východiskem jsou soubory textových dokumentů popisujících danou doménu a pro každý dokument se spočítá charakteristický vektor (v tomto kontextu známý jako embedding), obvykle pomocí metod hlubokého učení, a uloží se do vektorové databáze. Po zadání uživatelského dotazu se spočítá vektor odpovídající tomuto dotazu, a jeho pomocí se z vektorové databáze vyberou nejrelevantnější dokumenty. Ty jsou pak automaticky doplněny k výchozímu dotazu jako jeho kontext a velký jazykový model vytvoří odpověď v tomto kontextu.[6]
Příklady vektorových databází
název | Licence |
---|---|
Apache Cassandra | Licence Apache 2.0 |
Rozšíření vektorové databáze Azure Cosmos DB | N/A (Managed Service) |
LlamaIndex | Licence MIT |
Milvus | Licence Apache 2.0 |
MongoDB Atlas | N/A (Managed Service) |
Couchbase | N/A |
Pinecone | Uzavřený software |
Postgres s pgvector | PostgreSQL licence |
Qdrant | Licence Apache 2.0 |
Weaviate | BSD 3-Clause |
Chroma | Licence Apache 2.0 |
Elasticsearch | Server Side Public License, Elastic License |
Vespa | Licence Apache 2.0 |
SurrealDB | Business Source License & Apache License (po 4 letech) |
Reference
V tomto článku byl použit překlad textu z článku Vector database na anglické Wikipedii.
- ↑ SCHWABER-COHEN, Roie. What is a Vector Database & How Does it Work? Use Cases + Examples | Pinecone. www.pinecone.io [online]. [cit. 2024-01-23]. Dostupné online. (anglicky)
- ↑ What is a Vector Database? | A Comprehensive Vector Database Guide. www.elastic.co [online]. [cit. 2024-01-23]. Dostupné online. (anglicky)
- ↑ WMWXWA. Vector database - Azure Cosmos DB. learn.microsoft.com [online]. 2023-12-26 [cit. 2024-01-23]. Dostupné online. (anglicky)
- ↑ EVCHAKI. Vector Database. learn.microsoft.com [online]. 2023-12-14 [cit. 2024-01-23]. Dostupné online. (anglicky)
- ↑ WMWXWA. Vector database - Azure Cosmos DB. learn.microsoft.com [online]. 2023-12-26 [cit. 2024-01-23]. Dostupné online. (anglicky)
- ↑ LEWIS, Patrick; PEREZ, Ethan; PIKTUS, Aleksandra; PETRONI, Fabio; KARPUKHIN, Vladimir; GOYAL, Naman; KÜTTLER, Heinrich. Retrieval-augmented generation for knowledge-intensive NLP tasks. Advances in Neural Information Processing Systems 33. 2020, s. 9459–9474. arXiv 2005.11401.