Kaj je RAG? Generiranje z iskanjem, preprosto razloženo
RAG (retrieval-augmented generation) je način, kako AI model odgovarja na vprašanja z vašimi lastnimi informacijami. Ko nekdo postavi vprašanje, vaša aplikacija najprej poišče najbolj relevantne odlomke v dokumentih, nato pa jih skupaj z vprašanjem poda modelu. Model napiše odgovor iz tega besedila, ne le iz tistega, kar se je med učenjem slučajno naučil.
Zakaj je RAG pomemben, ko gradite z AI
Velik jezikovni model dobro pozna svet na splošno, vaše poslovanje pa ne: vaših cen, pravilnikov, priročnika za izdelek, včerajšnjih podpornih zahtevkov. Ima tudi datum konca učenja, zato ne ve za nič novega. Če ga vseeno vprašate, lahko zelo samozavestno, a napačno odgovori.
Za to imate na voljo tri glavne možnosti:
| Pristop | Kaj naredi | Dobro za |
|---|---|---|
| Vse prilepiti v prompt | Pošljete vse dokumente ob vsakem vprašanju | Malo besedila – nekaj strani |
| RAG | Poišče vaše dokumente in pošlje le relevantne dele | Večje ali spreminjajoče se zbirke: centri za pomoč, priročniki, zapiski |
| Fine-tuning | Model dodatno nauči na primerih | Ton, oblika in ponavljajoče se naloge – ne dejstva, ki se spreminjajo |
Sodobni modeli sprejmejo dolge prompte, zato je pri kratkem FAQ prva možnost pogosto v redu. RAG se splača, ko imate več besedila, kot ga želite pošiljati vsakič – vsaka beseda, ki jo pošljete, stane denar in čas (glejte kako se zaračunavajo LLM API-ji).
Če gradite funkcijo »klepet z našimi dokumenti«, podporni pomočnik ali notranje orodje za znanje, gradite skoraj zagotovo neko obliko RAG.
Vsakdanja primerjava
Predstavljajte si izpit z odprto knjigo. Študent, ki mora odgovarjati iz glave, se lahko zmoti ali blefira. Študent, ki sme najprej poiskati prave strani, jih prebrati in šele nato odgovoriti, je veliko zanesljivejši – če res najde prave strani.
- Študent je jezikovni model.
- Učbenik so vaši dokumenti.
- Iskanje pravih strani je pridobivanje (retrieval).
- Pisanje odgovora s teh strani je generiranje.
RAG je različica z odprto knjigo. Kot pri izpitu je kakovost odgovora močno odvisna od tega, ali so bile najdene prave strani.
Kako RAG deluje korak za korakom
Tipična postavitev RAG ima dve fazi.
Priprava dokumentov (naredi se vnaprej):
- Zberi izvorno gradivo – članke za pomoč, PDF-je, pravilnike, podatke o izdelkih.
- Razdeli na kose: dolge dokumente razdeli na manjše dele, pogosto po nekaj odstavkov, da iskanje lahko vrne le relevanten del.
- Vdelaj vsak kos: pošlji ga modelu za vdelave, ki besedilo pretvori v vdelavo – dolg seznam števil, ki zajema njegov pomen. Besedila o podobnih stvareh imajo podobna števila.
- Shrani kose in njihove vdelave v bazo, ki lahko išče po podobnosti (pogosto imenovano vektorska baza ali vektorski indeks).
Odgovarjanje na vprašanje (naredi se vsakič):
- Vdelaj vprašanje z istim modelom za vdelave.
- Pridobi kose, katerih vdelave so najbližje vprašanju – na primer prvih pet.
- Sestavi prompt: navodila, pridobljeni kosi in vprašanje.
- Generiraj: jezikovni model napiše odgovor na podlagi teh kosov, po možnosti z navedbo, katere je uporabil.
Prav iskanje po pomenu to naredi delujoče: vprašanje o »vrnitvi denarja« lahko najde kos z naslovom »Pravilnik o vračilih«, čeprav nimata nobene skupne besede.
Delovni primer: pomočnik za pomoč v fitnes centru
Recimo, da ima fitnes center 40 člankov za pomoč in želi klepetalnega pomočnika na svoji spletni strani. Član vpraša: »Ali lahko med potovanjem začasno zamrznem članstvo?«
Aplikacija vprašanje vdela in pridobi tri najbližje kose. Eden od njih se glasi:
Zamrznitev članstva: Člani na mesečnih paketih lahko zamrznejo
svoje članstvo do 2 meseca na leto. Zahtevo oddajo na recepciji
ali v aplikaciji vsaj 7 dni pred začetkom zamrznitve.
Prompt, poslan modelu, potem izgleda nekako takole:
Si pomočnik za pomoč v fitnes centru Northside Gym.
Odgovarjaj le iz spodnjih virov. Če odgovora v njih ni,
reci, da ne veš, in predlagaj, naj se obrnejo na recepcijo.
Navedi, kateri vir si uporabil.
[Vir 1: Zamrznitev članstva] Člani na mesečnih paketih lahko zamrznejo...
[Vir 2: Odpoved članstva] ...
[Vir 3: Gostujoče vadbe] ...
Vprašanje: Ali lahko med potovanjem začasno zamrznem članstvo?
Model odgovori: »Da – pri mesečnem paketu lahko članstvo zamrznete do dva meseca na leto. Zahtevo oddajte na recepciji ali v aplikaciji vsaj 7 dni prej (vir: Zamrznitev članstva).«
Fitnes center ničesar ni treba ponovno učiti. Ko spremeni pravilnik o zamrznitvi, posodobi članek, aplikacija ponovno vdela ta kos in naslednji odgovor to upošteva.
Ključni pojmi
| Pojem | Pomen |
|---|---|
| LLM | Veliki jezikovni model – AI, ki napiše odgovor. Glejte kaj je LLM. |
| Vdelava (embedding) | Seznam števil, ki predstavlja pomen nekega besedila. |
| Model za vdelave | Model, ki ustvarja vdelave. Ponavadi je ločen od klepetalnega modela in veliko cenejši. |
| Kos (chunk) | Del dokumenta, velik toliko, da ga je mogoče pridobiti samostojno. |
| Vektorska baza / vektorsko iskanje | Shramba, ki najde elemente s podobnimi vdelavami. Nekatere običajne baze to ponudijo tudi – Postgres na primer prek razširitve pgvector. |
| Top-k | Koliko kosov se pridobi za vsako vprašanje. |
| Hibridno iskanje | Kombinacija iskanja po pomenu in običajnega iskanja po ključnih besedah, kar pomaga pri natančnih izrazih, kot so kode izdelkov. |
| Kontekstno okno | Največja količina besedila, ki jo model sprejme v eni zahtevi. |
| Utemeljitev / navedbe (grounding / citations) | Povezovanje odgovora z določenimi pridobljenimi viri in njihovo prikazovanje. |
Pogosta napačna razumevanja
- »RAG uči model na mojih podatkih.« Ne. Model se ne spremeni; med vprašanjem le prebere dodatno besedilo.
- »RAG pomeni, da ni več halucinacij.« Pomeni manj halucinacij. Če iskanje zgreši pravi kos ali odgovora v dokumentih ni, lahko model še vedno ugiba. Naročite mu, naj reče »ne vem«, in preizkušajte z vprašanji, za katera poznate odgovor.
- »Potrebujem posebno vektorsko bazo.« Pogosto ne. Pri zmernih količinah podatkov je lahko dovolj razširitev za vektorje v bazi, ki jo že imate, ali celo navadno iskanje po ključnih besedah.
- »Večji kosi so boljši.« Preveliki pomenijo, da pošiljate veliko nepomembnega besedila (več stroškov, več zmede); premajhni pa izgubijo kontekst, zaradi katerega so bili smiselni. Pričakujte, da boste nastavitev prilagajali.
- »Samo naloži vse.« Zastareli, podvojeni ali protislovni dokumenti dajo protislovne odgovore. Čiščenje izvornega gradiva je pogosto največja izboljšava, ki jo lahko naredite.
- »Vsak lahko vidi vsak dokument.« Le, če tako zgradite. Če so nekateri dokumenti zasebni za določene uporabnike, mora iskanje samo filtrirati glede na to, kdo sprašuje – sicer lahko pomočnik citira podatke ene stranke drugi.
Koliko stane
Funkcija RAG ima ponavadi tri tekoče stroške: vdelavo vaših dokumentov (majhen, večinoma enkraten), vdelavo vsakega vprašanja (zelo majhen) in klic jezikovnega modela (glavni strošek, ki raste s številom poslanih kosov). K temu pride še shranjevanje v bazi podatkov. Ponudnik AI to zaračuna na vaš račun, zato tam nastavite omejitev porabe.
Kaj vprašati svojega gradnika z AI
- »Preden gradiš RAG, preveri: ali je naša vsebina dovolj majhna, da jo lahko preprosto vključimo v prompt?«
- »Razdeli članke za pomoč na kose po nekaj odstavkov, ohrani naslov in povezavo na vir vsakega kosa ter vdelave shrani v našo bazo.«
- »Uporabi hibridno iskanje – po pomenu in po ključnih besedah – da se kode izdelkov vseeno ujemajo.«
- »Modelu naroči, naj odgovarja samo iz pridobljenih virov, naj pove, kadar ne ve, in pod vsakim odgovorom pokaže vire.«
- »Išči le dokumente, ki jih prijavljeni uporabnik sme videti.«
- »Ob vsaki urejeni različici dokumenta ga samodejno ponovno vdelaj.«
- »Ključ ponudnika AI naj bo na strežniku v skrivnosti, nikoli v brskalniku.«
- »Beleži vsako vprašanje, pridobljene kose in odgovor, da bom lahko pregledal slabe odgovore.«
RAG v Mythex
Mythex ne vključuje pripravljenega izdelka za bazo znanja ali RAG. Namesto tega v vašo aplikacijo napiše kodo zanj: vi prinesete svoje dokumente in svoj ključ ponudnika AI, shranjen kot skrivnost projekta, agent pa zgradi del za pridobivanje in klepet, pri shranjevanju pa uporabi Postgres bazo podatkov projekta. Uporaba ponudnika se zaračuna na račun vašega ponudnika, ne v kreditih Mythex. Dokumentacija predlaga, naj začnete z eno preprosto funkcijo AI in RAG dodate, ko ta deluje – glejte gradnjo aplikacije z AI ter naše vodnike o gradnji AI klepetalne aplikacije in dodajanju funkcij AI.
Vprašanja
Kaj je RAG na kratko?
RAG (retrieval-augmented generation) je način, kako AI model odgovarja z vašimi lastnimi informacijami. Preden model odgovori, vaša aplikacija poišče v dokumentih odlomke, ki so za vprašanje najbolj relevantni, in jih vključi v prompt. Odgovor tako temelji na tem besedilu, ne le na tem, kar se je model naučil med učenjem.
Ali RAG uči AI na mojih podatkih?
Ne. RAG modela sploh ne spremeni. Relevantno besedilo poišče v trenutku, ko je postavljeno vprašanje, in ga poda modelu skupaj z vprašanjem. Če dokument posodobite, lahko naslednji odgovor že uporabi novo različico.
Ali je RAG isto kot fine-tuning?
Ne. Fine-tuning spremeni vedenje modela, tako da ga dodatno uči na primerih. To je počasnejše in bolj primerno za slog ali obliko. RAG modelu med vprašanjem da dejstva za branje, kar je boljše za znanje, ki se spreminja ali ga je treba navesti natančno.
Ali RAG ustavi halucinacije AI?
Zmanjša jih, a jih ne odpravi. Če iskanje najde napačne odlomke ali odgovora v vaših dokumentih ni, lahko model še vedno ugiba. Dobre aplikacije RAG modelu naročijo, naj pove, kadar ne ve, in pokaže vire, ki jih je uporabila.