Share to: share facebook share twitter share wa share telegram print page

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.

  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. 
Kembali kehalaman sebelumnya