Embedding-uri
Definiție rapidă
Un embedding este o listă de numere (un vector) care reprezintă semnificația unui text, imagini sau alt element, astfel încât elementele similare să obțină vectori apropiați. Embedding-urile sunt ceea ce face posibilă căutarea după semnificație.
Pe această pagină
Cum funcționează embedding-urile
Un model de embedding citește un text și produce un vector de lungime fixă, de obicei câteva sute până la câteva mii de numere. Modelul este antrenat astfel încât textele cu semnificații înrudite să ajungă aproape unele de altele în acel spațiu: „politica de rambursare” și „cum îmi recuperez banii?” nu împărtășesc aproape niciun cuvânt, dar produc vectori apropiați.
Ideea se întoarce la vectorii de cuvinte, cum ar fi word2vec (Mikolov și colegii, 2013), care au învățat că cuvintele care apar în contexte similare au semnificații similare. Modelele la nivel de propoziție, cum ar fi Sentence-BERT (2019), au extins-o la propoziții și pasaje întregi, ceea ce este necesar pentru căutare și răspunsuri la întrebări.
La ce sunt folosite
Încadrările putere căutarea semantică: compară vectorul unei întrebări cu vectorii pasajelor stocate și returnează cel mai apropiat. Ele sunt pasul de recuperare al generării augmentate prin recuperare (RAG). De asemenea, servesc pentru gruparea conversațiilor similare, detectarea duplicatelor, recomandarea de produse similare și direcționarea unui mesaj către subiectul corect.
Modelele de încadrare multilingve plasează o întrebare în franceză și un pasaj în engleză aproape unul de celălalt atunci când înseamnă același lucru, ceea ce permite unei baze de cunoștințe să servească clienții în multe limbi.
Puncte practice
Vectorii din modele diferite nu sunt comparabili: dacă schimbi modelul de încadrare, fiecare pasaj stocat trebuie să fie reîncadrat. Încadrările capturează semnificația, nu valorile exacte, așa că sunt slabe la filtre precise precum o gamă de prețuri sau o referință de produs — acestea necesită câmpuri structurate sau căutare după cuvinte cheie. Și documentele lungi trebuie să fie împărțite în pasaje înainte de a fi încadrate, deoarece un vector pentru un întreg manual estompează conținutul său.
Modelele de încadrare diferă, de asemenea, în acoperirea lingvistică, dimensiune (și, prin urmare, costul de stocare) și locul în care sunt găzduite.
Încadrările în AI SmartTalk
Fiecare asistent AI SmartTalk folosește un model de încadrare pentru toată cunoștința sa. Asistenții noi folosesc în mod implicit un model multilingv găzduit în UE, iar modelele de încadrare OpenAI sunt, de asemenea, disponibile. Vectorii sunt stocați în PostgreSQL cu pgvector și combinați cu căutarea după cuvinte cheie și trigram, astfel încât referințele produselor și termenii exacți sunt găsiți la fel de fiabil ca întrebările parafrazate.
Întrebări frecvente
Care este diferența dintre o încadrare și un token?
Un token este o bucată de text, aproximativ un fragment de cuvânt, pe care un model o citește. O încadrare este un vector de numere care reprezintă semnificația — a unui token, a unei propoziții sau a unui întreg pasaj.
Sunt încadările aceleași cu o bază de date vectorială?
Nu. Încadrările sunt vectorii; o bază de date sau un index vectorial le stochează și le găsește pe cele mai apropiate rapid.
Pot schimba modelele de încadrare mai târziu?
Da, dar fiecare element stocat trebuie să fie reîncadrat cu noul model, deoarece vectorii din modele diferite trăiesc în spații diferite și nu pot fi comparați.