Embedding

Embedding

Embedding

Úvod: čo je embedding a prečo je kľúčový

Embedding je číselný vektor, ktorý reprezentuje text (slovo, vetu, odsek, dokument) v kontinuitnom priestore tak, aby geometrická blízkosť vektorov korelovala so sémantickou príbuznosťou. V modernom SEO, AIO/AEO a LLM optimalizácii webov umožňuje presné párovanie úmyslu používateľa s obsahom aj pri synonymách, parafrázach či viacjazyčných dotazoch. Embeddingy sú základom pre RAG (Retrieval-Augmented Generation), deduplikáciu, klasifikáciu, klastrovanie a odporúčanie obsahu.

Pojmový rámec a terminológia

  • Vstup: tokenizovaný text (slová/subwordy/znaky), prípadne multimodálne vstupy (obrázky, zvuk).
  • Model: neurónová sieť trénovaná na úlohe kontrastívneho učenia alebo jazykového modelovania.
  • Vektor: reálne čísla dĺžky d (napr. 384, 768, 1024…), často v jednotkovej norme.
  • Podobnosť: číselné skóre vyjadrujúce blízkosť (kosínus, skalárny súčin, L2 vzdialenosť).
  • ANN index: dátová štruktúra na rýchle vyhľadanie najbližších susedov v priestore embeddingov.

Matematické základy: vektorový priestor a metriky

Nech u, v ∈ ℝd sú embeddingy. Používané metriky a transformácie:

  • Kosínusová podobnosť: cos(u,v) = (u·v) / (||u|| · ||v||). Invariantná voči škálu; meria uhol medzi vektormi.
  • Skalárny súčin: u·v. Rýchly, ale závislý od normy; často sa kombinuje s normalizáciou.
  • Euclidovská vzdialenosť (L2): ||u−v||2. Vhodná, ak sú vektory normalizované.
  • Väzba metriky a normalizácie: ak ||u||=||v||=1, potom cos(u,v) = 1 − (1/2)||u−v||2.

Distribúcie: Vektory z moderných modelov majú pseudo-gaussovské rozdelenie komponentov a tendenciu k koncentrácii mier; preto je dôležité porovnávať skóre v rámci tej istej domény/modelu a používať kalibráciu prahov.

Normalizácia, škálovanie a centrálna limitácia chýb

  • L2-normalizácia: transformácia u ← u / ||u|| zabezpečí robustnosť voči dĺžke textu a stabilitu kosínusovej metriky.
  • Mean-centering: odčítanie globálneho priemeru komponentov môže potlačiť dominantné smery (tzv. „common component removal“).
  • Outlier handling: klipovanie komponentov (napr. na ±3σ) znižuje vplyv extrémov pri ANN indexácii.
  • Skórovacia kalibrácia: používajte validačné sady a isotonic regression alebo prahovanie podľa požadovanej presnosti/recall.

Dimenzionalita, kompresia a trade-offy

  • Vysoká dimenzia (≥768): vyššia presnosť, ale väčšia pamäť, pomalšie ANN.
  • Nižšia dimenzia (256–512): rýchlosť a nižšie náklady, mierna strata presnosti.
  • PCA/OPQ: lineárna redukcia dimenzie; Product Quantization (PQ) výrazne šetrí RAM s akceptovateľným poklesom kvality.
  • Float16/Int8: kvantizácia pre inferenciu aj skladovanie indexu (latencia ↔ presnosť).

Tvorba embeddingov: vstupy, tokeny, kontext

  • Granularita: generujte vektory pre vety/odseky/stránky podľa použitia. Pre vyhľadávanie RAG je optimálny odsek (100–300 slov).
  • Predspracovanie: odstrániť boilerplate, navigáciu, skrýť šum; zachovať kľúčové entity, čísla a jednotky (%, ).
  • Promptované odtiene: pre dotazy (query) a dokumenty (passage) môže model používať rozdielne hlavy; dodržte odporúčaný režim.
  • Stabilita: verziujte model, tokenizer a parametre (dimenzia, normalizácia), aby boli výsledky reprodukovateľné.

Multijazyčnosť, doménové prispôsobenie a drift

  • Multilingual: viacjazyčné embeddingy mapujú výrazy z rôznych jazykov do spoločného priestoru; vhodné pre .com domény a medzinárodné SEO.
  • Domain adaptation: doplnkové tréningy na vlastnom korpuse (kontrastívne páry Q–A, titulok–odsek) výrazne zlepšia presnosť.
  • Model drift: sledovať posun skóre v čase (posuv distribúcií); pri redeploye udržať dvojitý index a postupnú migráciu.

Chunkovanie dokumentov a okno kontextu

  • Veľkosť chunku: 200–400 tokenov pre všeobecné texty; dlhšie pre technické dokumenty s rovnicami/tabuľkami.
  • Prekryv: 10–20 % znižuje riziko straty súvisu na hranách chunkov.
  • Kotvy: kaž­dý chunk má URL fragment #id, aby asistenti citovali konkrétnu pasáž.

Indexovanie a vyhľadávanie: ANN, HNSW, IVF, PQ

  • HNSW (Hierarchical Navigable Small World): vynikajúci pomer presnosť/latencia; pamäťovo náročnejší. Parametre: M, efConstruction, efSearch.
  • IVF (Inverted File Index): k-means centrá; rýchly pri veľkých korpusoch, dobre sa kombinuje s PQ.
  • PQ/OPQ: kvantizácia vektorov do subprostorov; znižuje pamäť aj I/O.
  • Flat (brute-force): maximálna presnosť, vhodný pre malé kolekcie alebo ako gold štandard.
  • Škálovanie: horizontálne shardy podľa hashovania alebo podľa clusterov tém; repliky pre vysokú dostupnosť.

Hybridné vyhľadávanie: BM25 × vektorová podobnosť

Kombinácia lexikálneho skóre (BM25) a sémantickej podobnosti rieši prípady, keď chýbajú kľúčové entity v texte dotazu alebo dokumentu.

  • Skórovacia fúzia: score = λ · rankBM25 + (1−λ) · rankVec (Reciprocal Rank Fusion alebo z-score normalizácia).
  • Fail-safe: ak vektorová zložka nenájde relevantné výsledky, vráťte top-N BM25.

Reranking, filtrácia a metadáta

  • Rerank modeli: cross-encoder (drahší, presný) na top-100 kandidátov z ANN.
  • Filtre: štruktúrované metadáta (jazyk, dátum, typ obsahu) uplatnite pred/po ANN.
  • De-dup: blízke duplikáty identifikujte prahom kosínu (napr. > 0,95 po L2 normalizácii).

Embeddings v RAG pipeline pre ChatGPT/LLM

  1. Ingest: crawling, extrakcia textu, čistenie, chunkovanie, generovanie embeddingov + metadát.
  2. Recall: ANN vyhľadanie top-K pasáží; voliteľne hybrid s BM25.
  3. Rerank: cross-encoder pre top-K, odstránenie redundancie (MMR – Maximal Marginal Relevance).
  4. Skladba promptu: výber top-M pasáží pod rozumný limit tokenov; doplnenie citácií (URL#id).
  5. Odpoveď: generácia + postprocessing (zdroje, dátumy, jednotky); logging pre observabilitu.

Hodnotenie: Recall@k, MRR, nDCG, A/B

  • Recall@k: podiel otázok, pre ktoré sa relevantná pasáž objaví v top-k.
  • MRR: priemerná inverzná pozícia prvého relevantného výsledku.
  • nDCG: hodnotí poradie s rôznou dôležitosťou pasáží (graded relevance).
  • Answer-level metriky: presnosť odpovede po RAG (Exact Match, F1), ľudské hodnotenia.
  • A/B: porovnanie modelov, dimenzií, prahov, hybridnej fúzie na reálnej prevádzke.

Prevádzka: latencia, cache, náklady a škálovanie

  • Cache: LRU cache na embeddings dotazov; výsledky ANN cacheujte pre hot queries.
  • Batching: dávkovanie pri generovaní embeddingov výrazne znižuje cenu na 1k tokenov.
  • Streaming aktualizácií: near-real-time indexácia cez „delta index“ a pravidelné merge.
  • Monitoring: latencia P50/P95, chybovosť, veľkosť indexu, drift skóre, Recall@k na kanáloch.

Bezpečnosť, súkromie a súlad (GDPR)

  • PII minimalizmus: osobné údaje hashing/anonymizácia pred generovaním embeddingov.
  • Právo na výmaz: udržiavajte mapu dokument → vektory → index; umožnite rýchle vyradenie a re-build.
  • Scope kontrola: oddelené indexy pre „interné“ vs. „verejné“ dáta; autorizácia nad výsledkami vyhľadávania.
  • Licencie: rešpektujte licenčné podmienky zdrojov pri ingestovaní obsahu do vektorového indexu.

Antivzory a diagnostika problémov

  • Zmiešané verzie modelu: v jednom indexe vektory z r0 a r1 – skóre neporovnateľné; vždy verziujte a migrujte dávkovo.
  • Príliš dlhé chunky: „rozmazaná“ reprezentácia, nízka presnosť; zmenšite a pridajte prekryv.
  • Bez normalizácie: dĺžky dokumentov dominujú skóre; použite L2.
  • Chýbajú metadáta: nemožnosť filtrovať podľa jazyka, dátumu, typu – slabé výsledky pre intent.
  • Nezmyselné prahy: globálny prah pre rôzne domény; kalibrujte lokálne.

Best practices a implementačný checklist

  1. Vyberte model podľa jazyka/domény a stanovte dimenziu s ohľadom na náklady.
  2. Zaveďte konzistentnú L2-normalizáciu a verziovanie (model, tokenizer, dim, normalizácia).
  3. Chunkujte obsah (200–400 tokenov), s 10–20 % prekryvom a kotvami #id.
  4. Indexujte v HNSW alebo IVF-PQ podľa veľkosti korpusu; logujte parametre.
  5. Zapnite hybridné vyhľadávanie a cross-encoder reranking na top-100.
  6. Hodnoťte Recall@10, MRR, nDCG; sledujte answer-level metriky po RAG.
  7. Zabezpečte PII sanitizáciu, právo na výmaz a oddelené indexy podľa prístupových práv.
  8. Monitorujte drift a pravidelne re-embeddujte dynamické časti obsahu.

Prílohy: príklady schém a výpočtov

Príklad JSON metadát jedného chunku:

{ "doc_id": "manuál-123", "chunk_id": "manuál-123#c07", "lang": "sk", "title": "Inštalácia – kroky", "created_at": "2025-09-15", "updated_at": "2025-10-01", "entities": ["ProduktX", "Windows 11"], "hash": "sha256:…", "license": "CC BY 4.0", "url": "https://example.com/navod#c07" }

Kalibrácia prahu podobnosti: z validačnej sady vypočítajte distribúciu cos(u,v) pre pozitívne/negatívne páry a vyberte prah τ tak, aby maximalizoval F1 alebo splnil požadovaný precision (napr. 0,9).

MMR výber pasáží: iteratívne vyberajte pasáže, ktoré maximalizujú λ · sim(q, p) − (1−λ) · maxp'∈S sim(p, p'), čím znižujete redundanciu.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *