Čo sú textové embeddingy a ako fungujú [+príklady]

Táto príručka vysvetľuje, čo sú textové embeddingy, ako premieňajú text na vektory zachytávajúce význam a ako vyberať, hodnotiť a používať embeddingové modely pri vyhľadávaní, RAG a ďalších reálnych prípadoch použitia.

Diagram of what text embeddings are: two customer tickets, “I was charged twice for my subscription.” and “There’s a duplicate payment on my account.”, are converted by a text embedding model into similar vectors that sit close together in the billing issues cluster of a 2D embedding space, so both are routed to the billing support queue.

Ak poznáte základný koncept textových embeddingov, ale zaujíma vás, ako ich využiť v praxi, ste na správnom mieste. Rozoberieme vektory, tokenizáciu a výpočet podobnosti, ponoríme sa hlboko do hodnotenia embeddingových modelov a ukážeme vám reálne prípady použitia.

Čo sú textové embeddingy?

Textové embeddingy sú číselné reprezentácie slov, viet alebo dokumentov, ktoré zachytávajú ich sémantický význam a vzájomné vzťahy. Generujú ich embeddingové modely, ktoré prevádzajú text na vektory – polia čísel, ktoré dokážu algoritmy strojového učenia spracovať a porovnávať.

ML inžinieri používajú textové embeddingy na to, aby softvérové aplikácie dokázali rozpoznať vzťahy medzi slovami a vetami, čo uľahčuje vyhľadávanie, kategorizáciu a analýzu veľkých objemov dát.

Povedzme, že denne dostávate tisíce tiketov podpory. Zákazníci hlásia všetky predstaviteľné problémy, no vy ich potrebujete kategorizovať a označiť. Jedným zo spôsobov, ako tento proces automatizovať, je použiť predtrénovaný textový embeddingový model, ktorý každý tiket prevedie na vektor.

Napríklad dvaja zákazníci pošlú tieto správy:

  • „Za predplatné mi strhli peniaze dvakrát“: [0.21, -0.47, 0.83, ...]
  • „Na mojom účte je duplicitná platba“: [0.19, -0.45, 0.80, ...]

Ide o zjednodušené, ilustračné vektory.

Hoci zákazníci používajú rôzne slová, opisujú rovnaký problém. Embeddingový model tento vzťah zachytí tak, že ich vektory umiestni v matematickom priestore blízko seba. Oba tikety sa tak zaradia do rovnakej kategórie a presmerujú sa na tím fakturácie.

Prípady použitia textových embeddingov v podnikaní

Textové embeddingy sa využívajú v mnohých úlohách spracovania prirodzeného jazyka (NLP), napríklad:

  • Sémantické vyhľadávanie: Hľadanie relevantných informácií na základe významu. Spoločnosť Delivery Hero používa embeddingy produktov a dopytov spolu s vyhľadávaním podľa kľúčových slov, aby zákazníkom nakupujúcim potraviny pomohla nájsť relevantné produkty. Napríklad vyhľadávanie „nízkotučný jogurt“ môže zobraziť grécky jogurt alebo jogurt s obsahom tuku 0,5 %, aj keď sa formulácia presne nezhoduje.
  • Klasifikácia textu: Kategorizácia textu, napríklad identifikácia spamových e-mailov alebo triedenie dokumentov podľa témy. Spoločnosť MindCraft.ai vyvinula systém klasifikácie dokumentov, ktorý využíva textové embeddingy založené na transformeroch a strojové učenie na kategorizáciu firemných dokumentov a identifikáciu citlivých informácií s cieľom zabezpečiť súlad s GDPR.
  • Zhlukovanie: Zoskupovanie podobných dokumentov alebo úsekov textu s cieľom identifikovať vzory. Doczy.ai prevádza text zmlúv na embeddingy a zoskupuje sémanticky súvisiace klauzuly a pojmy, aj keď rôzne zmluvy vyjadrujú podobné záväzky odlišnými formuláciami.
  • Generovanie rozšírené o vyhľadávanie (RAG): Vyhľadávanie relevantných informácií, ktoré môže LLM použiť na generovanie presnejších odpovedí zohľadňujúcich kontext. Spoločnosť Ring používa textové embeddingy Amazon Titan vo viacjazyčnom RAG chatbote, ktorý pred generovaním odpovedí na otázky zákazníkov na medzinárodných trhoch vyhľadá relevantnú dokumentáciu podpory.
  • Odporúčacie systémy: Navrhovanie súvisiacich článkov, produktov alebo iného obsahu na základe textovej podobnosti. Systém JUDE od LinkedInu využíva textové embeddingy popisov pracovných pozícií a profilov členov vygenerované pomocou LLM na zlepšenie odporúčaní pracovných ponúk, pričom zachytáva vzťahy medzi profesijným zázemím kandidátov a voľnými pozíciami.
  • Rozpoznávanie pomenovaných entít (NER): Pomáha identifikovať a klasifikovať mená ľudí, názvy organizácií a miest v texte. Spoločnosť Amazon Health Services používa NER na identifikáciu medicínskych pojmov v dopytoch zákazníkov, ako sú choroby, príznaky, lieky a liečba. Toto porozumenie kombinuje s vyhľadávaním podobnosti založeným na embeddingoch, aby dopyty prepojila s relevantnými zdravotníckymi produktmi a službami.
  • Strojový preklad: Podpora modelov, ktoré prekladajú text medzi jazykmi. Transglot využíva textové embeddingy v sémantickej prekladovej pamäti na identifikáciu predtým preložených pasáží s podobným významom, čím pomáha lokalizačným pracovným postupom opätovne využívať existujúce preklady.

Ako fungujú textové embeddingy?

Ako teda embeddingový model rozhoduje, aké číselné hodnoty priradí úseku textu, a prečo by sme mu mali dôverovať?

Všetko sa začína tréningom. Embeddingové modely sa učia z veľkých kolekcií textu a hľadajú vzory v tom, ako sa slová používajú spolu. Napríklad tradičné modely ako Word2Vec sa učia predpovedaním slova z okolitých slov alebo naopak. Moderné modely zamerané na vyhľadávanie často využívajú kontrastívne učenie. Trénujú sa tak, aby relevantným párom dopyt – dokument priraďovali vyššie skóre podobnosti než nesúvisiacim párom.

Keď je model natrénovaný, po zadaní nového úseku textu sa stane toto:

  1. Tokenizácia. Model najprv rozdelí text na menšie časti nazývané tokeny. Môžu to byť celé slová, časti slov alebo interpunkčné znamienka. Každý token dostane zo slovníka modelu číselné ID, ktoré samo osebe nenesie žiadny význam.
  2. Kódovanie a pooling. Model spracuje tieto tokeny pomocou vzorov, ktoré sa naučil počas tréningu, a vytvorí vektor. Každé číslo vo vektore je súradnica alebo zložka a rozmer je os, pozdĺž ktorej toto číslo určuje polohu vektora. Každá hodnota prispieva k polohe textu v matematickom priestore, ktorý sa označuje ako embeddingový priestor.
  3. Výpočet podobnosti. Na nájdenie súvisiaceho textu systém vyhľadávania porovná embedding dopytu s embeddingmi dokumentov pomocou miery podobnosti, ako je kosínusová podobnosť alebo skalárny súčin

Takto napríklad internetové obchody vracajú položky zodpovedajúce dopytu používateľa.

Aký je rozdiel medzi embeddingmi slov, viet a dokumentov?

Hlavný rozdiel spočíva v tom, koľko textu každý embedding reprezentuje v jednom vektore. Embeddingy môžete vytvárať pre jednotlivé slová, celé vety alebo kompletné dokumenty v závislosti od toho, aké informácie chcete zachytiť.

  • Embeddingy slov zachytávajú vzťahy medzi jednotlivými slovami a rozpoznávajú, že „výpadok“ a „nedostupnosť“ sú súvisiace pojmy.
  • Embeddingy viet chápu význam celých viet, aj keď vyjadrujú rovnakú myšlienku inými slovami.
  • Embeddingy dokumentov reprezentujú celý dokument ako jeden vektor namiesto toho, aby vytvárali samostatný vektor pre každú vetu. Pomáha to zachovať všeobecnú tému a nájsť ďalšie dokumenty, ktoré sa venujú rovnakej téme; detaily však môže byť ťažšie (ak nie nemožné) vyhľadať.

Do akej podrobnosti by ste mali ísť? Správna úroveň závisí od vašich dát a od toho, čo chcete dosiahnuť.

Pri väčších dokumentoch sa text bežne rozdelí na menšie časti (chunky) a pre každú z nich sa vygeneruje samostatný embedding. Takto získate celkový význam dokumentu A ZÁROVEŇ konkrétne detaily, ktoré by sa pri embeddingu celého dokumentu mohli stratiť.

Do akej miery ovplyvňuje veľkosť chunku kvalitu embeddingov?

Pomerne výrazne. Ako hovorí Rahul Kumar, viceprezident pre inžinierstvo AI v spoločnosti Xenoss, výzvou je nájsť takú veľkosť chunku, ktorá zachytí jednu ucelenú myšlienku bez straty dôležitého kontextu. Kompromis vysvetľuje takto:

„Veľkosť chunku určuje, koľko sémantického kontextu nesie jeden embedding. Väčší chunk dáva vektoru viac kontextu, no zároveň spriemeruje viac tém do jedného vektora. Chunk pokrývajúci tri témy skončí niekde uprostred a nezodpovedá dobre ani jednej z nich. Menší chunk zachová presný význam, ale môže stratiť kontext, vďaka ktorému sa dal nájsť.“

Preto Kumar odporúča zvoliť stratégiu delenia na chunky podľa obsahu namiesto toho, aby ste sa držali jednej pevnej veľkosti. Ako hovorí, „pevná veľkosť s prekrytím je vhodná len pre jednotný text, ako sú e-maily alebo stiahnuté webové stránky.“

Pre štruktúrované dokumenty, ako sú zmluvy alebo zásady, je vhodnejšie rekurzívne delenie zohľadňujúce štruktúru. Sémantický chunking zasa môže dobre fungovať pri prepisoch, pretože text delí tam, kde sa mení téma alebo význam.

Textové embeddingy vs. vyhľadávanie podľa kľúčových slov

Prečo používať textové embeddingy, keď môžete jednoducho hľadať podľa kľúčových slov? Pretože vyhľadávanie podľa kľúčových slov sa spolieha na zhodu výrazov, zatiaľ čo sémantické vyhľadávanie založené na embeddingoch dokáže nájsť relevantné informácie, aj keď dopyt a dokument používajú odlišné slová.

Sémantická podobnosť však nie vždy znamená relevantnosť. Shaw Talebi, zakladateľ AI Builder Academy, demonštruje toto obmedzenie na systéme na vyhľadávanie životopisov. Keď Talebi hľadal „dátového inžiniera so skúsenosťami s Apache Airflow“, Apache Airflow spomínal iba jeden z piatich najlepších výsledkov a umiestnil sa až na treťom mieste – hoci v súbore dát boli ďalšie tri životopisy, ktoré túto zručnosť uvádzali.

To znamená, že sémantické vyhľadávanie je užitočné na hľadanie koncepčne súvisiacich informácií, ale môže prehliadnuť presné požiadavky, ako sú technické zručnosti, identifikátory produktov alebo chybové kódy.

Na vyriešenie tohto problému Rahul Kumar odporúča zvoliť prístup k vyhľadávaniu podľa toho, v čom systém vyhľadávania zaostáva:

  • Hybridné vyhľadávanie (kombinácia porovnávania kľúčových slov so sémantickým vyhľadávaním) je predvolenou voľbou, keď dopyty obsahujú presné výrazy, ako sú SKU, chybové kódy alebo právne odkazy.
  • Rerankery sa oplatia, keď záleží len na niekoľkých najlepších výsledkoch, napríklad pri odpovediach generovaných z vyhľadaného kontextu.
  • Grafové vyhľadávanie pomáha, keď odpoveď zasahuje do viacerých prepojených zdrojov dát.

Kumar sa podelil aj o to, ako jeho tím tieto prístupy uplatnil v praxi. V jednom projekte súbežne spustili vyhľadávanie podľa kľúčových slov BM25 a vektorové vyhľadávanie, výsledky zlúčili pomocou metódy reciprocal rank fusion (RRF) a pomocou LLM preusporiadali 124 najlepších výsledkov a zúžili ich na 6.

„Prechod na vyhľadávanie primárne založené na grafe, pri ktorom vektorové vyhľadávanie nájde podobné latentné priestory a nasleduje dvojkrokový prechod grafom, zvýšil kvalitu poradia (nDCG) z 0,58 na 0,67 a skrátil čas vyhľadávania p90 z 19 s na menej ako 3 s,“ dodáva Kumar.

Typy textových embeddingových modelov

Všetky embeddingové modely v zásade robia to isté – učia sa vzťahy v texte. Líšia sa však účelom, na ktorý boli natrénované, informáciami, ktoré zohľadňujú, a úlohami, na ktoré sú určené.

Statické modely embeddingov slov

Tradičné modely embeddingov slov sa učia husté číselné reprezentácie slov na základe vzorov používania slov vo veľkých kolekciách textu. Tieto embeddingy sú statické, čo znamená, že každé slovo dostane rovnaký vektor bez ohľadu na jeho význam v konkrétnom kontexte.

Dve známe metódy sú:

  • Word2Vec: Metóda, ktorú Google vyvinul v roku 2013, sa učí reprezentácie zo susedných slov pomocou dvoch architektúr: Continuous Bag of Words (CBOW), ktorá predpovedá slovo z jeho susedov, a skip-gram, ktorá predpovedá susedné slová z daného slova.
  • GloVe (Global Vectors for Word Representation): Metóda vyvinutá na Stanfordskej univerzite v roku 2014 využíva štatistiky spoločného výskytu slov na učenie vzťahov medzi slovami.

Kontextové jazykové modely

Na rozdiel od statických embeddingov vytvárajú univerzálne jazykové modely kontextové reprezentácie, ktoré sa menia v závislosti od okolitého textu. Modely tak dokážu rozlíšiť rôzne významy toho istého slova.

  • BERT (2018, Google): Využíva obojsmerný mechanizmus self-attention, vďaka čomu zohľadňuje slová na oboch stranách tokenu. Napríklad pre anglické slovo „bank“ generuje odlišné reprezentácie vo vetách „I deposited money at the bank“ (vložil som peniaze do banky) a „I sat on the bank of a river“ (sedel som na brehu rieky).
  • GPT (2018, OpenAI): Využíva reprezentácie založené na transformeroch, ktoré pri predpovedaní ďalšieho tokenu zohľadňujú predchádzajúci text. Modely GPT sú určené predovšetkým na generovanie jazyka.

Modely embeddingov viet a dokumentov

Reprezentujú dlhšie úseky textu – od jednotlivých viet až po odseky a celé dokumenty – ako vektory.

  • Doc2Vec: Rozširuje učenie v štýle Word2Vec na vety, odseky a dokumenty. Môže pomôcť zoskupiť súvisiace články alebo klasifikovať dokumenty podľa témy.
  • Universal Sentence Encoder (USE): Model, ktorý Google vyvinul v roku 2018 na generovanie reprezentácií s pevnou dĺžkou pre vety a krátke odseky na účely sémantickej podobnosti a klasifikácie textu.
  • Sentence-BERT (SBERT, 2019): Model, ktorý vyvinuli Nils Reimers a Iryna Gurevych na Technickej univerzite v Darmstadte, vychádza z modelu BERT od spoločnosti Google a bežne sa používa na sémantické vyhľadávanie, detekciu parafráz a zhlukovanie.
  • pplx-embed-v1 (2026, Perplexity): Táto rodina špičkových textových embeddingových modelov, vytvorená pre reálne vyhľadávanie v rozsahu celého webu, využíva predtréning založený na difúzii, ktorým mení kauzálny jazykový model na obojsmerný enkodér. Generuje husté embeddingy pre nezávisle kódované dopyty a dokumenty, pričom tréning so zohľadnením kvantizácie znižuje náklady na úložisko. Náš model 4B INT8 dosiahol v benchmarku viacjazyčného vyhľadávania MTEB skóre 69,66 nDCG@10, zatiaľ čo model gemini-embedding-001 od spoločnosti Google dosiahol 67,71.
  • pplx-embed-context-v1 (2026, Perplexity): Rieši bežný problém delenia dokumentov na chunky: pasáže môžu stratiť svoj význam, keď sa oddelia od okolitého textu. Pomocou neskorého chunkingu (late chunking) model spracuje celý dokument ešte predtým, ako kontextové reprezentácie tokenov zlúči (pooling) do samostatných embeddingov chunkov. Náš model 4B dosiahol v benchmarku ConTEB skóre 81,96 nDCG@10 v porovnaní so skóre 79,45 modelu voyage-context-3.
  • pplx-embed-v2-context (2026, Perplexity): Posúva kontextové vyhľadávanie ešte ďalej. Namiesto toho, aby sa trénoval iba na hľadanie pasáže obsahujúcej odpoveď, učí sa identifikovať podporné pasáže, ktoré pomáhajú danú odpoveď vysvetliť alebo overiť. Model počas tréningu využíva signály relevantnosti destilované z modelu na kompresiu kontextu, pričom tento učiteľský model pri inferencii nepotrebuje. Naša predbežná verzia 9B dosiahla v benchmarku context-bench pri 10 výsledkoch recall odpovedí 45,5 % a recall dôkazov 40,6 %.

Modely spoločnosti Perplexity tiež umožňujú ukladať embeddingy vo veľkom rozsahu. Vytvárajú embeddingy vo formáte INT8 a binárne embeddingy, ktoré v porovnaní s FP32 znižujú nároky na úložisko 4-násobne, resp. 32-násobne.

Model

Rozmery

Kontext

MRL

Kvantizácia

Inštrukcia

Pooling

pplx-embed-v1-0.6B

1024

32K

Áno

INT8/BINARY

Nie

Priemer

pplx-embed-v1-4B

2560

32K

Áno

INT8/BINARY

Nie

Priemer

pplx-embed-context-v1-0.6B

1024

32K

Áno

INT8/BINARY

Nie

Priemer

pplx-embed-context-v1-4B

2560

32K

Áno

INT8/BINARY

Nie

Priemer

Rozmery modelov pplx-embed, dĺžka kontextu, kvantizácia a konfigurácia poolingu

Husté, riedke a viacvektorové embeddingy

Existuje ešte jeden rozdiel, ktorý sa oplatí pochopiť, najmä pri sémantickom vyhľadávaní. Embeddingové modely sa môžu líšiť v tom, ako reprezentujú text a počítajú relevantnosť.

  • Husté embeddingy: Reprezentujú text pomocou kompaktných vektorov, v ktorých je väčšina hodnôt nenulová.
  • Riedke embeddingy: Používajú vektory s prevažne nulovými hodnotami, pričom naučené váhy sú priradené dôležitým výrazom. Modely ako SPLADE (2021) sa učia, ktoré výrazy sú dôležité na vyhľadanie relevantných dokumentov.
  • Viacvektorové embeddingy: Uchovávajú pre úsek textu niekoľko vektorov, čo umožňuje podrobnejšie porovnania medzi dopytmi a dokumentmi. Modely ako ColBERT (2020) využívajú tieto reprezentácie na detailnejšie porovnávanie dopytov s dokumentmi.
  • Modely kombinujúce viacero prístupov: BGE-M3 (2024), ktorý vyvinula organizácia BAAI, podporuje husté, riedke aj viacvektorové vyhľadávanie v rámci jedného modelu.

Ako vybrať a vyhodnotiť textový embeddingový model

Verejné benchmarky, ako je MTEB, sú dobrým východiskovým bodom. Pomocou nich vyberte dva alebo tri modely, ktoré podporujú vaše jazyky, dĺžky vstupov a požiadavky na nasadenie. S výberom víťaza však zatiaľ počkajte. Nemôžeme dostatočne zdôrazniť, aké dôležité je otestovať tieto modely na vlastných dátach.

Tu je praktický pracovný postup hodnotenia:

  1. Vytvorte testovací súbor dát. Ako počiatočnú hodnotiacu sadu zozbierajte 50 až 100 reprezentatívnych vyhľadávacích dopytov (možno ich budete potrebovať viac) vrátane zložitých prípadov, ako sú parafrázy, odborná terminológia a presné chybové kódy. Pre každý dopyt určte, ktoré dokumenty alebo pasáže obsahujú relevantné odpovede. Tieto označenia relevantnosti sa stanú vašou referenčnou pravdou (ground truth).
  2. Zmerajte kvalitu vyhľadávania. Otestujte každý model na rovnakej evaluačnej množine údajov, pričom zachovajte porovnateľnú prípravu dokumentov aj podmienky vyhľadávania a zároveň dodržte požiadavky jednotlivých modelov na formátovanie dopytov, normalizáciu a výpočet podobnosti. Potom pomocou triedy InformationRetrievalEvaluator z knižnice Sentence Transformers vypočítajte tieto metriky:
    • Recall@k: Udáva podiel relevantných pasáží, ktoré sa objavia medzi prvými k výsledkami.
    • MRR: Meria, ako vysoko sa v poradí objaví prvý relevantný výsledok.
    • nDCG@k: Meria, ako dobre je prvých k výsledkov zoradených podľa ich relevantnosti.
  3. Otestujte latenciu a priepustnosť. Zmerajte, ako dlho každému modelu trvá vytvoriť embedding dopytu, ideálne s uvedením mediánovej latencie (p50) a latencie 95. percentilu (p95) pri realistickom zaťažení.
  4. Vypočítajte náklady na úložisko a prevádzku. Veľkosť vektorového úložiska závisí od počtu embeddingov, ich dimenzionality a číselnej presnosti. Napríklad milión 768-rozmerných embeddingov vo formáte FP32 si vyžaduje približne 3,1 GB úložiska len pre samotné vektory, bez réžie na indexovanie. Ak chcete znížiť nároky na úložisko, môžete vektory kvantizovať na nižšiu číselnú presnosť. Napríklad prechodom z FP32 na INT8 sa úložisko pre samotné vektory zmenší zhruba štvornásobne. Kompresia však môže ovplyvniť kvalitu vyhľadávania, preto evaluácie zopakujte a overte, či sa tento kompromis oplatí.

Nakoniec porovnajte výsledky vedľa seba: metriky vyhľadávania, latenciu p95, priepustnosť, úložisko a náklady. Vyberte model, ktorý spĺňa vaše požiadavky na kvalitu v rámci obmedzení produkčného prostredia.

Kedy použiť embeddingy namiesto LLM?

Keďže LLM zvládajú všetko od analýzy dokumentov až po zložité uvažovanie, je dosť lákavé nahádzať do modelu všetok text a nechať ho, aby si s ním poradil. Platiť za to by vás však asi veľmi netešilo.

LLM sú navyše lepšie v posudzovaní a tvorbe textu, no obmedzuje ich to, koľko informácií sa zmestí do jedného promptu. Embeddingy sú naopak lacné, rýchle, konzistentné a fungujú naprieč miliónmi položiek.

„Embeddingy vynikajú pri vyhľadávaní, odporúčaniach (‚viac podobného obsahu‘), odhaľovaní duplicít, napríklad opakovaných tiketov podpory, a pri zoskupovaní veľkých objemov obsahu podľa tém. Silné sú aj naprieč jazykmi. LLM má navrch, keď si úloha vyžaduje uvažovanie: zhrnutie, porovnanie možností alebo napísanie odpovede. Väčšina reálnych systémov potrebuje oboje, pričom každý z nich rieši tú časť, v ktorej je dobrý,“ uzatvára Kumar.

V čom sa vývojári pri textových embeddingoch mýlia

Otázku, čo vývojári zvyčajne prehliadajú, sme položili Rahulovi Kumarovi a Xibeijia Guan, data scientist v spoločnosti Ahrefs. Upozornili na šesť chýb, na ktoré si treba dať pozor:

  • Vynechanie predspracovania textu. Ak vstupné údaje obsahujú HTML, navigačné ponuky, reklamy alebo iný irelevantný obsah, kroky predspracovania, napríklad odstránenie šablónového obsahu (boilerplate), môžu zlepšiť kvalitu embeddingov tým, že odstránia nepotrebné informácie.
  • Ignorovanie maximálnej dĺžky vstupu modelu. Rôzne modely majú rôzne limity tokenov a rôzne správanie pri skracovaní. Text, ktorý presahuje limit, môže byť skrátený a dôležité informácie sa tak môžu stratiť.
  • Nedodržanie požiadaviek špecifických pre model. Niektoré embeddingové modely vyžadujú špecifické prefixy, napríklad query: a passage:, alebo rôzne inštrukcie pre rôzne úlohy. Ak tieto požiadavky nedodržíte, výkon vyhľadávania sa môže zhoršiť.
  • Použitie nekompatibilnej miery podobnosti. Kosínusová podobnosť a skalárny súčin nie sú vždy zameniteľné. Overte, či sú embeddingy normalizované, a použite metódu skórovania odporúčanú pre daný model a vektorový index.
  • Zamieňanie tematickej podobnosti s relevantnosťou. V kolekciách z úzko vymedzenej oblasti môže byť veľa dokumentov sémanticky podobných, a pritom neodpovedajú na rovnakú otázku. Preskúmajte neúspešné dopyty a rozloženie poradia výsledkov. Ak používatelia potrebujú presné informácie, otestujte lexikálne alebo hybridné vyhľadávanie, opätovné zoradenie (reranking) a filtre metadát.
  • Ignorovanie normalizácie embeddingov. Rôzne embeddingové modely môžu vracať normalizované alebo nenormalizované vektory. Overte, či sú embeddingy normalizované a či je v závislosti od použitej metriky podobnosti potrebná ďalšia normalizácia.

Časté otázky o textových embeddingoch

1. Ako vygenerovať textové embeddingy?

Najjednoduchšie je použiť predtrénovaný embeddingový model. Napríklad s knižnicou Sentence Transformers pre Python môžete načítať model, ako je all-MiniLM-L6-v2, odovzdať text metóde model.encode(), ktorá vám vráti číselný vektor. Embeddingy môžete generovať aj cez API.

Pri sémantickom vyhľadávaní alebo RAG zvyčajne rozdelíte dokumenty na menšie časti (chunky), pre každú z nich vygenerujete embedding a vektory uložíte do prehľadávateľného indexu.

2. Ktoré embeddingové modely sú na text najlepšie?

V závislosti od toho, čo vytvárate, stojí za zváženie niekoľko modelov:

  • pplx-embed-v1 od Perplexity: Navrhnutý na rozsiahle husté vyhľadávanie (dense retrieval), s embeddingmi vo formáte INT8 a binárnymi embeddingmi, ktoré znižujú nároky na vektorové úložisko.
  • pplx-embed-context-v1 od Perplexity: Užitočný na vyhľadávanie pasáží v dlhých dokumentoch, kde jednotlivé časti bez okolitého kontextu strácajú význam.
  • all-MiniLM-L6-v2: Vhodný na nenáročné lokálne sémantické vyhľadávanie, zhlukovanie a úlohy podobnosti viet. Vytvára kompaktné 384-rozmerné vektory, no vstupy dlhšie ako 256 slovných častí (word pieces) skracuje.
  • BGE-M3: Užitočný pre viacjazyčný RAG a hybridné vyhľadávanie. Podporuje viac ako 100 jazykov a kombinuje husté, riedke a viacvektorové reprezentácie.
  • Qwen3-Embedding: Silný kandidát na viacjazyčné vyhľadávanie, vyhľadávanie kódu a embeddingy pre konkrétne úlohy. Ponúka modely s otvorenými váhami vo veľkostiach 0,6B, 4B a 8B s podporou inštrukcií.
  • text-embedding-3-large od OpenAI: Možnosť založená na API pre sémantické vyhľadávanie a vyhľadávanie dokumentov, keď nechcete model hostovať sami. Podporuje až 3 072 dimenzií, ktorých počet môžete znížiť a ušetriť tak úložisko.
  • Modely Gemini Embedding od spoločnosti Google: Užitočné pre spravované aplikácie na vyhľadávanie. Gemini Embedding 2 navyše podporuje vyhľadávanie naprieč textom, obrázkami, zvukom, videom a súbormi PDF v spoločnom embeddingovom priestore.

3. Môžem použiť LLM ako embeddingový model?

Áno, ale medzi univerzálnym LLM a modelom optimalizovaným na embeddingy je rozdiel. LLM vytvárajú interné vektorové reprezentácie textu, ktoré môžete extrahovať a agregovať (pooling) do jedného embeddingu. Bez ďalšieho trénovania však tieto vektory nemusia byť pre sémantické vyhľadávanie užitočné.

Napríklad Qwen3-Embedding využíva základ (backbone) v podobe LLM, ktorý je ďalej trénovaný na úlohy embeddingu a vyhľadávania. Hoci teda LLM môžete prispôsobiť na generovanie embeddingov, praktickejším východiskovým bodom je zvyčajne špecializovaný embeddingový model.