Mis on RAG? Retrieval-Augmented Generation lihtsalt selgitatuna
RAG (retrieval-augmented generation) on viis, kuidas panna keeleline tehisintellekti mudel vastama küsimustele sinu enda teabe põhjal. Kui keegi esitab küsimuse, otsib su rakendus esmalt dokumentidest kõige asjakohasemad lõigud ja annab need seejärel mudelile koos küsimusega. Mudel kirjutab vastuse sellest tekstist, mitte ainult sellest, mida ta treeningu käigus juhuslikult õppis.
Miks RAG on oluline, kui ehitad AI-ga
Suur keelemudel teab maailma üldiselt palju, aga ei tea midagi sinu äri kohta: su hindu, poliitikaid, tootejuhendit, eelmise nädala tugipileteid. Lisaks on tal treeningu lõppkuupäev, nii et ta ei tea midagi hiljutist. Kui küsid siiski, võib ta anda enesekindla, mõjuva, kuid vale vastuse.
Selle parandamiseks on kolm laiemat võimalust:
| Lähenemine | Mida see teeb | Sobib |
|---|---|---|
| Pane kõik promptisse | Saada kõik dokumendid iga küsimusega | Väikesed tekstikogused – mõned lehed |
| RAG | Otsi dokumendid läbi, saada ainult asjakohased osad | Suuremad või muutuvad kogumid: abikeskused, juhendid, märkmed |
| Peenhäälestus | Treeni mudelit näidete peal edasi | Toon, vorming ja korduvad ülesanded – mitte muutuvad faktid |
Kaasaegsed mudelid aktsepteerivad pikki promptisid, seega lühikese KKK puhul on esimene võimalus sageli sobiv. RAG on väärt, kui sul on rohkem teksti, kui soovid iga kord saata – sest iga saadetud sõna maksab raha ja aega (vt kuidas LLM API-d tasu võtavad).
Kui ehitad funktsiooni „vestle meie dokumentidega”, klienditoe assistenti või sisemist teadmistetööriista, ehitad peaaegu kindlasti mingit RAG-i vormi.
Igapäevane analoogia
Kujutle avatud raamatuga eksamit. Üliõpilane, kes peab vastama mälu järgi, võib midagi valesti meenutada või oletada. Üliõpilane, kes tohib esmalt õigetele lehekülgedele vaadata, need läbi lugeda ja alles siis vastata, on palju usaldusväärsem – kui ta leiab õiged lehed.
- Üliõpilane on keelemudel.
- Õpik on su dokumendid.
- Õigete lehekülgede leidmine on otsing.
- Vastuse kirjutamine nendelt lehekülgedelt on genereerimine.
RAG on avatud raamatuga versioon. Ja nagu eksamilgi, sõltub vastuse kvaliteet suuresti sellest, kas õiged leheküljed leiti.
Kuidas RAG töötab, samm-sammult
Tüüpilisel RAG-i seadistusel on kaks faasi.
Dokumentide ettevalmistamine (tehakse ette):
- Kogu lähtematerjal – abiartiklid, PDF-id, poliitikad, tootekirjeldused.
- Tükelda see: jaga pikad dokumendid väiksemateks osadeks, sageli mõne lõigu kaupa, et otsing saaks tagastada ainult asjakohase osa.
- Embeddi iga tükk: saada see embedding-mudelile, mis muudab teksti embeddinguks – pikaks arvude loendiks, mis kirjeldab selle tähendust. Sarnaste asjadega seotud tekstidel on sarnased arvud.
- Salvesta tükid ja nende embeddingud andmebaasi, mis oskab otsida sarnasuse järgi (sageli nimetatakse seda vektorandmebaasiks või vektorindeksiks).
Küsimusele vastamine (tehakse igakord):
- Embeddi küsimus sama embedding-mudeliga.
- Too välja tükid, mille embeddingud on küsimuse omadele kõige lähemal – näiteks top viis.
- Koosta prompt: juhised, leitud tükid ja küsimus.
- Genereeri: keelemudel kirjutab vastuse nende tükkide põhjal, eelistatavalt märkides, milliseid ta kasutas.
Tähenduse järgi otsimine teebki selle toimivaks: küsimus „raha tagasi saamine” võib leida tüki pealkirjaga „Tagastuspoliitika”, kuigi neil pole ühtegi ühist sõna.
Näide: spordisaali abiline
Oletame, et spordisaalil on 40 abiartiklit ja ta soovib veebilehele vestlusabilist. Liige küsib: „Kas ma saan oma liikmelisust peatada, kui olen reisil?”
Rakendus embeddib küsimuse ja toob välja kolm lähimat tükki. Üks neist ütleb:
Liikmelisuse peatamine: Kuupõhise plaaniga liikmed saavad oma
liikmelisuse peatada kuni 2 kuuks aastas. Taotle seda
registratuuris või rakenduses vähemalt 7 päeva enne peatamise algust.
Mudelile saadetav prompt näeb välja umbes selline:
Sa oled Northside Gymi abiline.
Vasta ainult allpool toodud allikate põhjal. Kui vastust nendes ei ole,
ütle, et sa ei tea, ja soovita võtta ühendust registratuuriga.
Maini, millist allikat kasutasid.
[Allikas 1: Liikmelisuse peatamine] Kuupõhise plaaniga liikmed saavad...
[Allikas 2: Liikmelisuse lõpetamine] ...
[Allikas 3: Külalispiletid] ...
Küsimus: Kas ma saan oma liikmelisust peatada, kui olen reisil?
Mudel vastab: „Jah – kuupõhise plaani puhul saad oma liikmelisuse aastas kuni kaheks kuuks peatada. Taotle seda registratuuris või rakenduses vähemalt 7 päeva ette (allikas: Liikmelisuse peatamine).”
Spordisaal ei treeninud midagi uuesti. Kui ta muudab peatamise reegleid, uuendab ta artiklit, rakendus embeddib tüki uuesti ning järgmine vastus peegeldab muudatust.
Põhimõisted
| Mõiste | Tähendus |
|---|---|
| LLM | Suur keelemudel – AI, mis kirjutab vastuse. Vaata, mis on LLM. |
| Embedding | Arvude loend, mis kirjeldab tekstitüki tähendust. |
| Embedding-mudel | Mudel, mis toodab embeddinguid. Tavaliselt eraldi ja palju odavam kui vestlusmudel. |
| Tükk (chunk) | Dokumendi osa, mis on suurusega sobiv eraldi leidmiseks. |
| Vektorandmebaas / vektorotsing | Salvestus, mis leiab sarnaste embeddingutega kirjeid. Mõned tavalised andmebaasid pakuvad seda samuti – näiteks Postgres pgvector-laienduse kaudu. |
| Top-k | Mitu tükki küsimuse kohta välja tuuakse. |
| Hübriidotsing | Tähenduse põhine otsing koos tavalise märksõnaotsinguga, mis aitab täpsete terminitega, nagu tootekoodid. |
| Kontekstiaken | Maksimaalne tekstikogus, mida mudel suudab ühes päringus võtta. |
| Faktipõhisus / viited | Vastuse sidumine konkreetsete leitud allikatega ja nende näitamine. |
Levinud arusaamatused
- „RAG treenib mudelit minu andmete peal.” Ei treeni. Mudel ei muutu; ta lihtsalt loeb küsimuse hetkel lisateksti.
- „RAG tähendab, et hallutsinatsioone enam ei ole.” See tähendab vähem hallutsinatsioone. Kui otsing jätab õige tüki vahele või vastust sinu dokumentides ei ole, võib mudel ikkagi oletada. Juhenda teda ütlema „ma ei tea” ja testi küsimustega, mille vastused on sulle teada.
- „Mul on vaja spetsiaalset vektorandmebaasi.” Sageli ei ole. Väiksemate andmekogude puhul võib juba olemasolevale andmebaasile lisatud vektorlaiendus või isegi lihtne märksõnaotsing piisata.
- „Suuremad tükid on alati paremad.” Liiga suured saadavad palju ebaolulist teksti (rohkem kulu, rohkem segadust); liiga väikesed kaotavad konteksti, mis tükist arusaadava tegi. Eeldata tuleb kohandamist.
- „Lihtsalt laadi kõik üles.” Aegunud, dubleeritud või vastuolulised dokumendid annavad vastuolulisi vastuseid. Lähtematerjali puhastamine on sageli suurim parandus, mida saad teha.
- „Igaüks näeb iga dokumenti.” Ainult siis, kui nii ehitad. Kui mõned dokumendid on kindlatele kasutajatele privaatsed, peab otsing ise filtreerima, kes küsib – muidu võib assistent tsiteerida ühe kliendi andmeid teisele.
Mis see maksab
RAG-i funktsioonil on tavaliselt kolm pidevat kulu: dokumentide embeddimine (väike ja enamasti ühekordne), iga küsimuse embeddimine (väga väike) ja keelemudeli päring (peamine kulu, mis kasvab koos saadetavate tükkide arvuga). Lisaks salvestus sinu andmebaasis. Su AI-pakkuja arvestab need sinu enda konto kaudu, seega sea seal kulupiirang.
Mida küsida oma AI ehitajalt
- „Enne RAG-i ehitamist kontrolli: kas meie sisu on piisavalt väike, et see võiks lihtsalt prompti lisada?”
- „Tükelda abiartiklid paari lõigu pikkusteks osadeks, hoia iga tüki pealkirja ja allika linki ning salvesta embeddingud meie andmebaasi.”
- „Kasuta hübriidotsingut – tähenduse ja märksõna järgi –, et tootekoodid ikka sobiksid.”
- „Ütle mudelile, et ta vastaks ainult leitud allikate põhjal, ütleks, kui ta ei tea, ja näitaks iga vastuse all allikaid.”
- „Otsi ainult dokumente, mida sisse logitud kasutaja tohib näha.”
- „Embeddi dokument automaatselt uuesti, kui seda muudetakse.”
- „Hoia AI-pakkuja võtit serveris saladuses, mitte kunagi brauseris.”
- „Logi iga küsimus, leitud tükid ja vastus, et saaksin halbu vastuseid üle vaadata.”
RAG Mythexis
Mythexil ei ole valmis teadmistebaasi ega RAG-toodet. Selle asemel kirjutab see koodi, mis sellise süsteemi su rakendusse ehitab: sina toood oma dokumendid ja oma AI-pakkuja võtme, mis salvestatakse projekti saladusena, ning agent ehitab otsingu- ja vestlusosa, kasutades salvestuseks projekti Postgres andmebaasi. Pakkuja kasutus arvestatakse sinu pakkuja kontol, mitte Mythexi krediitidena. Dokumentatsioon soovitab alustada ühe lihtsa AI-funktsiooniga ja lisada RAG pärast seda, kui see töötab – vaata AI-rakenduse ehitamist ning meie juhendeid AI-vestlusroboti rakenduse ehitamisest ja AI funktsioonide lisamisest.
Küsimused
Mis on RAG lihtsas keeles?
RAG (retrieval-augmented generation) on viis, kuidas panna tehisintellekti mudel vastama sinu enda teabe põhjal. Enne kui mudel vastab, otsib sinu rakendus dokumentidest küsimusega kõige asjakohasemad lõigud ja lisab need prompti. Nii põhineb vastus sellel tekstil, mitte ainult sellel, mida mudel on treeningu käigus õppinud.
Kas RAG treenib AI-d minu andmete peal?
Ei. RAG ei muuda mudelit üldse. See otsib asjakohase teksti täpselt siis, kui küsimus esitatakse, ja annab selle mudelile koos küsimusega. Kui uuendad dokumenti, saab järgmine vastus kohe kasutada uut versiooni.
Kas RAG on sama mis peenhäälestamine (fine-tuning)?
Ei. Peenhäälestus muudab mudeli käitumist, treenides seda edasi näidete peal. See on aeglasem ja sobib paremini stiili või vormingu jaoks. RAG annab mudelile faktid, mida lugeda küsimuse esitamise hetkel, mis sobib paremini teadmistele, mis muutuvad või mida tuleb täpselt tsiteerida.
Kas RAG lõpetab AI hallutsinatsioonid?
See vähendab neid, aga ei kõrvalda täielikult. Kui otsing leiab valed lõigud või vastust sinu dokumentides ei ole, võib mudel ikkagi oletada. Head RAG-rakendused ütlevad mudelile, et ta ütleks, kui ta ei tea, ja näitavad kasutatud allikaid.