Files
knowledge-base/VEKTOROVE-DB.md
2026-06-03 22:48:48 +02:00

5.5 KiB

🧠 Vektorové databáze

Přehled

Specializované databáze pro ukládání a vyhledávání embeddingů — vektorových reprezentací nestrukturovaných dat (text, obrázky, audio, video). Umožňují sémantické vyhledávání na základě podobnosti, nikoliv přesné shody. Klíčový stavební kámen pro RAG (Retrieval-Augmented Generation) a AI aplikace.

Embeddings

  • Mapují nestrukturovaná data do vektorového prostoru (seznam čísel)
  • Blízkost ve vektorovém prostoru = sémantická podobnost
  • Generovány modely: Word2Vec, BERT, OpenAI embeddings, E5, Cohere, Mistral
  • Dimenze: 384 (all-MiniLM) až 3072 (OpenAI text-embedding-3-large)

Indexování vektorů

Metoda Algoritmus Popis Přesnost Rychlost
Flat (brute-force) Úplné prohledání Porovnání se všemi vektory 100 % O(N) — pomalé pro > 100K
IVF (Inverted File) K-means clustering Rozdělení do shluků, hledá se v nejbližším shluku ~95-99 % O(sqrt(N))
HNSW (Hierarchical Navigable Small World) Navigovatelný graf Víceúrovňový graf, greedy search ~99-100 % O(log N)
IVF-PQ IVF + Product Quantization Komprese vektorů, menší paměť ~90-95 % O(sqrt(N))
DiskANN SSD-based graf Vektory na disku, Vamana graf ~95-98 % O(log N) + I/O

Volba indexu

Počet vektorů Požadavek Doporučený index
< 100K 100% přesnost Flat
100K - 10M Vysoká přesnost, rychlost HNSW
10M+ Paměťová efektivita IVF-PQ, DiskANN
100M+ Škálování na SSD DiskANN

Use case: RAG (Retrieval-Augmented Generation)

User query → Embedding model → Vector DB search → Relevant chunks → LLM → Answer

Varianty:

  • Naive RAG — jeden retrieval + jeden generování
  • Advanced RAG — pre-retrieval (query rewriting, HyDE) + post-retrieval (reranking, filtering)
  • Multi-modal RAG — text + obrázky + audio do jednoho pipeline

Nástroje — srovnání

Nástroj Typ Indexy Cloud Self-hosted Poznámka
Pinecone Managed HNSW, IVF-PQ Ano Ne Plně spravovaná, žádný ops. Cena dle dimenze a počtu vektorů
Weaviate Open source HNSW, Flat Ano (WCD) Ano Grafová + vektorová, hybridní dotazy, modulární (generative search)
Qdrant Open source HNSW, IVF-PQ, quantization Ano (Cloud) Ano Rust, batch API, filtr souběžně s vektorovým search
Milvus Open source IVF, HNSW, IVF-PQ, DiskANN Ano (Zilliz) Ano GPU akcelerace. Komplexnější ops (K8s required)
pgvector PostgreSQL extension IVFFlat, HNSW Vše (díky RDS) Ano Embeddingy přímo v PostgreSQL. Hybridní SQL + vektory
Chroma Open source HNSW Ne Ano Jednoduchý na embedding + retrieval, Python-native
LanceDB Open source IVF-PQ Ne Ano Multimodální data, Arrow formát, žádný server (embedded)
Elasticsearch Search engine HNSW (8.0+) Ano (Cloud) Ano Pokud už máte ES, lze použít i pro vektory

pgvector vs samostatná vektorová DB

Vlastnost pgvector Samostatná (Pinecone, Qdrant, Milvus)
Architektura Extension v PostgreSQL Samostatná služba
Hybridní dotazy Nativní SQL + vektory Nutná koordinace dvou systémů
Latence Vyšší (disk-based PG) Nižší (in-memory indexy)
Škálování PG replikace / Citus Nativní sharding, rebalancing
Konzistence PG ACID transakce Eventual consistency
Provoz Jeden systém Dva systémy (operational overhead)

Doporučení — Volba nástroje

Scénář Doporučení Zdůvodnění
RAG na PostgreSQL datech pgvector Hybridní SQL + vektory v jedné DB
RAG produkce, žádný ops Pinecone Plně managed, škálovatelné, žádný provoz
Self-hosted RAG Qdrant (jednodušší) / Milvus (výkon) Open source, kontrola nad daty
Full-text + vektory Elasticsearch / Weaviate Kombinace BM25 + vektorového skóre
Výzkum / prototypování Chroma Python-native, rychlý start
Embedded / edge LanceDB Žádný server, Arrow formát
Multi-modal data Weaviate / LanceDB Nativní podpora obrázků, audio, videa
GPU akcelerace Milvus CUDA podpora pro index build

Kdy vektorovou DB (ne)použít

Použít když:

  • Potřebujete sémantické vyhledávání (podobnost podle významu, ne klíčových slov)
  • Stavíte RAG / AI asistenta nad vlastními daty
  • Deduplikace dokumentů, obrázků (near-duplicate detection)
  • Doporučovací systémy (podobný obsah, podobní uživatelé)

Nepoužít když:

  • Potřebujete přesnou shodu (klíče, ID, foreign keys) → SQL
  • Full-text search stačí (BM25, stemming) → Elasticsearch, PostgreSQL full-text
  • Vektory jen jako doplněk k primární DB → pgvector (jednoduchost)
  • Méně než 1000 dokumentů → postačí brute-force v aplikaci

Zdroje

Odkazy, knihy a standardy: sources/databases/sources.md

Doporučená literatura

Kniha Autoři Popis
Vector Databases Borwankar (2026) Komplexní průvodce vektorovými DB od konceptů po produkční nasazení

Poslední revize: 2026-06-03