Vektor keresés (szemantikus keresés)
Gyors definíció
A vektor keresés egy lekérdezési módszer, amely visszaadja azokat az elemeket, amelyek embeddingjei a legközelebb állnak a lekérdezés embeddingjéhez, így az eredmények jelentés alapján illeszkednek, nem pedig megosztott kulcsszavak alapján. Ez a szemantikus keresés szokásos motorja.
Ezen az oldalon
Hogyan működik a vektor keresés
Minden dokumentumot, szöveget vagy terméket embeddinggé alakítanak és tárolnak egy indexben. Lekérdezéskor a kérdést ugyanazzal a modellel embeddingelik, és az index visszaadja a legközelebbi vektorokat, amelyeket általában koszinusz hasonlóság alapján mérnek. Egy ügyfél, aki azt kérdezi, hogy „valami meleg a síeléshez”, megtalálhat egy kabátot, amelyet „szigetelt, vízálló téli héjként” írnak le, még akkor is, ha egy szó sem egyezik.
A lekérdezés összehasonlítása millió vektorral egyesével lassú lenne, ezért az indexek közelítő legközelebbi szomszéd algoritmusokat használnak. Az HNSW, amelyet Malkov és Yashunin írt le 2016-ban, az egyik legszélesebb körben használt; egy apró pontosságveszteség árán nagyon gyors keresést biztosít. Az Open-source kiterjesztések, mint például a pgvector, ezeket az indexeket a PostgreSQL-hez hozzák.
Szemantikus keresés vs kulcsszavas keresés
A kulcsszavas keresés (BM25, teljes szöveg, trigram egyezés) pontos a pontos kifejezésekre: egy termék referencia, egy márka, egy hibakód. Nem működik a szinonimák és parafrázisok esetén. A vektor keresés ennek az ellentéte: erős a jelentésben, gyenge a pontos karakterláncokban és ritka azonosítókban.
Ezért a legtöbb termelési rendszer hibrid keresést használ: mindkettőt futtatják, majd egyesítik vagy újrarendezik az eredményeket. A sűrű lekérdezési kutatások, mint Karpukhin és kollégái 2020-as munkája a kérdés-válaszolásról, megmutatták, hogy mennyire javítja a szemantikus lekérdezés a visszahívást, és a gyakorlati szakemberek azóta megtanulták, hogy mennyire profitál még mindig egy kulcsszavas partnerből.
Csapdák
A vektorkeresés mindig visszaad valamit, még akkor is, ha nincs releváns találat, ezért a rendszernek relevancia küszöböt vagy ellenőrzést kell alkalmaznia az eredmények felhasználása előtt. Nem érti a számokat vagy a korlátozásokat: „50 euró alatt, raktáron, M-es méret” valódi szűrőket igényel a strukturált adatokon. A minőség attól függ, hogyan osztották fel a tartalmat: a túl hosszú szakaszok elmosódottá teszik a jelentést, a túl rövid szakaszok pedig elveszítik a kontextust.
Vektorkeresés az AI SmartTalkban
Az AI SmartTalk a pgvectorral tárolja az embeddingeket PostgreSQL-ben, HNSW indexet használ a termékdokumentumokon, és ötvözi a vektorksimilaritást a trigram és teljes szöveges kereséssel. A termékek esetében a segéd keresőeszköze strukturált szűrőket ad hozzá az ár, készlet, márka, kategória és variáns attribútumok alapján, így egy szemantikai kérdés és egy pontos korlátozás együtt válaszolható.
Gyakran ismételt kérdések
Ugyanaz a szemantikus keresés, mint a vektorkeresés?
A szemantikus keresés a cél — az eredmények jelentés alapján történő megtalálása. A vektorkeresés az embeddingeken a leggyakoribb módja ennek elérésére, gyakran kulcsszavas kereséssel kombinálva.
Szükségem van dedikált vektordatabázisra?
Nem feltétlenül. Az olyan kiterjesztések, mint a pgvector, vektorkiindexeket adnak a PostgreSQL-hez, ami elegendő sok alkalmazáshoz, és a vektorokat a többi adat mellett tartja.
Mi az a hibrid keresés?
Olyan keresés, amely a vektorkeresést és a kulcsszavas keresést egyidejűleg futtatja, és egyesíti az eredményeket, így mind a parafrázisolt kérdéseket, mind a pontos kifejezéseket, például a termékreferenciákat kezeli.