Vektori-tie­to­kan­ta on tie­to­kan­ta­tyyp­pi, joka tallentaa, hallinnoi ja hakee tietoja korkean ulot­tu­vuu­den vek­to­rei­na. Lue lisää vektori-tie­to­kan­to­jen toi­min­nas­ta ja käyt­tö­tar­koi­tuk­sis­ta.

Mitä vektori-tie­to­kan­ta tekee?

Kuten pe­rin­tei­set struk­tu­roi­dut tie­to­kan­nat, vektori-tie­to­kan­nat voivat tallentaa mo­nen­lai­sia tietoja, kuten tekstiä, kuvia ja muita me­dia­tyyp­pe­jä. Ero näiden kahden välillä on siinä, miten data tal­len­ne­taan ja haetaan. Kun ta­val­li­sis­sa tie­to­kan­nois­sa data tal­len­ne­taan usein in­dek­soi­dus­sa tau­luk­ko­muo­dos­sa, vektori-tie­to­kan­nois­sa da­taob­jek­tit esitetään korkean ulot­tu­vuu­den nu­mee­ri­si­na vek­to­rei­na. Vektorin si­säl­tä­mät arvot voidaan ymmärtää pa­ra­met­rei­na, jotka kukin kuvaavat al­ku­pe­räi­sen datan omi­nai­suut­ta. Tällä tavalla da­ta­jou­kot voidaan pa­ra­met­ri­soi­da ja sitten verrata ja niputtaa sa­man­kal­tai­suus­mit­ta­rei­den mukaan.

Vektori-tie­to­kan­to­jen avulla on paljon helpompi luo­ki­tel­la ja hakea tietoja niiden karkeiden omi­nai­suuk­sien pe­rus­teel­la. Tämä on erityisen hyö­dyl­lis­tä ko­neop­pi­mis- ja sy­vä­op­pi­mis­jär­jes­tel­mil­le.

Miten vek­to­ri­tie­to­kan­nat toimivat?

Pe­rin­tei­siin re­laa­tio­tie­to­kan­toi­hin ver­rat­tu­na vektori-tie­to­kan­nat tarjoavat monia etuja tekoälyn ja ko­neop­pi­mi­sen alalla. Vek­to­ri­tie­to­jen tal­len­ta­mi­ses­sa ja hal­lin­nas­sa on kuitenkin joitakin haasteita. Näiden tie­to­kan­to­jen en­sim­mäi­nen suuri haaste on pe­rin­teis­ten di­gi­taa­lis­ten da­taob­jek­tien muun­ta­mi­nen nu­mee­ri­sik­si vek­to­reik­si, jotka kuvaavat tarkasti näiden da­taob­jek­tien omi­nai­suuk­sia. Tässä vaiheessa vektori-upo­tus­mal­lit tulevat kuvaan.

Vektorit voidaan ymmärtää koor­di­naat­ti­pis­tei­nä mo­niu­lot­tei­ses­sa ava­ruu­des­sa. Mo­niu­lot­teis­ta avaruutta, jossa vek­to­ri­tie­to­kan­taan tal­len­ne­tut vektorit si­jait­se­vat, kutsutaan vektorien upo­tuk­sek­si. Di­gi­taa­li­sen da­taob­jek­tin muun­ta­mi­sek­si vas­taa­vak­si vektorien upo­tuk­sek­si tarvitaan vektorien upo­tus­mal­li. Vektorien upo­tus­mal­li on eri­kois­tu­nut ko­neop­pi­mis­mal­li, joka analysoi da­taob­jek­te­ja ja luo niiden mer­ki­tyk­sen ja kon­teks­tin pe­rus­teel­la sopivan vek­to­rie­si­tyk­sen.

Otetaan esi­merk­ki­nä vek­to­ri­tie­to­kan­ta, joka tallentaa ja luo­kit­te­lee sanoja. Sanat “sushi” ja “pasta” ovat kir­joi­tusa­sul­taan erilaisia, mutta niiden se­mant­ti­nen merkitys on sa­man­lai­nen. Siksi upo­tus­mal­lin tulisi tuottaa näille sanoille sa­man­lai­set vek­to­riu­po­tuk­set. Tätä varten malli voisi ana­ly­soi­da teks­ti­kon­teks­te­ja, joissa molemmat sanat esiin­ty­vät yleisesti.

Tietojen hakeminen vektori-tie­to­kan­nas­ta tapahtuu samalla tavalla kuin tietojen syöt­tä­mi­nen. Upo­tus­mal­li luo kyselylle sopivan vektorin (koor­di­naat­ti­pis­teen korkean ulot­tu­vuu­den ava­ruu­des­sa). Sitten käytetään vek­to­reil­le ke­hi­tet­ty­jä erityisiä ma­te­maat­ti­sia al­go­rit­me­ja lähimpien vek­to­rei­den löy­tä­mi­sek­si. Tällä me­ne­tel­mäl­lä voidaan hakea paitsi tarkkoja vas­taa­vuuk­sia myös da­taob­jek­te­ja, joiden vektorit ovat sa­man­kal­tai­sia kuin ky­se­ly­vek­to­ri. Jos esi­mer­kik­si haet sanaa “ruoka”, tuloksiin voi sisältyä mer­kin­tö­jä kuten “pasta” ja “sushi”. Jos kuitenkin haet sanaa “ja­pa­ni­lai­nen ruoka”, ky­se­ly­vek­to­ri on paljon lähempänä “sushi”-vektoria kuin “pasta”-vektoria.

Mitkä ovat vek­to­ri­tie­to­kan­to­jen edut?

Vektori-tie­to­kan­nat, kuten ChromaDB, tarjoavat useita etuja pe­rin­tei­siin re­laa­tio­tie­to­kan­toi­hin ver­rat­tu­na, jotka ovat erityisen ar­vok­kai­ta te­ko­ä­ly­so­vel­luk­sis­sa. Kä­sit­te­lem­me joitakin näistä tarkemmin jäl­jem­pä­nä.

Tehokas sa­man­kal­tai­suus­ha­ku

Esit­tä­mäl­lä da­taob­jek­tin pisteenä korkean ulot­tu­vuu­den ava­ruu­des­sa voidaan soveltaa vek­to­ri­kä­sit­te­lyyn eri­kois­tu­nei­ta al­go­rit­me­ja. Tämä mah­dol­lis­taa lähellä olevien vek­to­rei­den (tai te­maat­ti­ses­ti re­le­van­tin sisällön) nopean ja tehokkaan tun­nis­ta­mi­sen. Tämä omi­nai­suus on rat­kai­se­van tärkeä so­vel­luk­sis­sa, kuten ku­van­tun­nis­tuk­ses­sa, jossa on tarpeen tunnistaa sa­man­kal­tai­sia kuvia, sekä suo­si­tus­jär­jes­tel­mis­sä, jotka eh­dot­ta­vat sa­man­kal­tai­sia tuotteita tai sisältöä.

Suo­ri­tus­ky­ky ja skaa­lau­tu­vuus

Vek­to­ri­tie­to­kan­ta­jär­jes­tel­mät käyttävät usein mo­nen­lai­sia tek­nii­koi­ta kyselyjen nopeuden ja tie­to­jen­kä­sit­te­lyn te­hos­ta­mi­sek­si. Korkean ulot­tu­vuu­den vek­to­ri­tie­to­jen tehokkaan kä­sit­te­lyn lisäksi vek­to­ri­tie­to­kan­nat on usein suun­ni­tel­tu siten, että monia ope­raa­tioi­ta voidaan suorittaa rin­nak­kain. Mo­ni­mut­kais­ten tietojen esit­tä­mi­nen vek­to­rei­na mah­dol­lis­taa myös erittäin mo­ni­mut­kais­ten tie­to­ra­ken­tei­den tehokkaan kä­sit­te­lyn. Kaiken kaikkiaan nämä tekniikat vai­kut­ta­vat siihen, että vek­to­ri­tie­to­kan­nat voivat sisältää ja käsitellä suuria määriä tietoja ilman mer­kit­tä­vää suo­ri­tus­ky­vyn heik­ke­ne­mis­tä.

Ko­neop­pi­mis­mal­lien in­tegroin­ti

Koska neu­ro­ver­kot käyttävät usein vek­to­rei­ta syöttö- ja tu­los­tus­tie­to­na, monet te­ko­ä­ly­mal­lit voidaan in­tegroi­da sau­mat­to­mas­ti vek­to­ri­tie­to­kan­toi­hin. Tämä mah­dol­lis­taa mallien syöttö- ja tu­los­tus­tie­to­jen suoran tal­len­nuk­sen, hallinnan ja ha­ku­toi­min­not, mikä yk­sin­ker­tais­taa ja nopeuttaa te­ko­ä­ly­so­vel­lus­ten ke­hit­tä­mis- ja käyt­töön­ot­topro­ses­sia.

Missä vektori-tie­to­kan­to­ja käytetään?

Yksi vek­to­ri­tie­to­kan­to­jen käyt­tö­esi­merk­ki, joka on nykyään erittäin ajan­koh­tai­nen, on ko­neop­pi­mi­nen ja ge­ne­ra­tii­vi­nen tekoäly. Ko­neop­pi­mi­ses­sa vek­to­ri­tie­to­kan­to­ja käytetään sa­man­kal­tai­suus­ha­ku­ja varten, joita tarvitaan esi­mer­kik­si luo­kit­te­lu-, klus­te­roin­ti- ja suo­sit­te­lu­jär­jes­tel­mis­sä. Mallit voidaan kouluttaa tun­nis­ta­maan nopeasti sa­man­kal­tai­set da­ta­pis­teet ja tekemään niiden pe­rus­teel­la en­nus­tei­ta tai päätöksiä. Esi­mer­kik­si suo­sit­te­lual­go­rit­mi voi perustua vek­to­ri­tie­to­kan­taan, joka ehdottaa käyt­tä­jil­le tuotteita tai sisältöä, jotka ovat sa­man­kal­tai­sia kuin heidän aiemmat miel­ty­myk­sen­sä.

Lisäksi vek­to­ri­tie­to­kan­to­ja voidaan käyttää uusien neu­ro­verk­ko­jen kou­lu­tuk­sen no­peut­ta­mi­seen. Vek­to­ri­tie­to­kan­nat mah­dol­lis­ta­vat erittäin suurten kou­lu­tus­da­tan tehokkaan hallinnan ja haun, mikä parantaa mer­kit­tä­väs­ti sekä mallin tark­kuut­ta että kou­lu­tusai­kaa.

Yksi erityinen sovellus, joka hyötyy tästä op­ti­moin­nis­ta, ovat ge­ne­ra­tii­vi­set te­ko­ä­ly­mal­lit, kuten OpenAI:n GPT. Ne käyttävät vek­to­ri­tie­to­kan­to­ja tun­nis­ta­maan mo­ni­mut­kai­sia malleja datassa ja luomaan uutta sisältöä. Vek­to­ri­tie­to­kan­to­jen tuoma te­hok­kuuse­tu on rat­kai­se­va näiden jär­jes­tel­mien suo­ri­tus­ky­vyn kannalta.

Vinkki

GPT:n kal­tais­ten suurten kie­li­mal­lien (LLM) mer­kit­tä­vä hait­ta­puo­li ovat korkeat kou­lu­tus­kus­tan­nuk­set ja pitkät kou­lu­tusaa­jat. Näiden kahden tekijän vuoksi LLM-malleja ei voida sään­nöl­li­ses­ti kouluttaa uudelleen ajan­ta­sai­sil­la tiedoilla. Yksi tapa poistaa tämä heikkous on ha­ku­toi­min­nol­la täy­den­net­ty ge­ne­roin­ti (RAG). Li­sä­tie­to­ja tästä tek­nii­kas­ta löytyy aiheesta kir­joit­ta­mas­tam­me ar­tik­ke­lis­ta.

Siirry pää­va­lik­koon