Tekniikka jossa tekoäly hakee relevanttia tietoa ennen vastaamista.
Retrieval-Augmented Generation · Tekoäly
RAG (Retrieval-Augmented Generation) on tekniikka, jossa tekoäly hakee ensin tietoa ulkoisesta lähteestä ja vastaa vasta sen jälkeen. Haettu teksti liitetään pyyntöön kontekstiksi, ja kielimalli kirjoittaa vastauksen sen perusteella. Näin malli vastaa lukemansa oikean ja ajantasaisen aineiston perusteella, eikä pelkän koulutusmuistinsa varassa. Se vähentää hallusinaatioita merkittävästi, vaikka ei poista niitä kokonaan. Menetelmä sopii tilanteisiin, joissa tieto muuttuu usein tai on yksityistä, koska malli ei voi tietää sitä etukäteen.
Vibekoodaajalle RAG on tuttu käytännössä, vaikka nimeä ei näkisi. Kun kysyt Cursorissa koodikannastasi tai liität dokumentaatiohaun mukaan, työkalu hakee ensin relevantit tiedostot ja antaa ne mallille. Samalla tavalla toimii yrityksen sisäinen tukibotti, joka vastaa omien ohjeidesi pohjalta. RAG on myös kevyempi vaihtoehto kuin mallin hienosäätö (fine-tuning): mallia ei tarvitse kouluttaa uudelleen, kun riittää että aineisto päivitetään. Vastauksen laadun kannalta tärkeintä on aineiston laatu: vanhentunut tai ristiriitainen dokumentti tuottaa vanhentuneen tai ristiriitaisen vastauksen, vaikka haku toimisi täydellisesti.
Tavallinen rakenne on kolmivaiheinen. Ensin dokumentit pilkotaan sopivan kokoisiksi paloiksi ja muunnetaan embeddingeiksi, eli lukusarjoiksi, jotka kuvaavat merkitystä. Sitten käyttäjän kysymyksestä haetaan samalla tavalla lähimmät palat. Lopuksi palat ja kysymys annetaan mallille yhdessä. Yleinen virhe on pilkkoa tekstiä liian isoihin paloihin, jolloin haku tuo mukaan paljon epärelevanttia ja malli sekoittuu. Korjaus on pienempi palakoko ja se, että pyydät mallin vastaamaan vain annetun aineiston perusteella ja sanomaan, jos vastausta ei löydy. Lopuksi kannattaa kokeilla haulla muutamaa oikeaa kysymystä ja katsoa, mitkä palat haku palautti. Jos väärät palat nousevat esiin, ongelma on yleensä hakuaineistossa tai palakoossa, ei itse mallissa.
RAG tarvitsee kaksi asiaa toimiakseen: LLM:n, joka kirjoittaa vastauksen, ja embeddingit, joilla oikea aineisto löytyy. Haettu aineisto täyttää osan mallin kontekstista, joten palojen määrää kannattaa rajata.
RAG on lyhenne sanoista Retrieval-Augmented Generation, suomeksi suunnilleen hakuun perustuva tekstin tuottaminen. Tekoäly hakee ensin aiheeseen liittyvää tietoa, esimerkiksi omista dokumenteistasi, ja kirjoittaa vastauksen sen pohjalta.
Termi tulee Patrick Lewisin ja kollegoiden tutkimusartikkelista "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", joka julkaistiin arXivissa toukokuussa 2020.
Kun tekoälyn pitää vastata tiedoista, joita sen koulutusaineistossa ei ole: yrityksen ohjeista, tuotetiedoista tai tuoreista dokumenteista. RAG vähentää keksittyjä vastauksia, koska malli vastaa annetun lähteen pohjalta ja voi kertoa, mistä tieto tuli.
Cursorin @codebase-haku käyttää RAG:ia: hakee relevantin koodin ennen vastausta
Dokumentaatiohaku tekoälyavustajassa vastaa kirjaston oikean API:n perusteella
Yrityksen sisäinen tietopankki ja LLM yhdessä muodostavat RAG-pohjaisen tukibotin
RAG vs fine-tuning: RAG hakee tiedon lennossa, fine-tuning opettaa sen malliin
Ohje mallille: vastaa vain annetun aineiston perusteella ja kerro, jos vastausta ei löydy
Uusi tuoteohje riittää lisätä tietokantaan, mallia ei tarvitse kouluttaa uudelleen
Tutustu kaikkiin vibekoodauksen termeihin.