Ugrađivanja teksta: što su i kako funkcioniraju [+primjeri]

Ovaj vodič objašnjava što su ugrađivanja teksta, kako pretvaraju tekst u vektore koji obuhvaćaju njegovo značenje te kako odabrati, evaluirati i primijeniti modele ugrađivanja za pretraživanje, RAG i druge praktične slučajeve upotrebe.

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.

Ako vam je poznat osnovni koncept tekstualnih ugrađivanja (embeddinga), ali se pitate kako ih primijeniti u praksi, na pravom ste mjestu. Raščlanit ćemo vektore, tokenizaciju i izračun sličnosti, zaroniti duboko u evaluaciju modela za ugrađivanje i pokazati vam primjere iz stvarnog svijeta.

Što su tekstualna ugrađivanja?

Tekstualna ugrađivanja numeričke su reprezentacije riječi, rečenica ili dokumenata koje obuhvaćaju njihovo semantičko značenje i međusobne odnose. Generiraju ih modeli za ugrađivanje koji tekst pretvaraju u vektore – nizove brojeva koje algoritmi strojnog učenja mogu obrađivati i uspoređivati.

Inženjeri strojnog učenja koriste tekstualna ugrađivanja kako bi softverskim aplikacijama pomogli prepoznati odnose između riječi i rečenica, što olakšava pretraživanje, kategorizaciju i analizu velikih količina podataka.

Recimo da svakodnevno primate tisuće zahtjeva za podršku. Korisnici prijavljuju sve moguće probleme, a vi ih morate kategorizirati i označiti. Jedan od načina da automatizirate taj proces jest korištenje unaprijed treniranog modela za tekstualna ugrađivanja koji svaki zahtjev pretvara u vektor.

Na primjer, dva korisnika pošalju sljedeće poruke:

  • „Pretplata mi je naplaćena dvaput“: [0.21, -0.47, 0.83, ...]
  • „Na mom računu vidim dvostruku uplatu“: [0.19, -0.45, 0.80, ...]

Ovo su pojednostavljeni, ilustrativni vektori.

Iako korisnici koriste različite riječi, opisuju isti problem. Model za ugrađivanje bilježi taj odnos tako što njihove vektore smješta blizu jedan drugome u matematičkom prostoru. Oba se zahtjeva kategoriziraju i prosljeđuju timu za naplatu.

Primjene tekstualnih ugrađivanja u poslovanju

Tekstualna ugrađivanja koriste se u nizu zadataka obrade prirodnog jezika (NLP), uključujući:

  • Semantičko pretraživanje: Pronalaženje relevantnih informacija na temelju značenja. Delivery Hero uz pretraživanje po ključnim riječima koristi ugrađivanja proizvoda i upita kako bi korisnicima koji naručuju namirnice pomogao pronaći relevantne proizvode. Na primjer, pretraga za „jogurt s niskim udjelom masti“ može prikazati grčki jogurt ili jogurt s 0,5 % masti, čak i kada se formulacija ne podudara točno.
  • Klasifikacija teksta: Kategorizacija teksta, primjerice prepoznavanje neželjene e-pošte ili razvrstavanje dokumenata po temi. MindCraft.ai razvio je sustav za klasifikaciju dokumenata koji koristi tekstualna ugrađivanja temeljena na transformerima i strojno učenje kako bi kategorizirao korporativne dokumente i prepoznao osjetljive informacije radi usklađenosti s GDPR-om.
  • Klasteriranje: Grupiranje sličnih dokumenata ili dijelova teksta radi prepoznavanja obrazaca. Doczy.ai pretvara tekst ugovora u ugrađivanja i grupira semantički povezane klauzule i koncepte, čak i kada različiti ugovori slične obveze izražavaju drugačijim riječima.
  • Generiranje prošireno dohvaćanjem (RAG): Dohvaćanje relevantnih informacija koje LLM može upotrijebiti za generiranje točnijih odgovora prilagođenih kontekstu. Ring koristi tekstualna ugrađivanja Amazon Titan u višejezičnom RAG chatbotu kako bi dohvatio relevantnu dokumentaciju za podršku prije generiranja odgovora na pitanja korisnika na međunarodnim tržištima.
  • Sustavi preporuka: Predlaganje povezanih članaka, proizvoda ili drugog sadržaja na temelju tekstualnih sličnosti. Sustav JUDE tvrtke LinkedIn koristi tekstualna ugrađivanja opisa poslova i profila članova generirana LLM-om kako bi poboljšao preporuke poslova, obuhvaćajući odnose između iskustva kandidata i dostupnih radnih mjesta.
  • Prepoznavanje imenovanih entiteta (NER): Pomoć pri prepoznavanju i klasificiranju imena osoba, organizacija i mjesta u tekstu. Amazon Health Services koristi NER za prepoznavanje medicinskih pojmova u upitima korisnika, kao što su bolesti, simptomi, lijekovi i terapije. To razumijevanje kombinira s pretraživanjem sličnosti temeljenim na ugrađivanjima kako bi upite povezao s relevantnim zdravstvenim proizvodima i uslugama.
  • Strojno prevođenje: Podrška modelima koji prevode tekst s jednog jezika na drugi. Transglot koristi tekstualna ugrađivanja u semantičkoj prijevodnoj memoriji kako bi prepoznao prethodno prevedene odlomke sličnog značenja, čime tijekovima rada lokalizacije pomaže da ponovno iskoriste postojeće prijevode.

Kako funkcioniraju tekstualna ugrađivanja?

Kako onda model za ugrađivanje odlučuje koje numeričke vrijednosti dodijeliti nekom dijelu teksta i zašto bismo mu vjerovali?

Sve počinje treniranjem. Modeli za ugrađivanje uče iz velikih zbirki teksta, tražeći obrasce u načinu na koji se riječi koriste zajedno. Na primjer, tradicionalni modeli poput Word2Vec uče predviđajući riječ na temelju okolnih riječi ili obrnuto. Moderni modeli usmjereni na dohvaćanje često koriste kontrastno učenje. Treniraju se tako da relevantnim parovima upita i dokumenta dodjeljuju više ocjene sličnosti nego nepovezanim parovima.

Nakon što je model istreniran, evo što se događa kada mu date novi dio teksta:

  1. Tokenizacija. Model najprije dijeli tekst na manje dijelove koji se nazivaju tokeni. To mogu biti cijele riječi, dijelovi riječi ili interpunkcijski znakovi. Svaki token dobiva numerički ID iz vokabulara modela, koji sam po sebi nema nikakvo značenje.
  2. Kodiranje i sažimanje (pooling). Model obrađuje te tokene pomoću obrazaca naučenih tijekom treniranja i stvara vektor. Svaki je broj u vektoru koordinata ili komponenta, a dimenzija je os duž koje taj broj određuje položaj vektora. Svaka vrijednost doprinosi položaju teksta u matematičkom prostoru, poznatom kao prostor ugrađivanja.
  3. Izračun sličnosti. Kako bi pronašao povezani tekst, sustav za dohvaćanje uspoređuje ugrađivanje upita s ugrađivanjima dokumenata pomoću mjere sličnosti kao što su kosinusna sličnost ili skalarni produkt

Tako, primjerice, internetske trgovine korisniku prikazuju artikle koji odgovaraju njegovu upitu.

Koja je razlika između ugrađivanja riječi, rečenica i dokumenata?

Glavna je razlika u tome koliko teksta svako ugrađivanje predstavlja u jednom vektoru. Ugrađivanja možete stvoriti za pojedinačne riječi, cijele rečenice ili čitave dokumente, ovisno o tome koje informacije želite obuhvatiti.

  • Ugrađivanja riječi obuhvaćaju odnose između pojedinačnih riječi i prepoznaju da su „ispad“ i „zastoj“ povezani pojmovi.
  • Ugrađivanja rečenica razumiju značenje cijelih rečenica, čak i kada istu ideju izražavaju različitim riječima.
  • Ugrađivanja dokumenata predstavljaju cijeli dokument kao jedan vektor, umjesto da stvaraju zaseban vektor za svaku rečenicu. To pomaže očuvati opću temu i pronaći druge dokumente koji obrađuju istu temu; međutim, detalje može biti teže (ako ne i nemoguće) dohvatiti.

Koliku granularnost odabrati? Prava razina ovisi o vašim podacima i onome što pokušavate postići.

Kod većih dokumenata uobičajena je praksa podijeliti tekst na manje segmente i za svaki generirati zasebno ugrađivanje. Na taj ćete način dobiti cjelokupno značenje dokumenta I specifične detalje, koji bi se mogli izgubiti kod ugrađivanja cijelog dokumenta.

Koliko veličina segmenta utječe na kvalitetu ugrađivanja?

Prilično. Kako kaže Rahul Kumar, potpredsjednik za AI inženjering u tvrtki Xenoss, izazov je pronaći veličinu segmenta koja obuhvaća jednu cjelovitu ideju bez gubitka važnog konteksta. On ovako objašnjava kompromis:

„Veličina segmenta određuje koliko semantičkog konteksta nosi jedno ugrađivanje. Veći segment vektoru daje više konteksta, ali i uprosječuje više tema u jedan vektor. Segment koji pokriva tri teme završava negdje u sredini i nijednoj od njih ne odgovara dobro. Manji segment zadržava jasno značenje, ali može izgubiti kontekst zahvaljujući kojemu ga je bilo moguće pronaći.“

Zato Kumar preporučuje da strategiju segmentacije odaberete na temelju sadržaja umjesto da se držite jedne fiksne veličine. Kako on kaže, „segmenti fiksne veličine s preklapanjem prikladni su samo za ujednačen tekst poput e-pošte ili automatski prikupljenih web-stranica.“

Za strukturirane dokumente poput ugovora ili pravilnika bolje je rekurzivno dijeljenje koje uzima u obzir strukturu. Semantička segmentacija, s druge strane, može dobro funkcionirati za transkripte jer tekst dijeli na mjestima gdje se mijenja tema ili značenje.

Tekstualna ugrađivanja nasuprot pretraživanju po ključnim riječima

Zašto koristiti tekstualna ugrađivanja kad možete jednostavno pretraživati po ključnim riječima? Zato što se pretraživanje po ključnim riječima oslanja na podudaranje pojmova, dok semantičko pretraživanje temeljeno na ugrađivanjima može dohvatiti relevantne informacije čak i kada upit i dokument koriste različite riječi.

No semantička sličnost ne znači uvijek i relevantnost. Shaw Talebi, osnivač platforme AI Builder Academy, pokazuje to ograničenje na primjeru sustava za pretraživanje životopisa. U Talebijevu slučaju, pri pretraživanju „inženjera podataka s iskustvom u Apache Airflowu“ samo je jedan od pet najboljih rezultata spominjao Apache Airflow, i to na trećem mjestu – iako su još tri životopisa u skupu podataka navodila tu vještinu.

To znači da je semantičko pretraživanje korisno za pronalaženje konceptualno povezanih informacija, ali može propustiti točne zahtjeve poput tehničkih vještina, identifikatora proizvoda ili kodova pogrešaka.

Kako bi se riješio taj problem, Rahul Kumar preporučuje odabir pristupa dohvaćanju ovisno o tome gdje sustav za dohvaćanje zakazuje:

  • Hibridno pretraživanje (kombinacija podudaranja ključnih riječi i semantičkog pretraživanja) zadani je izbor kada upiti sadrže točne pojmove, poput SKU-ova, kodova pogrešaka ili pravnih referenci.
  • Modeli za ponovno rangiranje (rerankeri) isplate se kada je važno samo nekoliko najboljih rezultata, primjerice kod odgovora generiranih iz dohvaćenog konteksta.
  • Dohvaćanje putem grafa pomaže kada se odgovor proteže kroz više povezanih izvora podataka.

Kumar je također podijelio kako je njegov tim te pristupe primijenio u praksi. U jednom su projektu paralelno pokretali BM25 pretraživanje po ključnim riječima i vektorsko pretraživanje, spojili rezultate pomoću recipročne fuzije rangova (RRF) i upotrijebili LLM kako bi ponovno rangirali 124 najbolja rezultata i sveli ih na 6.

„Prelazak na dohvaćanje u kojem prednost ima graf, pri čemu vektorsko pretraživanje pronalazi slične latentne prostore, a zatim slijedi obilazak grafa u dva skoka, podigao je kvalitetu rangiranja (nDCG) s 0,58 na 0,67 i smanjio vrijeme dohvaćanja na 90. percentilu (p90) s 19 s na manje od 3 s“, dodaje Kumar.

Vrste modela za tekstualna ugrađivanja

Svi modeli za ugrađivanje u osnovi rade isto – uče odnose u tekstu. Međutim, razlikuju se po zadatku za koji su trenirani, informacijama koje uzimaju u obzir i zadacima za koje su osmišljeni.

Modeli statičkih ugrađivanja riječi

Tradicionalni modeli ugrađivanja riječi uče guste numeričke reprezentacije riječi na temelju obrazaca njihove upotrebe u velikim zbirkama teksta. Ta su ugrađivanja statična, što znači da svaka riječ dobiva isti vektor bez obzira na njezino značenje u određenom kontekstu.

Dvije su poznate metode:

  • Word2Vec: Razvio ga je Google 2013. godine, a reprezentacije uči iz susjednih riječi pomoću dviju arhitektura: Continuous Bag of Words (CBOW), koja predviđa riječ na temelju njezinih susjeda, i skip-gram, koja predviđa susjedne riječi na temelju zadane riječi.
  • GloVe (Global Vectors for Word Representation): Razvijen na Stanfordu 2014. godine, koristi statistiku supojavljivanja riječi kako bi naučio odnose među riječima.

Kontekstualizirani jezični modeli

Za razliku od statičkih ugrađivanja, jezični modeli opće namjene stvaraju kontekstualne reprezentacije koje se mijenjaju ovisno o okolnom tekstu. To modelima pomaže razlikovati različita značenja iste riječi.

  • BERT (2018., Google): Koristi dvosmjernu samopažnju (self-attention) kako bi uzeo u obzir riječi s obje strane tokena. Na primjer, stvara različite reprezentacije za riječ „bank“ u rečenicama „I deposited money at the bank“ (Položio sam novac u banku) i „I sat on the bank of a river“ (Sjedio sam na obali rijeke).
  • GPT (2018., OpenAI): Koristi reprezentacije temeljene na transformerima koje uzimaju u obzir prethodni tekst pri predviđanju sljedećeg tokena. GPT modeli prvenstveno su namijenjeni generiranju jezika.

Modeli ugrađivanja rečenica i dokumenata

Predstavljaju dulje dijelove teksta, od pojedinačnih rečenica do odlomaka i cijelih dokumenata, kao vektore.

  • Doc2Vec: Proširuje učenje u stilu modela Word2Vec na rečenice, odlomke i dokumente. Može pomoći u grupiranju povezanih članaka ili klasifikaciji dokumenata po temi.
  • Universal Sentence Encoder (USE): Google ga je razvio 2018. za generiranje reprezentacija rečenica i kratkih odlomaka fiksne duljine za semantičku sličnost i klasifikaciju teksta.
  • Sentence-BERT (SBERT, 2019.): Razvili su ga Nils Reimers i Iryna Gurevych na Tehničkom sveučilištu u Darmstadtu; temelji se na Googleovu modelu BERT i često se koristi za semantičko pretraživanje, otkrivanje parafraza i klasteriranje.
  • pplx-embed-v1 (2026., Perplexity): Ova obitelj najsuvremenijih modela za tekstualna ugrađivanja, izgrađena za dohvaćanje u stvarnim uvjetima na razini weba, koristi predtreniranje temeljeno na difuziji kako bi kauzalni jezični model pretvorila u dvosmjerni enkoder. Generira gusta ugrađivanja za neovisno kodirane upite i dokumente, uz treniranje svjesno kvantizacije radi smanjenja troškova pohrane. Naš model 4B INT8 postigao je 69,66 nDCG@10 na višejezičnom mjerilu za dohvaćanje MTEB, u usporedbi sa 67,71 koliko je postigao Googleov gemini-embedding-001.
  • pplx-embed-context-v1 (2026., Perplexity): Rješava čest problem segmentacije dokumenata: odlomci mogu izgubiti značenje kada se odvoje od okolnog teksta. Koristeći kasnu segmentaciju, model obrađuje dokument prije sažimanja kontekstualiziranih reprezentacija tokena u zasebna ugrađivanja segmenata. Naš model 4B postigao je 81,96 nDCG@10 na mjerilu ConTEB, u usporedbi sa 79,45 koliko je postigao voyage-context-3.
  • pplx-embed-v2-context (2026., Perplexity): Kontekstualno dohvaćanje podiže na višu razinu. Umjesto da se trenira samo za pronalaženje odlomka koji sadrži odgovor, uči prepoznavati popratne odlomke koji pomažu objasniti ili potvrditi taj odgovor. Model tijekom treniranja koristi signale relevantnosti destilirane iz modela za sažimanje konteksta, a pritom mu taj model učitelj nije potreban u vrijeme inferencije. Pretpregledna verzija našeg modela 9B postigla je 45,5 % odziva odgovora i 40,6 % odziva dokaza pri 10 rezultata na mjerilu context-bench.

Modeli tvrtke Perplexity omogućuju i pohranu ugrađivanja u velikom opsegu. Modeli stvaraju INT8 i binarna ugrađivanja, čime se zahtjevi za pohranom smanjuju 4 odnosno 32 puta u usporedbi s FP32.

Model

Dimenzije

Kontekst

MRL

Kvantizacija

Upute

Sažimanje

pplx-embed-v1-0.6B

1024

32K

Da

INT8/BINARNO

Ne

Prosjek

pplx-embed-v1-4B

2560

32K

Da

INT8/BINARNO

Ne

Prosjek

pplx-embed-context-v1-0.6B

1024

32K

Da

INT8/BINARNO

Ne

Prosjek

pplx-embed-context-v1-4B

2560

32K

Da

INT8/BINARNO

Ne

Prosjek

Dimenzije, duljina konteksta, kvantizacija i konfiguracija sažimanja (poolinga) modela pplx-embed

Gusta, rijetka i viševektorska ugrađivanja

Postoji još jedna razlika koju vrijedi razumjeti, osobito kod semantičkog pretraživanja. Modeli za ugrađivanje mogu se razlikovati po tome kako predstavljaju tekst i izračunavaju relevantnost.

  • Gusta ugrađivanja: Predstavljaju tekst pomoću kompaktnih vektora u kojima je većina vrijednosti različita od nule.
  • Rijetka ugrađivanja: Koriste vektore u kojima je većina vrijednosti nula, s naučenim težinama povezanima s važnim pojmovima. Modeli kao što je SPLADE (2021.) uče koji su pojmovi važni za dohvaćanje relevantnih dokumenata.
  • Viševektorska ugrađivanja: Zadržavaju nekoliko vektora za jedan dio teksta, što omogućuje detaljnije usporedbe upita i dokumenata. Modeli kao što je ColBERT (2020.) koriste te reprezentacije za preciznije uspoređivanje upita s dokumentima.
  • Modeli koji kombiniraju više pristupa: BGE-M3 (2024.), koji je razvio BAAI, podržava gusto, rijetko i viševektorsko dohvaćanje unutar istog modela.

Kako odabrati i evaluirati model za tekstualna ugrađivanja

Javna mjerila kao što je MTEB dobra su polazna točka. Pomoću njih suzite izbor na dva ili tri modela koji podržavaju vaše jezike, duljine ulaza i zahtjeve za implementaciju. No nemojte još proglasiti pobjednika. Ne možemo dovoljno naglasiti koliko je važno testirati te modele na vlastitim podacima.

Evo praktičnog tijeka rada za evaluaciju:

  1. Izradite testni skup podataka. Prikupite 50–100 reprezentativnih upita za pretraživanje kao početni evaluacijski skup (možda će vam trebati i više), uključujući zahtjevne slučajeve kao što su parafraze, tehnička terminologija i točni kodovi pogrešaka. Za svaki upit utvrdite koji dokumenti ili odlomci sadrže relevantne odgovore. Te oznake relevantnosti postaju vaša referentna istina (ground truth).
  2. Izmjerite kvalitetu dohvaćanja. Testirajte svaki model na istom skupu podataka za evaluaciju i održavajte usporedive uvjete pripreme dokumenata i dohvaćanja, uz pridržavanje zahtjeva specifičnih za pojedini model u pogledu formatiranja upita, normalizacije i ocjenjivanja sličnosti. Zatim izračunajte sljedeće metrike pomoću alata InformationRetrievalEvaluator iz biblioteke Sentence Transformers:
    • Recall@k: Pokazuje udio relevantnih odlomaka koji se pojavljuju među prvih k rezultata.
    • MRR: Mjeri koliko je visoko u poretku rangiran prvi relevantni rezultat.
    • nDCG@k: Mjeri koliko je dobro prvih k rezultata rangirano s obzirom na njihovu relevantnost.
  3. Testirajte latenciju i propusnost. Izmjerite koliko je vremena svakom modelu potrebno za generiranje ugrađivanja upita, po mogućnosti uz prikaz medijana (p50) i 95. percentila (p95) latencije pod realističnim opterećenjem.
  4. Izračunajte troškove pohrane i rada. Pohrana vektora ovisi o broju ugrađivanja, njihovoj dimenzionalnosti i numeričkoj preciznosti. Primjerice, milijun 768-dimenzionalnih FP32 ugrađivanja zahtijeva približno 3,1 GB prostora za sirove vektore, ne računajući dodatni prostor za indeksiranje. Kako biste smanjili zahtjeve za pohranom, vektore možete kvantizirati na nižu numeričku preciznost. Prelaskom s FP32 na INT8, primjerice, prostor potreban za sirove vektore smanjuje se otprilike četiri puta. Međutim, kompresija može utjecati na kvalitetu dohvaćanja, pa ponovno provedite evaluacije kako biste provjerili isplati li se taj kompromis.

Na kraju usporedite rezultate jedne uz druge: metrike dohvaćanja, latenciju p95, propusnost, pohranu i troškove. Odaberite model koji zadovoljava vaše zahtjeve za kvalitetom unutar ograničenja vašeg produkcijskog okruženja.

Kada koristiti ugrađivanja umjesto LLM-a?

Budući da LLM-ovi obavljaju sve, od analize dokumenata do složenog rasuđivanja, vrlo je primamljivo sav tekst predati modelu i pustiti ga da sam sve riješi. No vjerojatno nećete biti oduševljeni kad to budete morali platiti.

Osim toga, LLM-ovi su bolji u prosuđivanju i sastavljanju teksta, ali ograničeni su količinom informacija koju mogu primiti u jedan prompt. Ugrađivanja su, s druge strane, jeftina, brza i dosljedna te rade s milijunima stavki.

„Ugrađivanja su bolji izbor za pretraživanje, preporuke (»više ovakvoga«), otkrivanje duplikata, poput ponovljenih zahtjeva za podršku, te grupiranje velikih količina sadržaja prema temi. Dobro funkcioniraju i na više jezika. LLM je bolji izbor kad zadatak zahtijeva rasuđivanje: sažimanje, usporedbu opcija ili pisanje odgovora. Većini stvarnih sustava potrebno je oboje, pri čemu svaki obavlja dio u kojem je dobar“, zaključuje Kumar.

Što programeri pogrešno shvaćaju o ugrađivanjima teksta

Kako bismo saznali što programeri obično previđaju, razgovarali smo s Rahulom Kumarom i Xibeijiom Guan, podatkovnom znanstvenicom u tvrtki Ahrefs. Istaknuli su šest pogrešaka na koje vrijedi pripaziti:

  • Preskakanje predobrade teksta. Ako ulazni podaci sadrže HTML, navigacijske izbornike, oglase ili drugi nebitan sadržaj, koraci predobrade kao što je uklanjanje šablonskog sadržaja (boilerplate) mogu poboljšati kvalitetu ugrađivanja jer uklanjaju nepotrebne informacije.
  • Zanemarivanje maksimalne duljine ulaza modela. Različiti modeli imaju različita ograničenja broja tokena i različito skraćuju tekst. Tekst koji premašuje ograničenje može biti skraćen, zbog čega se mogu izgubiti važne informacije.
  • Nepridržavanje zahtjeva specifičnih za model. Neki modeli ugrađivanja zahtijevaju određene prefikse, kao što su query: i passage:, ili različite upute za različite zadatke. Nepridržavanje tih zahtjeva može smanjiti učinkovitost dohvaćanja.
  • Korištenje nekompatibilne mjere sličnosti. Kosinusna sličnost i skalarni produkt nisu uvijek međusobno zamjenjivi. Provjerite jesu li ugrađivanja normalizirana i koristite metodu ocjenjivanja koja se preporučuje za model i vektorski indeks.
  • Poistovjećivanje tematske sličnosti s relevantnošću. U zbirkama iz uskog područja mnogi dokumenti mogu biti semantički slični, a da ne odgovaraju na isto pitanje. Pregledajte neuspjele upite i distribucije rangiranja. Kad korisnici trebaju točne informacije, testirajte leksičko ili hibridno dohvaćanje, ponovno rangiranje i filtre po metapodacima.
  • Zanemarivanje normalizacije ugrađivanja. Različiti modeli ugrađivanja mogu davati normalizirane ili nenormalizirane vektore. Provjerite jesu li ugrađivanja normalizirana i je li potrebna dodatna normalizacija, ovisno o metrici sličnosti koju koristite.

Česta pitanja o ugrađivanjima teksta

1. Kako generirati ugrađivanja teksta?

Najjednostavniji je pristup upotrijebiti unaprijed istrenirani model ugrađivanja. S bibliotekom Sentence Transformers za Python, primjerice, možete učitati model kao što je all-MiniLM-L6-v2, proslijediti tekst metodi model.encode() i dobiti natrag numerički vektor. Ugrađivanja možete generirati i putem API-ja.

Za semantičko pretraživanje ili RAG dokumenti se obično dijele na manje dijelove (engl. chunks), za svaki se dio generira ugrađivanje, a vektori se pohranjuju u pretraživi indeks.

2. Koji su najbolji modeli ugrađivanja za tekst?

Ovisno o tome što izrađujete, vrijedi razmotriti nekoliko modela:

  • pplx-embed-v1 tvrtke Perplexity: Izrađen za gusto dohvaćanje velikih razmjera, s INT8 i binarnim ugrađivanjima koja smanjuju zahtjeve za pohranom vektora.
  • pplx-embed-context-v1 tvrtke Perplexity: Koristan za dohvaćanje odlomaka iz dugih dokumenata u kojima pojedinačni dijelovi bez okolnog konteksta gube značenje.
  • all-MiniLM-L6-v2: Dobar za resursno nezahtjevno lokalno semantičko pretraživanje, klasteriranje i zadatke sličnosti rečenica. Generira kompaktne 384-dimenzionalne vektore, ali skraćuje ulaze dulje od 256 dijelova riječi (word pieces).
  • BGE-M3: Koristan za višejezični RAG i hibridno dohvaćanje. Podržava više od 100 jezika i kombinira guste, rijetke i viševektorske reprezentacije.
  • Qwen3-Embedding: Snažan kandidat za višejezično pretraživanje, dohvaćanje koda i ugrađivanja prilagođena specifičnim zadacima. Nudi modele s otvorenim težinama veličine 0,6B, 4B i 8B s podrškom za upute.
  • text-embedding-3-large tvrtke OpenAI: Opcija temeljena na API-ju za semantičko pretraživanje i dohvaćanje dokumenata kada ne želite sami hostati model. Podržava do 3072 dimenzije, koje možete smanjiti radi uštede prostora za pohranu.
  • Modeli Gemini Embedding tvrtke Google: Korisni za upravljane aplikacije za dohvaćanje. Gemini Embedding 2 podržava i pretraživanje teksta, slika, zvuka, videozapisa i PDF-ova u zajedničkom prostoru ugrađivanja.

3. Mogu li koristiti LLM kao model ugrađivanja?

Da, ali postoji razlika između LLM-a opće namjene i onoga koji je optimiziran za ugrađivanja. LLM-ovi stvaraju interne vektorske reprezentacije teksta koje možete izdvojiti i objediniti (pooling) u jedno ugrađivanje. No ti vektori bez dodatnog treniranja nisu nužno korisni za semantičko pretraživanje.

Primjerice, Qwen3-Embedding kao osnovu koristi LLM koji je dodatno istreniran za zadatke ugrađivanja i dohvaćanja. Dakle, iako LLM možete prilagoditi za generiranje ugrađivanja, namjenski model ugrađivanja obično je praktičnija polazna točka.