Vektorová databáze
Author
Albert FloresVektorová 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), 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í. +more 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.
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 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.
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. +more 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.
Příklady vektorových databází
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. +more0 |
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) |