Embeddingy a vektorové databázy: Ako AI hľadá význam, nie slová

Embeddingy a vektorové databázy: Ako AI hľadá význam, nie slová
Ilustračné foto: vytvorené umelou inteligenciou (AZOIA)

Embeddingy a vektorové databázy: ako AI hľadá význam, nie slová

Hľadáte v e-maile frázu „dohoda o mlčanlivosti“ a váš klient ju celý čas písal ako „NDA“. Fulltext si s tým neporadí, ale moderná AI áno. Nie je to mágia – je to matematika, ktorá prevádza slová na súradnice v priestore. Poďme sa pozrieť, ako presne to funguje a hlavne – ako z toho vyťažiť maximum pre vlastné projekty.

Od slov k číslam: základy embeddingov

Každé slovo, vetu alebo celý dokument možno previesť na vektor – dlhý zoznam čísel (napr. 1536 dimenzií pri modeli text-embedding-3-small). Tieto čísla nie sú náhodné. Vznikajú tréningom na obrovských korpusoch textu, keď sa model učí, ktoré slová sa vyskytujú v podobných kontextoch. Výsledok? Slová ako „auto“ a „voz“ majú v tomto vektorovom priestore takmer identické súradnice, zatiaľ čo „auto“ a „banán“ sú od seba vzdialené svetelné roky.

Kľúčová vlastnosť: podobnosť sa meria kosínusovou vzdialenosťou. Čím menší uhol medzi dvoma vektormi, tým podobnejší význam. Vyhľadávanie potom nehľadá presné zhody reťazcov, ale „najbližších susedov“ v tomto priestore.

Vektorové databázy: kde býva význam

Samotné embeddingy sú na nič, ak ich nemáte kde rýchlo prehľadávať. Lineárne prechádzanie miliónov vektorov by trvalo večnosť. Tu nastupujú vektorové databázy, ktoré používajú algoritmy ako HNSW (Hierarchical Navigable Small World) alebo IVF (Inverted File Index). Tieto štruktúry umožňujú nájsť najbližších susedov v milisekundách aj pri miliardách záznamov.

Najobľúbenejšie voľby v roku 2026:

Databáza Typ Ideálna pre Cena
Pinecone Spravovaná Produkciu bez starostí od 50 USD/mes.
Weaviate Open-source Vlastnú infraštruktúru zadarmo (self-hosted)
Qdrant Open-source Vysoký výkon zadarmo (self-hosted)
pgvector PostgreSQL extension Keď už máte PostgreSQL zadarmo

Praktický príklad: RAG bez bolesti

Najčastejšie využitie embeddingov je RAG (Retrieval-Augmented Generation) – systém, ktorý dopĺňa veľkému jazykovému modelu kontext z vašich dokumentov. Typický postup:

  1. Rozdeľte dokumenty na menšie časti (chunky) – ideálne 200 – 500 slov.
  2. Každý chunk preveďte na embedding.
  3. Uložte do vektorovej databázy.
  4. Pri dopyte preveďte otázku na embedding a nájdite najbližšie chunky.
  5. Tieto chunky vložte do promptu pre LLM.

Konkrétny prompt na generovanie embeddingu v Pythone:

from openai import OpenAI
client = OpenAI()

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Ako funguje RAG architektúra?"
)
vector = response.data[0].embedding

Typické chyby a skryté náklady

Chyba 1: Zlá veľkosť chunkov. Príliš malé časti strácajú kontext, príliš veľké riedia význam. Ideálny bod nájdete experimentálne – začnite na 300 slovách s presahom 50 slov medzi chunkami.

Chyba 2: Ignorovanie metadát. Ak k vektorom neuložíte aj metadáta (zdroj, dátum, autor), nemôžete neskôr filtrovať výsledky. To je zásadné pri škálovaní.

Skrytý náklad: Cena za embeddingy. Model text-embedding-3-small stojí $0.02 za 1M tokenov, ale pri milióne dokumentov sa suma rýchlo vyšplhá. Lacnejšou alternatívou je open-source model BAAI/bge-small-en bežiaci lokálne – zadarmo, ale za cenu nižšej kvality.

Čo si vybrať?

Pre rýchly prototyp použite pgvector – ak už PostgreSQL máte, je to otázka hodín. Pre produkciu s vysokou záťažou siahnite po Qdrant alebo Weaviate, ktoré zvládajú milióny vektorov s latenciou pod 10 ms. Spravovaný Pinecone oceníte, ak nechcete riešiť infraštruktúru a máte rozpočet.

Verdikt: Embeddingy nie sú budúcnosť vyhľadávania – sú jeho prítomnosť. Firmy, ktoré ich nasadia dnes, získajú konkurenčnú výhodu v podobe systémov, ktoré rozumejú kontextu, synonymám aj viacerým jazykom bez jediného riadka fulltextovej logiky. Začnite s malým projektom, otestujte kvalitu výsledkov a postupne škálujte.

Erikov kreatívny tip: Pri ladení RAG systému si vytvorte „eval set“ – sadu 20 – 50 reálnych dopytov s očakávanými odpoveďami. Automaticky testujte, koľko správnych odpovedí systém nájde. Toto číslo je váš kompas. Bez neho ladíte naslepo a zlepšovanie je len náhoda.