Mis on RAG (retrieval-augmented generation)?

RAG ehk otsinguga täiendatud genereerimine: mudel otsib enne vastamist sinu dokumentidest õige lõigu ja vastab selle põhjal. Näide, piirid, tüüpvead.

Tuntud ka kui: retrieval-augmented generation, otsinguga täiendatud genereerimine

Koostanud · Avaldatud · Uuendatud · Lugemisaeg 3 min

Lühidalt

RAG (retrieval-augmented generation) on viis, kuidas keelemudel vastab oma dokumentide põhjal: süsteem otsib küsimusele sarnased lõigud teadmistebaasist, paneb need koos küsimusega mudelile ette ja mudel koostab vastuse nende lõikude põhjal. Mudelit ei õpetata ümber, seega uus materjal jõuab vastustesse pärast teadmistebaasi uuendamist.

RAG lühidalt: mudel otsib enne, kui vastab

RAG (retrieval-augmented generation, eesti keeles otsinguga täiendatud genereerimine) on muster, kus keelemudel ei vasta ainult oma treeningandmete põhjal, vaid otsib kõigepealt sinu materjalidest välja lõigud, mis küsimusega kokku puutuvad, ja koostab vastuse nende põhjal. Termini võtsid kasutusele Lewis ja kaasautorid 2020. aasta artiklis, kus nad sidusid keelemudeli eraldi otsitava mäluga: mudel ei pea kõiki fakte parameetritesse õppima, vaid saab need dokumentidest kätte (arXiv, 2005.11401).

Praktikas tähendab see, et küsimusele „kui kaua kehtib meie tagastusõigus“ ei vasta mudel mälust, vaid lõigust sinu müügitingimuste lehel. Kui tingimused muutuvad, muutub ka vastus, ilma et mudelit ümber treenitaks.

Kuidas RAG päringut käsitleb

  1. Dokumendid lõigatakse tükkideks

    Iga leht, PDF või kirje jagatakse lõikudeks mõnesaja sõna kaupa ja igale lõigule lisatakse metaandmed: allikas, pealkiri, sektsioon, kehtivuse kuupäev. Microsoft Azure AI Searchi dokumentatsioon kirjeldab sama rada: sisu indekseeritakse, päring leiab kandidaadid ja mudel kasutab neid vastuse alusena.

  2. Küsimus muudetakse otsingupäringuks

    Küsimus viiakse samasse vektorruumi kui lõigud, et leida tähenduselt lähimad tükid, mitte ainult sõnasõnalised vasted. Puhas sõnaline otsing jääb sageli kõrvale, sest eestikeelsed küsimused ja dokumendid kasutavad erinevaid sõnu.

  3. Leitud lõigud pannakse mudelile ette

    Mudel saab korraga küsimuse ja 3–8 lõiku koos allika nimega. Vastus peab olema nende lõikude põhjal ja viitama allikale. Kui lõigud küsimust ei kata, peab süsteem ütlema „ei tea“.

  4. Vastus ja viide lähevad tagasi kasutajale

    Lõppvastuses on link dokumendile, mille põhjal vastus sündis. See on ainus asi, mis teeb RAG-i vastuse kontrollitavaks.

Näide Eesti väikeettevõttest

Kümne töötajaga teenusettevõte saab nädalas paarkümmend korduvat küsimust arvete, tähtaegade ja tarnetingimuste kohta. Teadmistebaasi lähevad kolm dokumenti: hinnakiri, müügitingimused ja sisekord. Iga lõik saab pealkirja, näiteks „Maksetähtaeg erakliendile“. Töötaja küsib vestlusroboti käest „millal algab viivis“ ja saab vastuse koos lingiga tingimuste punktile.

Kui hinnakiri muutub, laetakse üles uus fail ja vana versioon eemaldatakse. See ongi RAG-i põhiline kasu: allikas on üks ja sama koht, kust nii inimene kui bot loevad. Kuidas seda teadmistebaasi korrastada, kirjeldab lähemalt artikkel teadmistebaas chatbotile, ja kui palju selline lahendus maksab, vaatab AI-chatboti teenuseleht.

Millal RAG ei ole õige lahendus

  • Kui vastust dokumentides ei ole. RAG ei arvuta ega otsusta sinu eest. Kui küsimus nõuab arvutust sinu andmebaasis või otsust, on vaja tavalist tarkvara või AI-agenti, kes kasutab tööriistu.
  • Kui tegu on stiili või vormingu probleemiga. Kui mudel peab kirjutama sinu toonil või terviklikus struktuuris, aitab näidistega juhendamine ja vajadusel peenhäälestus, mitte dokumentide otsing.
  • Kui dokumente on vähe ja need mahuvad prompti. Kahe lehekülje puhul piisab kogu teksti kaasa panemisest. RAG-i taristu tasub end ära, kui dokumente on palju või need muutuvad pidevalt.

Neli tüüpviga

Mida RAG-i juurutamisel kõige sagedamini valesti tehakse
VigaTagajärgParandus
Lõigud on leheküljesuurusedOtsing toob välja vale osa lehestLõika sektsiooni kaupa, lisa igale lõigule pealkiri
Aegunud ja uus versioon on korraga indeksisBot vastab kahe erineva hinnagaVersiooni kuupäev metaandmetesse, vana versioon välja
Mudelil puudub luba öelda „ei tea“Väljamõeldud vastus ehk hallutsinatsioonKohustuslik vastus „seda materjalides ei ole“
Vastusel puudub allikasKeegi ei saa vastust kontrollidaIga lause taga link lõigule, millelt see pärineb

Töö ja kulu

RAG-i kulu koosneb kahest osast. Esimene on sisu korrastamine: keegi peab dokumendid läbi lugema, lõikudeks jagama ja pealkirjastama, ning see on tunde, mitte minuteid. Teine on jooksev kulu: iga küsimus saadab mudelile ka leitud lõigud, seega kasvab sisendtokenite arv ja koos sellega arve. Väikese teadmistebaasi puhul on see mõõdetav eurodes kuu lõikes, suure puhul tuleb lugeda hinnakirja sisend- ja väljundtokenite kaupa.

Enne ostu tasub piiritleda üks protsess ja mõõta, kui palju küsimusi sinna päriselt tuleb. Kui maht on väike, on odavam panna dokumentidele parem otsing ja hoida mudel väljas. Kui maht on suur ja vastused peavad olema tõendatavad, on RAG odavaim viis seda teha ilma mudelit ümber õpetamata.

Küsimused

Kas RAG asendab mudeli peenhäälestust?

Enamasti jah, kui eesmärk on vastata ettevõtte dokumentide põhjal. Peenhäälestus muudab mudeli käitumist ja stiili, RAG toob vastusesse värske fakti. Uue hinnakirja või uue seaduse puhul piisab RAG-i korral allika uuendamisest, peenhäälestuse korral tuleb mudel uuesti treenida.

Miks RAG vahel vastab ikkagi valesti?

Kõige sagedamini seetõttu, et otsing ei leidnud õiget lõiku: tükk on liiga suur, sellel puudub pealkiri või kontekst, või süsteemis on mitu vastuolulist versiooni samast dokumendist. Teine tavaline põhjus on see, et mudelile anti käsk vastata igal juhul, ka siis, kui leitud lõigud küsimust ei kata.

Kui suur peaks teadmistebaas olema, et RAG töötaks?

Suurus ei ole mõõdupuu, korrastatus on. Hästi pealkirjastatud ja ajakohane materjal annab tavaliselt parema tulemuse kui suur sorteerimata kogu. Alustada tasub ühe protsessi dokumentidest, mille kohta töötajad kõige rohkem küsimusi esitavad.

Allikad

Kirjelda tööd, mis sul aega võtab

Esimene vestlus on tasuta. Vastan tunni jooksul ja hind on kirjalikult paigas enne töö algust.

Kirjuta mulle