Vektoru meklēšana (semantiskā meklēšana)
Ātra definīcija
Vektoru meklēšana ir iegūšanas metode, kas atgriež priekšmetus, kuru iegulšanas struktūras ir vistuvāk vaicājuma iegulšanai, tāpēc rezultāti atbilst nozīmei, nevis kopīgajiem atslēgvārdiem. Tā ir parastā semantiskās meklēšanas dzinēja metode.
Šajā lapā
Kā darbojas vektoru meklēšana
Katrs dokuments, fragments vai produkts tiek pārvērsts par iegulšanu un uzglabāts indeksā. Vaicājuma laikā jautājums tiek ieguldīts ar to pašu modeli, un indekss atgriež tuvākos vektorus, parasti mērītus ar kosinusa līdzību. Klients, uzdodot jautājumu “kaut kas silts slēpošanai”, var atrast jaku, kas aprakstīta kā “siltināta, ūdensnecaurlaidīga ziemas virsjakas”, pat ja neviena vārda nesakrīt.
Salīdzināt vaicājumu ar miljoniem vektoru viens pēc otra būtu lēni, tāpēc indeksi izmanto aptuvenas tuvākā kaimiņa algoritmus. HNSW, slāņveida grafiks, ko aprakstījusi Malkova un Jašunins 2016. gadā, ir viens no visplašāk izmantotajiem; tas apmaina nelielu precizitātes zudumu pret ļoti ātru meklēšanu. Atvērtā koda paplašinājumi, piemēram, pgvector, pievieno šos indeksus PostgreSQL.
Semantiskā meklēšana pret atslēgvārdu meklēšanu
Atslēgvārdu meklēšana (BM25, pilnteksta, trigramu saskaņošana) ir precīza attiecībā uz precīziem terminiem: produkta atsauce, zīmols, kļūdas kods. Tā neizdodas ar sinonīmiem un parafrāzēm. Vektoru meklēšana ir pretēja: spēcīga nozīmē, vāja precīzās virknes un retās identifikatoros.
Tāpēc lielākā daļa ražošanas sistēmu izmanto hibrīda meklēšanu: veic abas, pēc tam apvieno vai pārkārto rezultātus. Blīvās iegūšanas pētījumi, piemēram, Karpukhina un kolēģu 2020. gada darbs par jautājumu atbildēšanu, parādīja, cik daudz semantiskā iegūšana uzlabo atmiņu, un praktiķi kopš tā laika ir uzzinājuši, cik daudz tā joprojām gūst labumu no atslēgvārdu partnera.
Kļūdas
Vektoru meklēšana vienmēr atgriež kaut ko, pat ja nav nekā relevantā, tāpēc sistēmai ir nepieciešams atbilstības slieksnis vai pārbaude pirms rezultātu izmantošanas. Tā nesaprot skaitļus vai ierobežojumus: “zem 50 eiro, pieejams, izmērs M” prasa reālus filtrus strukturētos datos. Un kvalitāte ir atkarīga no tā, kā saturs tika sadalīts: pārāk garas daļas izpludina nozīmi, pārāk īsas daļas zaudē kontekstu.
Vektoru meklēšana AI SmartTalk
AI SmartTalk glabā iekapsulējumus PostgreSQL ar pgvector, ar HNSW indeksu uz produktu dokumentiem, un apvieno vektoru līdzību ar trigramu un pilna teksta meklēšanu. Produktiem asistenta meklēšanas rīks pievieno strukturētus filtrus par cenu, krājumiem, zīmolu, kategoriju un variantu atribūtiem, lai semantisks jautājums un precīzs ierobežojums varētu tikt atbildēts kopā.
Biežāk uzdotie jautājumi
Vai semantiskā meklēšana ir tas pats, kas vektoru meklēšana?
Semantiskā meklēšana ir mērķis — atrast rezultātus pēc nozīmes. Vektoru meklēšana pār iekapsulējumiem ir visizplatītākais veids, kā to sasniegt, bieži apvienojot ar atslēgvārdu meklēšanu.
Vai man nepieciešama speciāla vektoru datubāze?
Ne obligāti. Paplašinājumi, piemēram, pgvector, pievieno vektoru indeksus PostgreSQL, kas ir pietiekami daudziem pielietojumiem un saglabā vektorus blakus pārējiem datiem.
Kas ir hibrīdmeklēšana?
Meklēšana, kas vienlaikus veic vektoru meklēšanu un atslēgvārdu meklēšanu un apvieno rezultātus, lai tā varētu apstrādāt gan pārfrāzētus jautājumus, gan precīzus terminus, piemēram, produktu atsauces.