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ázevLicence
Apache CassandraLicence Apache 2.0
Rozšíření vektorové databáze Azure Cosmos DBN/A (Managed Service)
LlamaIndexLicence MIT
MilvusLicence Apache 2.0
MongoDB AtlasN/A (Managed Service)
CouchbaseN/A
PineconeUzavřený software
Postgres s pgvectorPostgreSQL licence
QdrantLicence Apache 2.0
WeaviateBSD 3-Clause
ChromaLicence Apache 2.0
ElasticsearchServer Side Public License, Elastic License
VespaLicence Apache 2.0
SurrealDBBusiness 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.

  1. 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) 
  2. What is a Vector Database? | A Comprehensive Vector Database Guide. www.elastic.co [online]. [cit. 2024-01-23]. Dostupné online. (anglicky) 
  3. WMWXWA. Vector database - Azure Cosmos DB. learn.microsoft.com [online]. 2023-12-26 [cit. 2024-01-23]. Dostupné online. (anglicky) 
  4. EVCHAKI. Vector Database. learn.microsoft.com [online]. 2023-12-14 [cit. 2024-01-23]. Dostupné online. (anglicky) 
  5. WMWXWA. Vector database - Azure Cosmos DB. learn.microsoft.com [online]. 2023-12-26 [cit. 2024-01-23]. Dostupné online. (anglicky) 
  6. 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.