diff --git a/VEKTOROVE-DB.md b/VEKTOROVE-DB.md deleted file mode 100644 index 28b152d..0000000 --- a/VEKTOROVE-DB.md +++ /dev/null @@ -1,105 +0,0 @@ -# 🧠 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) - -```text -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](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*