Upotukset
Nopea määritelmä
Upotus on numerolistaja (vektori), joka edustaa tekstin, kuvan tai muun kohteen merkitystä, jotta samankaltaiset kohteet saavat lähellä olevia vektoreita. Upotukset tekevät merkityshakuista mahdollisia.
Tällä sivulla
Miten upotukset toimivat
Upotusmalli lukee tekstiä ja tuottaa kiinteän pituisen vektorin, tyypillisesti useita satoja tai muutamia tuhansia numeroita. Malli on koulutettu niin, että samankaltaisia merkityksiä sisältävät tekstit päätyvät lähelle toisiaan tuossa tilassa: "hyvityskäytäntö" ja "miten saan rahani takaisin?" jakavat lähes ei sanoja, mutta tuottavat läheisiä vektoreita.
Ajatus juontaa juurensa sanavektoreihin, kuten word2vec (Mikolov ja kollegat, 2013), joka oppi, että samankaltaisissa konteksteissa esiintyvät sanat ovat samankaltaisia merkitykseltään. Lause-tason mallit, kuten Sentence-BERT (2019), laajensivat sen koko lauseisiin ja kappaleisiin, mikä on tarpeen haussa ja kysymyksiin vastaamisessa.
Mihin niitä käytetään
Upotukset tehostavat semanttista hakua: vertaavat kysymyksen vektoria tallennettujen kappaleiden vektoreihin ja palauttavat lähimmän. Ne ovat hakuvaihe hakua lisätyssä generoinnissa (RAG). Ne palvelevat myös samanlaisten keskustelujen ryhmittelyssä, kaksoiskappaleiden havaitsemisessa, samanlaisten tuotteiden suosittelemisessa ja viestin ohjaamisessa oikeaan aiheeseen.
Monikieliset upotusmallit sijoittavat kysymyksen ranskaksi ja kappaleen englanniksi lähelle toisiaan, kun ne tarkoittavat samaa, mikä mahdollistaa yhden tietopohjan palvelemisen asiakkaille useilla kielillä.
Käytännön asiat
Eri mallien vektoreita ei voi verrata: jos vaihdat upotusmallia, jokainen tallennettu kappale on upotettava uudelleen. Upotukset vangitsevat merkityksen, eivät tarkkoja arvoja, joten ne eivät ole hyviä tarkkoihin suodattimiin, kuten hintahaarukkaan tai tuoteviittaukseen — ne tarvitsevat rakenteellisia kenttiä tai avainsanahakua rinnalleen. Ja pitkät asiakirjat on jaettava kappaleiksi ennen upottamista, koska yksi vektori koko käyttöohjeelle hämärtää sen sisältöä.
Upotusmallit eroavat myös kielikattavuudeltaan, ulottuvuudeltaan (ja siten tallennuskustannuksiltaan) ja siitä, missä niitä isännöidään.
Upotukset AI SmartTalkissa
Jokainen AI SmartTalk -avustaja käyttää yhtä upotusmallia kaikelle tietämykselleen. Uudet avustajat käyttävät oletuksena EU:ssa isännöityä monikielistä mallia, ja OpenAI:n upotusmallit ovat myös saatavilla. Vektorit tallennetaan PostgreSQL:ään pgvectorin avulla ja yhdistetään avainsana- ja trigrammahakuun, jotta tuoteviittaukset ja tarkat termit löytyvät yhtä luotettavasti kuin parafraasatut kysymykset.
Usein kysytyt kysymykset
Mikä on ero upotuksen ja tokenin välillä?
Token on tekstin osa, suunnilleen sanan fragmentti, jonka malli lukee. Upotus on numeroiden vektori, joka edustaa merkitystä — tokenin, lauseen tai koko kappaleen.
Ovatko upotukset sama asia kuin vektoridatabaasi?
Ei. Upotukset ovat vektoreita; vektoridatabaasi tai -indeksi tallentaa ne ja löytää lähimmät nopeasti.
Voinko vaihtaa upotusmalleja myöhemmin?
Kyllä, mutta jokainen tallennettu kohde on upotettava uudelleen uudella mallilla, koska eri mallien vektorit elävät eri tiloissa eivätkä ole vertailukelpoisia.