Šta je RAG? Retrieval-Augmented Generation jednostavno objašnjen
RAG (retrieval-augmented generation) je način da AI model odgovara na pitanja koristeći vaše vlastite informacije. Kad neko postavi pitanje, vaša aplikacija prvo pretražuje dokumente za najrelevantnije odlomke, a zatim te odlomke predaje modelu zajedno s pitanjem. Model piše odgovor iz tog teksta, umjesto da se oslanja samo na ono što je slučajno naučio tokom treninga.
Zašto je RAG važan kad pravite aplikaciju uz AI
Velik jezički model zna mnogo o svijetu uopšte, ali ništa o vašem poslu: o vašim cijenama, pravilima, priručniku za proizvod, prošlonedjeljnim tiketima podrške. Također ima datum do kojeg su podaci učitani, pa ne zna ništa novo. Ipak, ako ga pitate, može dati samouvjeren, uvjerljiv i pogrešan odgovor.
Za to postoje tri glavna pristupa:
| Pristup | Šta radi | Pogodan za |
|---|---|---|
| Ubaciti sve u prompt | Poslati sve dokumente uz svako pitanje | Malo teksta, nekoliko stranica |
| RAG | Pretražiti dokumente i poslati samo relevantne dijelove | Veće ili promjenjive zbirke: centre za pomoć, priručnike, bilješke |
| Fine-tuning | Dodatno trenirati model na primjerima | Ton, format i ponavljajuće zadatke, ne činjenice koje se mijenjaju |
Savremeni modeli prihvataju duge promptove, pa je za kratak FAQ prvi pristup često dovoljan. RAG se isplati kad imate više teksta nego što želite slati svaki put, jer svaka riječ koju pošaljete košta novac i vrijeme (pogledajte kako se naplaćuju LLM API-ji).
Ako pravite funkciju „razgovor s našom dokumentacijom“, asistenta za podršku ili interni alat za znanje, gotovo sigurno pravite neku formu RAG-a.
Analogija iz svakodnevnog života
Zamislite ispit s otvorenom knjigom. Student koji mora odgovarati iz glave može pogriješiti ili nagađati. Student koji smije prvo otvoriti prave stranice, pročitati ih i tek onda odgovoriti mnogo je pouzdaniji, pod uslovom da pronađe prave stranice.
- Student je jezički model.
- Udžbenik su vaši dokumenti.
- Otvaranje pravih stranica je pretraga (retrieval).
- Pisanje odgovora iz tih stranica je generisanje.
RAG je verzija s otvorenom knjigom. A, kao i na ispitu, kvalitet odgovora u velikoj mjeri zavisi od toga jesu li pronađene prave stranice.
Kako RAG radi, korak po korak
Tipična RAG postavka ima dvije faze.
Priprema dokumenata (radi se unaprijed):
- Prikupite izvorni materijal: članke za pomoć, PDF-ove, pravila, podatke o proizvodima.
- Podijelite na dijelove (chunking): dugačke dokumente razbijte na manje komade, često od nekoliko pasusa, da pretraga može vratiti samo relevantan dio.
- Napravite embedding za svaki dio: pošaljite ga modelu za embeddinge, koji tekst pretvara u embedding, dugačku listu brojeva koja hvata njegovo značenje. Tekstovi o sličnim stvarima imaju slične brojeve.
- Sačuvajte dijelove i njihove embeddinge u bazi koja može pretraživati po sličnosti (često se zove vektorska baza ili vektorski indeks).
Odgovaranje na pitanje (radi se svaki put):
- Napravite embedding pitanja istim modelom za embeddinge.
- Pronađite dijelove čiji su embeddinzi najbliži embeddingu pitanja, recimo prvih pet.
- Sastavite prompt: uputstva, pronađeni dijelovi i pitanje.
- Generišite odgovor: jezički model piše odgovor na osnovu tih dijelova, po mogućnosti navodeći koje je koristio.
Pretraga po značenju je ono što čini da ovo radi: pitanje o „povratu novca“ može pronaći dio naslovljen „Politika povrata“, iako nemaju nijednu zajedničku riječ.
Radni primjer: asistent za pomoć jedne teretane
Recimo da teretana ima 40 članaka za pomoć i želi chat asistenta na svojoj web stranici. Član pita: „Mogu li zamrznuti članarinu dok putujem?“
Aplikacija pravi embedding pitanja i pronalazi tri najbliža dijela. Jedan od njih glasi:
Zamrzavanje članarine: Članovi s mjesečnim paketima mogu zamrznuti
članarinu do 2 mjeseca godišnje. Zatražite na recepciji ili u
aplikaciji najmanje 7 dana prije početka zamrzavanja.
Prompt koji se šalje modelu tada izgleda otprilike ovako:
Ti si asistent za pomoć za teretanu Northside Gym.
Odgovaraj samo na osnovu izvora ispod. Ako odgovor nije u njima,
reci da ne znaš i predloži da kontaktiraju recepciju.
Navedi koji si izvor koristio.
[Izvor 1: Zamrzavanje članarine] Članovi s mjesečnim paketima mogu zamrznuti...
[Izvor 2: Otkazivanje članarine] ...
[Izvor 3: Gostujuće karte] ...
Pitanje: Mogu li zamrznuti članarinu dok putujem?
Model odgovara: „Da — na mjesečnom paketu možete zamrznuti članarinu do dva mjeseca godišnje. Zatražite na recepciji ili u aplikaciji najmanje 7 dana prije (izvor: Zamrzavanje članarine).“
Teretana nikad ništa nije ponovo trenirala. Kad promijeni pravila za zamrzavanje, ažurira članak, aplikacija ponovo napravi embedding tog dijela i sljedeći odgovor odražava promjenu.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| LLM | Veliki jezički model, AI koji piše odgovor. Pogledajte šta je LLM. |
| Embedding | Lista brojeva koja predstavlja značenje nekog teksta. |
| Model za embeddinge | Model koji proizvodi embeddinge. Obično je odvojen od modela za chat i mnogo jeftiniji. |
| Dio (chunk) | Dio dokumenta, dimenzionisan tako da se može pronaći samostalno. |
| Vektorska baza / vektorska pretraga | Skladište koje pronalazi stavke sa sličnim embeddingima. Neke obične baze to također nude, na primjer Postgres preko ekstenzije pgvector. |
| Top-k | Koliko dijelova se pronalazi po pitanju. |
| Hibridna pretraga | Kombinacija pretrage po značenju i obične pretrage po ključnim riječima, što pomaže s tačnim pojmovima poput šifara proizvoda. |
| Kontekstni prozor | Maksimalna količina teksta koju model može primiti u jednom zahtjevu. |
| Oslonac / citati (grounding) | Vezivanje odgovora za određene pronađene izvore i njihovo prikazivanje. |
Česte zablude
- „RAG trenira model na mojim podacima.“ Ne trenira. Ništa se ne mijenja u modelu; on samo čita dodatni tekst u trenutku pitanja.
- „RAG znači da nema više halucinacija.“ Znači da ih ima manje. Ako pretraga promaši pravi dio ili odgovor nije u vašim dokumentima, model i dalje može pogađati. Uputite ga da kaže „ne znam“ i testirajte pitanjima čije odgovore već znate.
- „Treba mi posebna vektorska baza.“ Često ne treba. Za skromne količine podataka, vektorska ekstenzija na bazi koju već imate, ili čak obična pretraga po ključnim riječima, može biti dovoljna.
- „Veći dijelovi su bolji.“ Preveliki znače mnogo nebitnog teksta (više troškova i više zbunjenosti); premali gube kontekst zbog kojeg su imali smisla. Očekujte podešavanje.
- „Samo uploadujte sve.“ Zastarjeli, dupli ili kontradiktorni dokumenti daju kontradiktorne odgovore. Čišćenje izvornog materijala često je najveće poboljšanje koje možete napraviti.
- „Svako može vidjeti svaki dokument.“ Samo ako tako izgradite. Ako su neki dokumenti privatni za određene korisnike, sama pretraga mora filtrirati prema tome ko pita, inače asistent može citirati podatke jednog kupca drugom.
Koliko košta
RAG funkcija obično ima tri stalna troška: embedding vaših dokumenata (malo, uglavnom jednokratno), embedding svakog pitanja (sitno) i poziv jezičkom modelu (glavni trošak, koji raste s brojem dijelova koje šaljete). Tu je i pohrana u vašoj bazi podataka. Vaš AI provajder naplaćuje ovo na vaš račun, pa postavite limit potrošnje kod njih.
Šta tražiti od vašeg AI alata
- „Prije izgradnje RAG-a provjeri: je li naš sadržaj dovoljno mali da ga samo uključimo u prompt?“
- „Podijeli članke za pomoć na dijelove od nekoliko pasusa, zadrži naslov i link izvora za svaki dio i čuvaj embeddinge u našoj bazi.“
- „Koristi hibridnu pretragu, po značenju i po ključnim riječima, da se šifre proizvoda i dalje poklapaju.“
- „Reci modelu da odgovara samo na osnovu pronađenih izvora, da kaže kad ne zna i da ispod svakog odgovora prikaže izvore.“
- „Pretražuj samo dokumente koje prijavljeni korisnik smije vidjeti.“
- „Automatski ponovo napravi embedding dokumenta kad se izmijeni.“
- „Ključ AI provajdera čuvaj na serveru u tajnoj varijabli, nikad u pregledaču.“
- „Bilježi svako pitanje, pronađene dijelove i odgovor da mogu pregledati loše odgovore.“
RAG u Mythexu
Mythex ne uključuje gotov proizvod za bazu znanja ili RAG. Ono što radi jeste da napiše kod za takvu funkciju unutar vaše aplikacije: vi donosite dokumente i vlastiti ključ AI provajdera, koji se čuva kao tajna projekta, a agent gradi dijelove za pretragu i chat koristeći Postgres bazu projekta za skladištenje. Korištenje provajdera se naplaćuje na vaš račun kod provajdera, a ne kao Mythex krediti. Dokumentacija predlaže da počnete s jednom jednostavnom AI funkcijom i dodate RAG kad ona radi. Pogledajte izgradnju AI aplikacije, te naše vodiče o izradi aplikacije AI chatbota i dodavanju AI funkcija.
Pitanja
Šta je RAG jednostavno rečeno?
RAG (retrieval-augmented generation) je način da AI model odgovara na osnovu vaših informacija. Prije nego što model odgovori, vaša aplikacija pretraži dokumente za odlomke koji su najrelevantniji za pitanje i uključi ih u prompt, tako da je odgovor zasnovan na tom tekstu, a ne samo na onome što je model naučio tokom treninga.
Da li RAG trenira AI na mojim podacima?
Ne. RAG uopšte ne mijenja model. Traži relevantan tekst u trenutku kad se postavi pitanje i prosljeđuje ga modelu zajedno s pitanjem. Ako ažurirate dokument, sljedeći odgovor može odmah koristiti novu verziju.
Da li je RAG isto što i fine-tuning?
Ne. Fine-tuning mijenja ponašanje modela dodatnim treniranjem na primjerima, što je sporije i bolje za stil ili format. RAG daje modelu činjenice da ih pročita u trenutku pitanja, što je bolje za znanje koje se mijenja ili koje mora biti tačno citirano.
Da li RAG sprječava AI halucinacije?
Smanjuje ih, ali ih ne eliminiše. Ako pretraga pronađe pogrešne odlomke ili odgovor nije u vašim dokumentima, model i dalje može pogađati. Dobre RAG aplikacije govore modelu da kaže kad ne zna i prikazuju izvore koje su koristile.