Embedding
Úvod: co je embedding a proč je klíčový
Embedding je číselný vektor, který reprezentuje text (slovo, větu, odstavec, dokument) v kontinuálním prostoru tak, aby geometrická blízkost vektorů korelovala sémantickou příbuzností. V moderním SEO, AIO/AEO a optimalizaci LLM webů umožňuje přesné párování úmyslu uživatele s obsahem i při synonymii, parafrázích či vícejazyčných dotazech. Embeddingy jsou základem pro RAG (Retrieval-Augmented Generation), deduplikaci, klasifikaci, klastrování a doporučování obsahu.
Pojmový rámec a terminologie
- Vstup: tokenizovaný text (slova/subwordy/znaky), případně multimodální vstupy (obrázky, zvuk).
- Model: neuronová síť trénovaná na úloze kontrastivního učení nebo jazykového modelování.
- Vektor: reálná čísla délky d (např. 384, 768, 1024…), často v jednotkové normě.
- Podobnost: číselné skóre vyjadřující blízkost (kosinus, skalární součin, L2 vzdálenost).
- ANN index: datová struktura pro rychlé vyhledání nejbližších sousedů v prostoru embeddingů.
Matematické základy: vektorový prostor a metriky
Nechť u, v ∈ ℝd jsou embeddingy. Používané metriky a transformace:
- Kosinusová podobnost:
cos(u,v) = (u·v) / (||u|| · ||v||). Invariantní vůči škále; měří úhel mezi vektory. - Skalární součin:
u·v. Rychlý, ale závislý na normě; často se kombinuje s normalizací. - Euclidovská vzdálenost (L2):
||u−v||2. Vhodná, pokud jsou vektory normalizované. - Vazba metriky a normalizace: pokud
||u||=||v||=1, potomcos(u,v) = 1 − (1/2)||u−v||2.
Distribuce: Vektory z moderních modelů mají pseudo-gaussovské rozložení komponent a tendenci ke koncentraci měr; proto je důležité porovnávat skóre v rámci stejné domény/modelu a používat kalibraci prahů.
Normalizace, škálování a centrální limitace chyb
- L2-normalizace: transformace
u ← u / ||u||zajistí robustnost vůči délce textu a stabilitu kosinusové metriky. - Mean-centering: odečtení globálního průměru komponent může potlačit dominantní směry (tzv. „common component removal“).
- Zpracování odlehlých hodnot: ořezávání komponent (např. na ±3σ) snižuje vliv extrémů při ANN indexaci.
- Skórovací kalibrace: používejte validační sady a isotonickou regresi nebo prahování podle požadované přesnosti/recall.
Dimenzionalita, komprese a trade-offy
- Vysoká dimenze (≥768): vyšší přesnost, ale větší paměťové nároky a pomalejší ANN vyhledávání.
- Nižší dimenze (256–512): rychlost a nižší náklady, mírná ztráta přesnosti.
- PCA/OPQ: lineární redukce dimenzionality; Product Quantization (PQ) výrazně šetří RAM s akceptovatelným poklesem kvality.
- Float16/Int8: kvantizace pro inferenci i ukládání indexu (latence ↔ přesnost).
Tvorba embeddingů: vstupy, tokeny, kontext
- Granularita: generujte vektory pro věty/odstavce/stránky podle účelu. Pro vyhledávání v RAG je optimální odstavec (100–300 slov).
- Předzpracování: odstranit boilerplate, navigaci, skrýt šum; zachovat klíčové entity, čísla a jednotky (
%,€). - Promptované nuance: pro dotazy (query) a dokumenty (passage) může model používat odlišné hlavy; dodržte doporučený režim.
- Stabilita: verzujte model, tokenizer a parametry (dimenze, normalizace), aby byly výsledky reprodukovatelné.
Multijazyčnost, doménové přizpůsobení a drift
- Multilingvní: vícejazyčné embeddingy mapují výrazy z různých jazyků do společného prostoru; vhodné pro .com domény a mezinárodní SEO.
- Doménová adaptace: doplňkové tréninky na vlastním korpusu (kontrastivní páry Q–A, titulek–odstavec) výrazně zlepší přesnost.
- Modelový drift: sledujte posun skóre v čase (posun distribucí); při redeployi udržujte dvojitý index a postupnou migraci.
Chunkování dokumentů a okno kontextu
- Velikost chunku: 200–400 tokenů pro obecné texty; delší pro technické dokumenty s rovnicemi/tabulkami.
- Překryv: 10–20 % snižuje riziko ztráty souvislosti na hranách chunků.
- Kotvy: každý chunk má URL fragment
#id, aby asistenti citovali konkrétní pasáž.
Indexování a vyhledávání: ANN, HNSW, IVF, PQ
- HNSW (Hierarchical Navigable Small World): vynikající poměr přesnost/latence; paměťově náročnější. Parametry:
M,efConstruction,efSearch. - IVF (Inverted File Index): k-means centroidy; rychlý při velkých korpusech, dobře se kombinuje s PQ.
- PQ/OPQ: kvantizace vektorů do subprostorů; snižuje paměť i I/O nároky.
- Flat (brute-force): maximální přesnost, vhodný pro malé kolekce nebo jako zlatý standard.
- Škálování: horizontální shardování podle hashování nebo podle clusterů témat; repliky pro vysokou dostupnost.
Hybridní vyhledávání: BM25 × vektorová podobnost
Kombinace lexikálního skóre (BM25) a sémantické podobnosti řeší případy, kdy chybí klíčové entity v textu dotazu nebo dokumentu.
- Skórovací fúze:
score = λ · rankBM25 + (1−λ) · rankVec(Reciprocal Rank Fusion nebo z-score normalizace). - Fail-safe: pokud vektorová složka nenajde relevantní výsledky, vraťte top-N BM25.
Reranking, filtrace a metadata
- Rerank modely: cross-encoder (nákladnější, přesný) na top-100 kandidátů z ANN.
- Filtry: strukturovaná metadata (jazyk, datum, typ obsahu) aplikujte před/po ANN.
- De-dup: blízké duplicity identifikujte prahem kosinu (např. > 0,95 po L2 normalizaci).
Embeddings v RAG pipeline pro ChatGPT/LLM
- Ingest: crawling, extrakce textu, čištění, chunkování, generování embeddingů + metadat.
- Recall: ANN vyhledání top-K pasáží; volitelně hybrid s BM25.
- Rerank: cross-encoder pro top-K, odstranění redundance (MMR – Maximal Marginal Relevance).
- Skladba promptu: výběr top-M pasáží pod rozumný limit tokenů; doplnění citací (URL#id).
- Odpověď: generace + postprocessing (zdroje, data, jednotky); logging pro observabilitu.
Hodnocení: Recall@k, MRR, nDCG, A/B
- Recall@k: podíl otázek, pro které se relevantní pasáž objeví v top-k.
- MRR: průměrná inverzní pozice prvního relevantního výsledku.
- nDCG: hodnotí pořadí s různou důležitostí pasáží (graded relevance).
- Answer-level metriky: přesnost odpovědi po RAG (Exact Match, F1), lidské hodnocení.
- A/B: srovnání modelů, dimenzí, prahů, hybridní fúze v reálném provozu.
Provoz: latence, cache, náklady a škálování
- Cache: LRU cache na embeddingy dotazů; výsledky ANN cacheujte pro „hot queries“.
- Batching: dávkování při generování embeddingů výrazně snižuje cenu na 1k tokenů.
- Streaming aktualizací: near-real-time indexace přes „delta index“ a pravidelné slučování.
- Monitoring: latence P50/P95, chybovost, velikost indexu, drift skóre, Recall@k na kanálech.
Bezpečnost, soukromí a soulad (GDPR)
- PII minimalismus: osobní údaje hashování/anonymizace před generováním embeddingů.
- Právo na výmaz: udržujte mapu dokument → vektory → index; umožněte rychlé vyradení a re-build.
- Scope kontrola: oddělené indexy pro „interní“ vs. „veřejná“ data; autorizace nad výsledky vyhledávání.
- Licence: respektujte licenční podmínky zdrojů při ingestování obsahu do vektorového indexu.
Antivzory a diagnostika problémů
- Smíšené verze modelu: ve stejném indexu vektory z r0 a r1 – skóre nesrovnatelné; vždy verzujte a migrujte dávkově.
- Příliš dlouhé chunky: „rozmazaná“ reprezentace, nízká přesnost; zkraťte a přidejte překryv.
- Bez normalizace: délky dokumentů dominují skóre; použijte L2 normalizaci.
- Chybějící metadata: nemožnost filtrovat podle jazyka, data, typu – slabé výsledky pro intenci.
- Nesmyslné prahy: globální práh pro různé domény; kalibrujte lokálně.
Best practices a implementační checklist
- Vyberte model podle jazyka/domény a stanovte dimenzi s ohledem na náklady.
- Zaveďte konzistentní L2-normalizaci a verzování (model, tokenizer, dimenze, normalizace).
- Chunkujte obsah (200–400 tokenů), s 10–20 % překryvem a kotvami
#id. - Indexujte v HNSW nebo IVF-PQ podle velikosti korpusu; logujte parametry.
- Zapněte hybridní vyhledávání a cross-encoder reranking na top-100.
- Hodnoťte Recall@10, MRR, nDCG; sledujte answer-level metriky po RAG.
- Zajistěte PII sanitizaci, právo na výmaz a oddělené indexy podle přístupových práv.
- Monitorujte drift a pravidelně re-embeddujte dynamické části obsahu.
Přílohy: příklady schémat a výpočtů
Příklad JSON metadat jednoho chunku:
{ "doc_id



























