Šta su embeddingi i semantička pretraga
Embedding je niz brojeva, obično od nekoliko stotina do nekoliko hiljada, koji predstavlja značenje dijela teksta. Embedding model je istreniran tako da tekstovi sličnog značenja završe blizu jedan drugog. Semantička pretraga napravi embedding korisnikovog upita i pronađe dokumente ili proizvode čiji su embeddingi najbliži.
Tako pretraga pogađa namjeru i kada se riječi razlikuju. Kupac koji traži "topla jakna za vožnju biciklom na posao" može pronaći proizvod opisan kao "izolovani kaput otporan na vjetar za svakodnevna putovanja", a zaposleni koji pita "kako da mi vrate putne troškove" može pronaći pravilnik o troškovima.
Ovaj vodič je za produktne menadžere i inženjere koji unapređuju pretragu proizvoda, pretragu web stranice ili pretragu internog znanja. Pokriva izbor modela, gdje čuvati vektore, kombinovanje semantičkog rangiranja i rangiranja po ključnim riječima i mjerenje relevantnosti, da znate da li je promjena pomogla.
Kako izabrati embedding model
Postoji mnogo sposobnih embedding modela, komercijalnih i s otvorenim težinama. Javne rang-liste su razumna polazna tačka, ali rangiraju modele na benchmark podacima, a važno je kako model radi na vašim upitima i vašem sadržaju. Odmjerite ove faktore:
- Kvalitet pretrage na vašim podacima, izmjeren vašim skupom testova, kako je opisano niže.
- Pokrivenost jezika. Katalog na nizozemskom i engleskom treba višejezični model koji radi s oba, uključujući upite na mješavini jezika.
- Dimenzije i prostor. Veći vektori mogu obuhvatiti više, ali više koštaju za čuvanje i pretragu. Neki modeli podržavaju skraćene embeddinge uz mali gubitak kvaliteta.
- Dužina ulaza. Najveći broj tokena po ulazu ograničava koliko dug može biti dio teksta ili opis proizvoda.
- Hosting i pravila za podatke. Model preko API-ja je jednostavan za korištenje; model s otvorenim težinama koji sami hostujete drži podatke unutar vašeg okruženja.
- Trošak i vrijeme odziva, i za indeksiranje cijelog kataloga i za svaki upit.
Izaberite dva ili tri kandidata, napravite embeddinge za reprezentativan uzorak i uporedite ih na istom skupu testova. Uz svaki vektor sačuvajte naziv i verziju modela. Zamjena modela znači ponovnu izradu svih embeddinga, jer se vektori različitih modela ne mogu porediti.
pgvector ili posebna vektorska baza
Ako su vaši podaci već u Postgresu, pgvector dodaje tip kolone za vektore, operatore udaljenosti i indekse za približnu pretragu najbližih susjeda (HNSW i IVFFlat). Osnove stanu u nekoliko linija:
Posebne vektorske baze dodaju mogućnosti namijenjene vrlo velikim ili vrlo zahtjevnim opterećenjima. Kompromisi:
| Kriterij | pgvector | Posebna vektorska baza |
|---|---|---|
| Održavanje | Jedna baza koju već vodite, kopirate i štitite | Još jedan sistem koji treba voditi, pratiti i plaćati |
| Filtriranje i spajanje tabela | Pun SQL: prava pristupa, zalihe, cijena i kategorija u istom upitu | Filteri po metapodacima, s različitom podrškom za složene uslove |
| Konzistentnost | Vektori se ažuriraju u istoj transakciji kao izvorni red | Treba proces sinhronizacije iz glavnog izvora podataka |
| Obim | Uz podešavanje indeksa dobro podnosi mnoga stvarna opterećenja | Izrađena za vrlo velike indekse i velik broj upita |
| Dodaci | Sve što nude Postgres i njegove ekstenzije | Često ugrađena hibridna pretraga, više tenanata i upravljano skaliranje |
Naš standardni izbor je pgvector, dok mjerenja ne pokažu razlog za prelazak. Za većinu kataloga proizvoda i baza znanja, vektori uz podatke koje opisuju uklanjaju cijelu kategoriju grešaka u sinhronizaciji.
Hibridno rangiranje
Čista semantička pretraga ima slijepe tačke. Može sličan proizvod staviti iznad tačno onog koji je korisnik upisao, a loše radi sa šiframa artikala (SKU), brojevima modela, nazivima brendova i veličinama. Pretraga po ključnim riječima, s BM25 ili full-text pretragom u Postgresu, jaka je baš na tim mjestima.
Hibridno rangiranje pokreće obje i spaja rezultate. Česti pristupi:
- Reciprocal rank fusion (RRF) kombinuje pozicije iz svake liste bez potrebe za uporedivim ocjenama. Jednostavan je i dobar standardni izbor.
- Ponderisano miješanje ocjena normalizuje obje ocjene i miješa ih, što daje više kontrole, ali traži podešavanje.
- Ponovno rangiranje predaje spojene najbolje rezultate cross-encoderu ili LLM-u, koji svaki ocijeni u odnosu na upit.
- Poslovni signali kao što su zalihe, marža, popularnost i personalizacija primjenjuju se kao posljednji sloj, odvojeno, da se relevantnost može mjeriti sama za sebe.
Naš vodič za RAG chatbot u stvarnoj upotrebi sadrži hibridni upit za pgvector s RRF-om.
Mjerenje relevantnosti s recall@k i nDCG
Bez mjerenja se podešavanje pretrage pretvori u raspravu o pojedinačnim upitima. Sastavite ocijenjeni skup: nekoliko stotina stvarnih upita iz logova pretrage, svaki sa stavkama koje su relevantne, idealno s ocjenama (na primjer 0 za nerelevantno, 1 za djelimično relevantno, 2 za dobro poklapanje i 3 za potpuno tačno).
Dvije metrike pokrivaju većinu potreba:
- recall@k je udio relevantnih stavki koje se pojave među prvih k rezultata. Pokazuje da li se pravi rezultati uopće pronađu, što je najvažnije za RAG i za fazu kandidata prije ponovnog rangiranja.
- nDCG@k (normalised discounted cumulative gain) nagrađuje stavljanje najrelevantnijih stavki na vrh, uz stepenovane ocjene. Odražava kako ljudi pregledaju stranicu s rezultatima.
Pratite ih po grupama upita, kao što su česti upiti, rijetki upiti iz dugog repa i upiti sa šiframa artikala, jer prosjek može sakriti pad u jednoj grupi. Kada se offline metrike poboljšaju, potvrdite to online metrikama kao što su stopa klikova, udio pretraga koje završe u korpi i udio pretraga bez rezultata. Za stranu pretrage u RAG-u pogledajte kako evaluirati RAG.
Odakle početi
- 01Izvezite nekoliko stotina stvarnih upita iz logova pretrage, uključujući one koji sada vraćaju loše rezultate ili nijedan.
- 02Za svaki upit ocijenite relevantne rezultate, sa stepenovanom relevantnošću gdje možete.
- 03Izmjerite postojeću pretragu s recall@k i nDCG@k kao osnovnu vrijednost.
- 04Dodajte embeddinge u
pgvectorza dva kandidatska modela i uporedite ih. - 05Kombinujte s pretragom po ključnim riječima uz RRF, po potrebi dodajte reranker i izmjerite svaki korak.
- 06Pustite novu pretragu iza feature flaga, pa uporedite online metrike s osnovnom vrijednošću.
Ovaj pristup smo primijenili za semantičku pretragu proizvoda u maloprodaji. Ako vam treba pomoć s postavljanjem evaluacije ili same pretrage, kako radimo objašnjava kako vodimo ovakve projekte.