RAG ja Ai4Value älytietokanta 

RAG ja Ai4Value älytietokanta 

Suurten kielimallien (LLM = Large Language Model) maailmassa on viimeisen puolen vuoden aikana yleistynyt termi RAG. Se tulee lyhenteenä englanninkielisestä termistä Retrieval-Augmented Generation. Vapaasti suomennettuna tuo on ”noutamalla laajennettu tuottaminen”. Puretaanpa nuo sanat yksi kerrallaan helposti ymmärrettävään muotoon. 

Generation – Mitä tuotetaan? 

Lähes kaikki ovat kuulleet generatiivisesta tekoälystä, jota on esimerkiksi tekstin tuottaminen ChatGPT:llä ja kuvien tuottaminen Midjourney:llä. RAG-järjestelmä tuottaa älykkäitä vastauksia dokumenttitietokannasta käyttäjän luonnollisella kielellä esittämiin kysymyksiin. 

Dokumenttitietokanta voi olla jättimäisen yrityksen koko tietovarasto, pienyrityksen yhteen tiettyyn erityistoimintaa liittyvä dokumentaatio tai vaikkapa taiteellisen yksityishenkilön omien runojen kokoelma. RAG pystyy siis käsittelemään vaivattomasti monen kokoista ja monenlaista sisältöä. 

Augmented – Miten laajennetaan? 

Oleellista on, että käsiteltävän dokumenttivaraton aineistoa ei ole yleisesti saatavilla, jolloin lähes kaiken netistä ja muista helposti saatavista lähteistä oppinut kielimalli ei osaa suoraan vastata kyseistä yksityistä aineistoa koskeviin kysymyksiin. Tunnetusti kielimallit voivat toki ns. hallusinoida vääriä vastauksia aiheeseen kuin aiheeseen, vaikka eivät niistä tietäisikään mitään. RAG-järjestelmä laajentaa kielimallin käytettävissä olevan tiedon sisältämään myös yksityisessä tietovarastosta olevat dokumentit. Silloin myös sitä koskeviin kysymyksiin ja pyyntöihin saadaan kielimallilta oikeat vastaukset. 

Retrieval – Mitä ja miten noudetaan? 

Yksinkertaistettuna RAG noutaa dokumenttivarastosta käyttäjän luonnollisella kielellä pyytämät dokumentit tai tekee niistä käyttäjän pyytämät yhteenvedot. Konepellin alla luonnollisen kielen pyyntö muunnetaan matemaattiseksi vektoriksi, jollaisiksi myös dokumenttivaraston tiedot on jo aiemmin muunnettu siinä vaiheessa, kun ne on viety RAG-järjestelmään. 

Kyse on tarkemmin sanottuna ns. semanttisista vektoreista, mikä tarkoittaa sitä, että merkitykseltään samankaltaisten dokumenttien vektorit ovat matemaattisesti lähellä toisiaan. Tämä on täysin analoginen koulumatematiikasta tuttujen 2- ja 3-ulotteisten vektoreiden läheisyyden laskennan kanssa, vaikka nämä semanttiset vektorit ovatkin paljon moniulotteisempia (muutamasta sadasta muutamaan tuhanteen ulottuvuutta). 

Vektoroinnin avulla käyttäjän kysymykseen läheisesti liittyvät dokumentit (lähimmät dokumenttivektorit) löytyvät nopeasti ja ne voidaan esittää käyttäjälle sellaisenaan tai kielimalli voi tehdä niistä käyttäjän haluaman yhteenvedon tai raportin. 

Haasteita 

Ihan yllä kuvatun mukaisesti suoraviivaista asia ei kuitenkaan ole. Käytännössä paria lausetta pidemmät tekstidokumentit pilkotaan pienemmiksi palasiksi, sillä semanttiset vektorit toimivat parhaiten pienillä ja aihepiiriltään yhtenäisillä tekstipätkillä. Tämä tuo järjestelmään monimutkaisuutta, kun mukana pitää olla kirjapito siitä, mihin dokumenttiin mikäkin tekstipalanen kuuluu ja missä järjestyksessä. Vastauksen saaminen käyttäjän johonkin vaativampaan kysymykseen voi edellyttää monien eri dokumenteissa olevien tekstipalasten löytämisen ja oikeanlaisen yhdistelyn. Tämä edellyttää ohjelmiston yleislogiikan tarkan suunnitellun sekä kielimallin suorituskyvyn syvällisen ymmärtämisen. 

Ai4Value älytietokanta 

Olemme Ai4Valuella päätyneet rakentamaan täysin oman RAG-järjestelmän, jota kutsumme Ai4Value älytietokannaksi. Koska koko ohjelmisto on omaa tuotantoamme, voimme räätälöidä älytietokantamme jokaiselle asiakkaallemme juuri heidän tarpeidensa mukaisesti vastamaan vaativiinkin tiedonkoontitehtäviin. Älytietokantaamme voidaan tarvittaessa yhdistää myös Google Search -toiminto tietojen hakemiseksi netistä ja se saadaan keskustelemaan yrityksen tietovarastojen, kuten ERP- ja CRM-järjestelmien kanssa. 

Tyypillinen Ai4Value älytietokannan käyttökohde ovat ihmiseltä paljon aikaa vievät relevanttien dokumenttien löytäminen ja niistä tietojen koonnit yhteenvedoiksi ja raporteiksi. Sitä voidaan käyttää myös opetus- ja perehdytystarpeisiin, suosittelukoneena sekä asiakaspalvelun chatbottina.