Šta je RAG? Retrieval-Augmented Generation objašnjen jednostavno
RAG (retrieval-augmented generation) je način da AI model odgovara na pitanja koristeći vaše sopstvene informacije. Kada neko postavi pitanje, vaša aplikacija prvo pretraži dokumente za najrelevantnije delove, pa te delove prosledi modelu zajedno sa pitanjem. Model piše odgovor na osnovu tog teksta, umesto da se oslanja samo na ono što je slučajno naučio tokom treninga.
Zašto je RAG važan kada pravite aplikacije uz AI
Velik jezički model opšte zna mnogo o svetu, ali ništa o vašem poslu: vašim cenama, politikama, uputstvu za proizvod, prošlonedeljnim zahtevima za podršku. Takođe ima datum do kog su podaci uzeti za trening, pa ne zna ništa novo. Ako ga ipak pitate, može da da samouveren, verovatan i pogrešan odgovor.
Za to postoje tri osnovna pristupa:
| Pristup | Šta radi | Dobro za |
|---|---|---|
| Ubaciti sve u prompt | Poslati sve dokumente uz svako pitanje | Malo teksta, nekoliko stranica |
| RAG | Pretražiti dokumente i poslati samo relevantne delove | Veće ili promenljive zbirke: centri za pomoć, uputstva, beleške |
| Fino podešavanje | Dodatno trenirati model na primerima | Ton, format i ponavljajuće zadatke, a ne činjenice koje se menjaju |
Savremeni modeli prihvataju duge promptove, pa je za kratak FAQ prva opcija često dovoljna. RAG se isplati kada imate više teksta nego što želite da šaljete svaki put, jer svaka reč koju pošaljete košta novac i vreme (pogledajte kako se naplaćuju LLM API-ji).
Ako pravite funkciju „razgovaraj sa našom dokumentacijom“, asistenta za podršku ili interni alat za znanje, skoro sigurno pravite neku vrstu RAG-a.
Svakodnevna analogija
Zamislite ispit sa otvorenom knjigom. Učenik koji mora da odgovara iz glave može da pogreši ili da blefira. Učenik koji sme prvo da otvori prave stranice, pročita ih i tek onda odgovori mnogo je pouzdaniji, pod uslovom da nađe prave stranice.
- Učenik je jezički model.
- Udžbenik su vaši dokumenti.
- Otvaranje pravih stranica je pretraga (retrieval).
- Pisanje odgovora na osnovu tih stranica je generisanje.
RAG je verzija sa otvorenom knjigom. A kao i na ispitu, kvalitet odgovora veoma zavisi od toga da li su pronađene prave stranice.
Kako RAG radi, korak po korak
Tipično RAG podešavanje ima dve faze.
Priprema dokumenata (unapred):
- Prikupite izvorni materijal: članke za pomoć, PDF-ove, politike, podatke o proizvodima.
- Podelite na delove (chunk): dugačke dokumente razbijte na manje delove, često od nekoliko pasusa, da pretraga može da vrati samo relevantan deo.
- Napravite embedding za svaki deo: 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 dobijaju slične brojeve.
- Sačuvajte delove i njihove embeddinge u bazi koja može da pretražuje po sličnosti (često se zove vektorska baza ili vektorski indeks).
Odgovaranje na pitanje (svaki put):
- Napravite embedding pitanja istim modelom za embeddinge.
- Pronađite delove čiji su embeddinzi najbliži pitanju, na primer prvih pet.
- Sastavite prompt: uputstva, pronađene delove i pitanje.
- Generišite odgovor: jezički model piše odgovor na osnovu tih delova, po mogućnosti navodeći koje je koristio.
Upravo pretraga po značenju čini da ovo radi: pitanje o „povraćaju novca“ može da nađe deo pod naslovom „Politika povraćaja“, iako nemaju nijednu zajedničku reč.
Radni primer: asistent za pomoć u teretani
Recimo da teretana ima 40 članaka za pomoć i želi chat asistenta na sajtu. Član pita: „Mogu li da zamrznem članarinu dok sam na putu?“
Aplikacija napravi embedding pitanja i pronađe tri najbliža dela. Jedan od njih glasi:
Zamrzavanje članarine: Članovi sa mesečnim paketima mogu da zamrznu
članarinu do 2 meseca godišnje. Zatražite to na recepciji ili u
aplikaciji najkasnije 7 dana pre početka zamrzavanja.
Prompt koji se šalje modelu tada izgleda otprilike ovako:
Ti si asistent za pomoć za Northside Gym.
Odgovaraj samo na osnovu izvora ispod. Ako odgovora nema u njima,
reci da ne znaš i predloži kontakt sa recepcijom.
Navedi koji si izvor koristio.
[Izvor 1: Zamrzavanje članarine] Članovi sa mesečnim paketima mogu da zamrznu...
[Izvor 2: Otkazivanje članarine] ...
[Izvor 3: Gostujuće karte] ...
Pitanje: Mogu li da zamrznem članarinu dok sam na putu?
A model odgovara: „Da — na mesečnom paketu možete da zamrznete članarinu do dva meseca godišnje. Zatražite na recepciji ili u aplikaciji najkasnije 7 dana ranije (izvor: Zamrzavanje članarine).“
Teretana ništa nije ponovo trenirala. Kada promeni politiku zamrzavanja, ažurira članak, aplikacija ponovo pravi embedding tog dela i sledeći odgovor to odražava.
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 dela teksta. |
| Model za embeddinge | Model koji pravi embeddinge. Obično je odvojen od modela za čet i mnogo jeftiniji. |
| Deo (chunk) | Deo dokumenta, dovoljno mali da može da se pronađe samostalno. |
| Vektorska baza / vektorska pretraga | Skladište koje pronalazi stavke sa sličnim embeddingima. Neke obične baze to nude, na primer Postgres kroz ekstenziju pgvector. |
| Top-k | Koliko delova se vraća po pitanju. |
| Hibridna pretraga | Kombinacija pretrage po značenju i obične pretrage po ključnim rečima, što pomaže za tačne pojmove kao što su šifre proizvoda. |
| Kontekstni prozor | Najveća količina teksta koju model može da primi u jednom zahtevu. |
| Oslonac / citati | 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 menja u modelu; on samo čita dodatni tekst u trenutku pitanja.
- „RAG znači bez halucinacija.“ Znači manje njih. Ako pretraga promaši pravi deo ili odgovora nema u vašim dokumentima, model i dalje može da pogađa. Uputite ga da kaže „ne znam“ i testirajte ga pitanjima na koja znate odgovor.
- „Treba mi posebna vektorska baza.“ Često ne treba. Za skromne količine podataka dovoljna može biti vektorska ekstenzija na bazi koju već imate, ili čak obična pretraga po ključnim rečima.
- „Veći delovi su uvek bolji.“ Preveliki delovi znače mnogo nebitnog teksta (više troškova, više zbunjenosti), a premali delovi gube kontekst koji ih je činio smislenim. Očekujte podešavanje.
- „Samo postavi sve.“ Zastarela, duplirana ili kontradiktorna dokumenta daju kontradiktorne odgovore. Čišćenje izvornog materijala je često najveće poboljšanje koje možete da uradite.
- „Svako može da vidi svaki dokument.“ Samo ako tako napravite. Ako su neki dokumenti privatni za određene korisnike, sama pretraga mora da filtrira po tome ko pita, inače asistent može da citira podatke jednog kupca drugom.
Koliko košta
RAG funkcija obično ima tri tekuća troška: pravljenje embeddinga dokumenata (malo, i uglavnom jednokratno), embedding svakog pitanja (sitno) i poziv jezičkom modelu (glavni trošak, koji raste sa brojem poslatih delova). Tu je i skladištenje u vašoj bazi podataka. Vaš AI provajder ove troškove naplaćuje na vaš nalog, pa u njegovom kontrolnom panelu postavite limit potrošnje.
Šta da tražite od AI alata za pravljenje aplikacija
- „Pre nego što pravimo RAG, proveri: da li je naš sadržaj dovoljno mali da samo stane u prompt?“
- „Podeli članke za pomoć na delove od nekoliko pasusa, zadrži naslov i link izvora svakog dela i čuvaj embeddinge u našoj bazi.“
- „Koristi hibridnu pretragu, po značenju i po ključnim rečima, da bi šifre proizvoda i dalje odgovarale.“
- „Reci modelu da odgovara samo na osnovu pronađenih izvora, da kaže kada ne zna i da prikaže izvore ispod svakog odgovora.“
- „Pretražuj samo dokumente koje prijavljeni korisnik sme da vidi.“
- „Automatski ponovo napravi embedding dokumenta kad god se izmeni.“
- „Ključ AI provajdera neka bude na serveru u tajnoj vrednosti, nikada u pregledaču.“
- „Beleži svako pitanje, pronađene delove i odgovor da bih mogao da pregledam loše odgovore.“
RAG u Mythex-u
Mythex ne uključuje gotov proizvod za bazu znanja ili RAG. Ono što radi jeste da u vašoj aplikaciji napiše kod za njega: vi donosite dokumente i sopstveni ključ AI provajdera, sačuvan kao tajna projekta, a agent pravi delove za pretragu i čet, koristeći Postgres bazu projekta za skladištenje. Korišćenje provajdera se naplaćuje na nalog vašeg provajdera, a ne u Mythex kreditima. Dokumentacija predlaže da počnete sa jednom jednostavnom AI funkcijom i dodate RAG kada ona radi. Pogledajte pravljenje AI aplikacije, kao i naše vodiče o pravljenju AI chatbot aplikacije i dodavanju AI funkcija u aplikaciju.
Pitanja
Šta je RAG jednostavnim rečima?
RAG (retrieval-augmented generation) je način da AI model odgovara na osnovu vaših sopstvenih informacija. Pre nego što model odgovori, vaša aplikacija pretraži dokumente za delove koji su najrelevantniji za pitanje i uključi ih u prompt, pa 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 menja model. On u trenutku postavljanja pitanja pronađe relevantan tekst i prosledi ga modelu zajedno sa pitanjem. Ako izmenite dokument, sledeći odgovor može odmah da koristi novu verziju.
Da li je RAG isto što i fino podešavanje (fine-tuning)?
Ne. Fino podešavanje menja ponašanje modela tako što ga dodatno trenira na primerima; to je sporije i bolje za stil ili format. RAG modelu u trenutku pitanja daje činjenice koje može da pročita, što je bolje za znanje koje se menja ili koje mora da se citira tačno.
Da li RAG zaustavlja AI halucinacije?
Smanjuje ih, ali ih ne eliminiše u potpunosti. Ako pretraga pronađe pogrešne delove ili odgovor nije u vašim dokumentima, model i dalje može da pogađa. Dobre RAG aplikacije govore modelu da kaže kada ne zna i prikazuju izvore koje su koristile.