Tekoäly

Mikä on RAG? Yritysdatalla toimiva tekoäly

Kerromme RAG-arkkitehtuurista, jonka avulla tekoäly tuottaa oikeita vastauksia omista dokumenteistasi: sen osista, käyttöönoton vaiheista ja yleisistä virheistä.

Aurora YazılımToimitustiimi 6 min lukuaika
Mikä on RAG? Yritysdatalla toimiva tekoäly
Mikä RAG on?

RAG (Retrieval Augmented Generation) on arkkitehtuuri, jossa kielimalli hakee ensin omista dokumenteistasi asiaankuuluvat osat ennen vastaamista ja tuottaa sitten vastauksen niiden pohjalta. Mallia ei kouluteta uudelleen; tieto tuodaan ulkopuolelta jokaisessa kysymyksessä. Näin vastaukset pysyvät ajantasaisina, lähde voidaan osoittaa ja keksimisen riski pienenee selvästi.

Mikä RAG on ja miksi sitä tarvitaan?

Suuret kielimallit ovat vahvoja yleistiedossa, mutta ne eivät tunne yrityksesi hinnastoa, sisäisiä menettelyjäsi tai viime kuussa päivitettyä palautuskäytäntöäsi. Nämä tiedot eivät ole koulutusdatassa, ja vaikka olisivatkin, ne ovat vanhentuneet. Lyhin vastaus kysymykseen mikä RAG on: hakukerros, joka saa mallin lukemaan oikean dokumentin ennen kysymykseen vastaamista.

Nimen kolme sanaa tiivistävät prosessin. Retrieval (haku) tarkoittaa olennaisten tekstinpätkien löytämistä, augmented (rikastettu) niiden lisäämistä kysymykseen ja generation (tuotto) sitä, että malli kirjoittaa vastauksen tämän kontekstin avulla. Malli toimii kuin opiskelija, joka saa käyttää kirjaa kokeessa.

Tämä lähestymistapa korostuu erityisesti yritysten tekoälyprojekteissa. Asiakaspalvelussa, myynnin tuessa, henkilöstöhallinnon käsikirjoissa ja teknisessä dokumentaatiossa se mahdollistaa sen, että malli käyttää turvallisesti tietoa, jota se ei tunne mutta sinä tunnet.

Miten RAG toimii?

RAG-järjestelmä koostuu kahdesta erillisestä virrasta: indeksointivirrasta, jossa dokumentit valmistellaan etukäteen, ja jokaisessa kysymyksessä toimivasta kyselyvirrasta. Indeksointi tehdään kerran (ja aina dokumenttien muuttuessa); kyselyvirta valmistuu sekunneissa jokaisella käyttäjän viestillä.

Indeksointivirta

PDF-, Word-, verkkosivu- tai tietokantatietueet muunnetaan tekstiksi ja jaetaan merkityksellisiin osiin (chunk). Jokainen osa muunnetaan upotusmallilla (embedding) numeeriseksi vektoriksi ja tallennetaan vektoritietokantaan. Vektorit edustavat tekstin merkitystä; samaa tarkoittavat lauseet tuottavat toisiaan lähellä olevia vektoreita.

Kyselyvirta

  1. Käyttäjän kysymys muunnetaan vektoriksi samalla upotusmallilla.
  2. Vektoritietokannasta haetaan kysymystä lähimpänä olevat osat (yleensä 3–10 ensimmäistä tulosta).
  3. Löydetyt osat lähetetään kielimallille yhdessä kysymyksen ja ohjeiden kanssa.
  4. Malli kirjoittaa vastauksen vain tämän kontekstin pohjalta ja mainitsee lähteen.

Vektoritietokanta ja embedding

Perinteinen haku katsoo sanojen vastaavuutta; “palautusaikaa” hakeva voi ohittaa kappaleen, jossa lukee “oikeus palauttaa tavara”. Semanttinen haku mittaa vektorien läheisyyttä, joten se tunnistaa nämä kaksi ilmaisua samaksi aiheeksi. RAG:n voima tulee suurelta osin tästä vaiheesta.

Vektorien tallentamiseen voidaan käyttää erillisiä vektoritietokantoja, mutta myös olemassa oleva relaatiotietokanta voi hoitaa asian esimerkiksi PostgreSQL:n pgvector-laajennuksen kaltaisilla lisäosilla. Sopivan vaihtoehdon ratkaisevat datamäärä, päivitystiheys ja tiimin tuntema teknologia. Tietomallin valintaa olemme käsitelleet tarkemmin artikkelissa SQL:n ja NoSQL:n ero.

Käytännössä paras tulos saadaan usein hybridihaulla: semanttisen haun ja avainsanahaun tulokset yhdistetään. Ilmaisuissa, joiden on vastattava täsmälleen, kuten tuotekoodi tai sopimusnumero, sanahaku on edelleen osuvampi.

pythonLähimmän osan löytäminen kosinietäisyydellä (yksinkertainen esimerkki)
import numpy as np

def kosinus(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# parca_vektorleri: her belge parcasinin embedding vektoru
# soru_vektoru: kullanici sorusunun embedding vektoru
skorlar = [kosinus(soru_vektoru, v) for v in parca_vektorleri]
en_iyi = np.argsort(skorlar)[::-1][:5]
print(en_iyi)

RAG vai hienosäätö (fine-tuning)?

Kaksi tapaa opettaa mallille yrityksen dataa sekoitetaan usein. Hienosäätö tarkoittaa mallin painojen kouluttamista uudelleen omilla esimerkeillä; se sopii hyvin tyylin, muodon ja tiettyjen tehtävämallien opettamiseen. RAG taas pitää tiedon mallin ulkopuolella ja tuo sen jokaisessa kysymyksessä.

Jos tieto muuttuu usein, lähteen osoittaminen on tärkeää ja käyttöoikeudet vaihtelevat käyttäjittäin, RAG on lähes aina oikeampi aloitus. Kumpaakin menetelmää voi käyttää myös yhdessä.

KriteeriRAGHienosäätö
Ajantasainen tietoNäkyy heti, kun dokumentti päivittyyVaatii uudelleenkoulutuksen
Lähteen osoittaminenLuontevasti mahdollistaVaikeaa
KäyttöoikeudetVoidaan suodattaa osittainMalli tietää kaiken
Tyylin ja muodon opettaminenRajallinenVahva
AloituskustannusSuhteellisen alhainenVaatii datan valmistelua ja koulutusta

Käyttöalueet ja esimerkit

Keskustelu dokumentin kanssa on tunnetuin esimerkki: sadan sivun menettelyn lukemisen sijaan työntekijät esittävät kysymyksen, ja järjestelmä vastaa lainaamalla asiaankuuluvaa kohtaa. Sama logiikka toimii myös asiakaspuolella.

  • Asiakastuen avustaja: vastaa toimitusta, palautuksia ja takuuehtoja koskeviin kysymyksiin sivuston ajantasaisilla käytännöillä.
  • Hotelli ja matkailu: vastaa vieraiden kysymyksiin huoneiden ominaisuuksien, kohteen sääntöjen ja retkiohjelmien pohjalta; varaustietojen osalta se mietitään yhdessä esimerkiksi hotelliohjelmiston kaltaisten järjestelmien kanssa.
  • Verkkokauppa: vertailee tuotteita tuotekuvausten ja teknisten tietolehtien pohjalta; reaaliaikainen data, kuten varasto ja hinta, luetaan suoraan järjestelmästä verkkokauppaintegraation kautta.
  • Sisäinen tietopankki: henkilöstöhallinnon ja kirjanpidon prosessit sekä tekniset asennusmuistiinpanot haetaan yhdestä käyttöliittymästä.
  • Markkinointitiimi: tuottaa luonnoksia brändioppaan ja aiempien kampanjaraporttien pohjalta; nämä luonnokset käyvät läpi ihmisen hyväksynnän digimarkkinoinnin prosessissa.

Miten RAG-projekti toteutetaan?

Vaikka tekniset osat ovat valmiina, onnistuneen projektin työstä suurin osa on datapuolella. Alla olevat vaiheet tarjoavat useimmissa yritysprojekteissa toimivan tiekartan.

  1. Rajaa laajuus: valitse ensin yksi käyttöskenaario, esimerkiksi vain asiakastuen kysymykset.
  2. Siivoa lähteet: poista vanhat, ristiriitaiset ja luonnosasiakirjat; väärä dokumentti ei tuota oikeaa vastausta.
  3. Päätä pilkontastrategia: jaa otsikoiden ja kappaleiden rajojen mukaan ja jätä osien välille pieni päällekkäisyys.
  4. Suunnittele käyttöoikeudet: lisää jokaiseen osaan metatiedoksi, kuka sen saa nähdä.
  5. Kirjoita ohje: pyydä mallia vastaamaan vain annetun kontekstin avulla ja kertomaan, jos se ei tiedä.
  6. Tee testijoukko: mittaa säännöllisesti 50–100 oikean käyttäjän kysymyksellä ja odotetuilla vastauksilla.
  7. Rakenna päivitysvirta: varmista, että asiaankuuluvat osat indeksoidaan automaattisesti uudelleen, kun dokumentti muuttuu.

Yleisimmät virheet

RAG-järjestelmät vaikuttavat ensimmäisessä demossa vaikuttavilta; ongelmat tulevat esiin oikeiden käyttäjien kanssa. Yleisin virhe on huono pilkonta: taulukko jaetaan kahtia, otsikko ja sisältö päätyvät eri osiin ja malli vastaa puolikkaalla tiedolla.

Toinen virhe on katsoa vain lopullista vastausta mittaamatta haun laatua. Väärän vastauksen syy on useimmiten väärän osan haku, ei malli. Siksi hakutulokset on arvioitava erikseen.

Kolmas on tietoturva. Dokumentteihin piilotetut ohjeet voivat yrittää ohjata mallia (prompt injection). Haettua tekstiä on aina käsiteltävä datana, eikä se saa ohittaa järjestelmäohjeita. Jos malli yhdistetään muihin järjestelmiin, artikkelimme Mikä MCP on käyttöoikeusperiaatteet pätevät myös tässä.

Lopuksi RAG ei ole koko prosessi. Jos vastauksen jälkeen pitää avata pyyntö, lähettää sähköposti tai päivittää tietue, se on yhdistettävä työnkulun automaation työkaluihin.

Ennen RAG-projektin aloittamista

Kysy itseltäsi kolme kysymystä: Minkä kysymysten vastaaminen vie nykyään eniten työntekijöiden aikaa? Ovatko nämä vastaukset ajantasaisia ja kirjattu yhteen paikkaan? Mitä väärä vastaus maksaa? Näiden vastaukset määräävät projektin laajuuden ja sen, missä kohtaa tarvitaan ihmisen hyväksyntä.

Jos työskennellään henkilötietoja sisältävien dokumenttien kanssa, tietojenkäsittelyn ja säilytyksen ehdot on selvitettävä heti alussa. Sopimuksesta on tarkistettava, missä käytetty malliprovider käsittelee dataa ja tallentaako se sitä; oikeudellista arviota varten tarkista ajantasainen lainsäädäntö ja neuvonantajasi.

Aurora Yazılım kehittää toimialakohtaisia ohjelmistoratkaisuja, ja jokaisen projektin keskiössä on, missä data sijaitsee ja kuka siihen pääsee. Jos haluat keskustella projektistasi, ota meihin yhteyttä yhteydenottosivultamme.

Usein kysytyt kysymykset

01Eikö tekoäly tee lainkaan virheitä RAG:n kanssa?

Ei, mutta virheprosentti laskee selvästi ja virheet muuttuvat jäljitettäviksi. Jos haetaan väärä osa tai dokumentti on vanhentunut, malli voi silti vastata väärin. Siksi lähteen osoittaminen ja säännöllinen testaus ovat tärkeitä.

02Tarvitaanko RAG:ia pienelle yritykselle?

Jos dokumentteja on vähän ja kysymykset toistuvat, yksinkertainen UKK-sivu tai valmis avustaja voi riittää. RAG alkaa olla järkevä, kun tieto on hajallaan, laajaa ja päivittyy usein.

03Mitä tiedostotyyppejä RAG:iin voi lisätä?

Lähes kaiken, minkä voi muuntaa tekstiksi: PDF, Word, Excel, verkkosivut, sähköpostit ja tietokantatietueet. Skannatuissa dokumenteissa tarvitaan ensin tekstintunnistus (OCR), ja sen laatu vaikuttaa tulokseen suoraan.

04Pitääkö RAG:ia varten osata Pythonia?

Jos rakennat oman järjestelmän, Python-ekosysteemi on yleisin valinta, mutta kirjastoja löytyy myös JavaScriptille ja muille kielille. Yrityspuolella todellinen tarve ei ole ohjelmointi vaan puhtaiden ja ajantasaisten dokumenttien valmistelu.

RAG muuttaa tekoälyn yleisestä keskustelutyökalusta työtoveriksi, joka tuntee yrityksesi tiedon; onnistumisen avaimet ovat puhdas data, oikea pilkonta ja säännöllinen mittaus. Jos mietit omalla datallasi toimivaa ratkaisua, tutustu Aurora Yazılımin ratkaisuihin ja selvitetään tarpeesi yhdessä.