Samo dokument u Dify? RAG razvoj jedan članak za početnike!
RAG, pun naziv Retrieval-Augmented Generation (retrieval pojačano generisanje), kao aktuelna pomoćna metoda u AI aplikacijama, efikasno poboljšava tačnost i pouzdanost LLM izlaza. Ali uvek se šali neko, RAG je samo "baciti dokument u Dify" tako jednostavno, zaista?
O tehničkom procesu RAG-a, na internetu već postoji mnogo visokokvalitetnih članaka, stoga autor želi da napiše ovaj članak sa ugla tehnološkog razvoja RAG-a, od najosnovnijeg RAG-a do aktuelno popularnih Graph RAG, Agentic RAG, predstavlja različite tipove i razlike RAG-a, nadam se da ćete benefitirati iz ovog članka.
01, Šta je RAG
Pre predstavljanja RAG-a, prvo predstavim dva problema sa kojima se suočava veliki jezički model (LLM), jedan je knowledge cutoff LLM-a, drugi je LLM ima fenomenu halucinacije.
** 1.1 **Knowledge cutoff
LLM trening nije real-time, već je offline treniran. U procesu treninga, korišćeni podaci su unapred pripremljeni, i većina su javni, open-source podaci, što je dovelo do toga da znanje koje LLM poseduje nakon treninga ima opseg. Drugim rečima, znanje modela je ograničeno na opseg znanja pokriven trening podacima, za novo znanje (npr. današnje vesti) ili netrenirano znanje (npr. neobjavljeni podaci), sam model ne poseduje ovo znanje, samo poseduje sposobnost zaključivanja.
1.2 Fenomen halucinacije
Fenomen halucinacije ima više dimenzija objašnjenja. S jedne strane, LLM je model uslovne verovatnoće, generiše tekst reč po reč na osnovu verovatnoće skupa reči uz uslov prethodnog teksta, ovaj mehanizam dovodi do toga da može appear izgleda logično strogo (visoka verovatnoća) ali zapravo nedostaje činjeničnog temelja generisanje, to je "sržano zanosenje bez smisla". S druge strane, proces treninga LLM-a, je proces kompresije i ekstrakcije znanja trening podataka, ali nije bezgubitna kompresija znanja, granično znanje lako podleže izobličenju pod udarcem glavnog znanja, što dovodi do halucinacije.
Na primer, LLM je kao kandidat koji se godinama priprema za ispitu, kada radi na zadataku, naiđe na novo znanje koje nikada nije naučio, ne zna odakle da počne (knowledge cutoff); kada naiđe na znanje koje nije dobro savladao, na osnovu nejasne sećanja ili istinitim ili lažnim nabiče odgovor (fenomen halucinacije).
1.3 RAG

A RAG je metoda koja može efikasno rešiti problem knowledge cutoff i fenomen halucinacije modela. RAG je skraćenica za Retrieval-Augmented Generation. Retrieval-Augmented Generation znači optimizaciju ulaza velikog jezičkog modela (LLM), tako da može citirati znanje izvan izvora trening podataka pre generisanja odgovora, kao osnovu odgovora. Ovo je ekonomičan i efikasan način unapređenja LLM izlaza, čini da LLM ostaje relevantan, tačan i praktičan.
RAG sistem ima dve najvažnije komponente:
- Retrieval: Pretraživanje eksternih izvora podataka, npr. baze znanja, vektorske baze podataka ili API-ja za pretragu weba. Uobičajene metode pretrage su full-text pretraga, vektorska pretraga, grafička pretraga itd.
- Generation: Pružanje informacija o pretrazi LLM-u, generisanje odgovora.
Za model velikog modela kandidata, RAG je kao referentna knjiga ili "drugi mozak", omogućava modelu da kada naiđe na znanje koje nije naučio ili nije dobro naučio, može da lista knjigu da pronađe referentne materijale, poboljšava tačnost odgovora na pitanja.
02, Razvoj RAG-a
Sa aspekta razvoja RAG-a u poslednjih godinama, RAG je uglavnom prošao kroz nekoliko tipova razvoja: Naive RAG, Advanced RAG, Modular RAG, Graph RAG, i aktuelno popularni Agentic RAG.
- Naive RAG je najosnovnija implementacija RAG-a.
- Advanced RAG je na osnovu Naive RAG-a, optimizuje pre-retrieval, retrieval, post-retrieval respektivno.
- Modular RAG predstavlja glavnu inženjersku implementaciju RAG-a.
- Graph RAG koristi sposobnost grafičke pretrage, omogućava RAG-u da pojača multi-hop pretragu i obogati context.
- Agentic RAG koristi sposobnost Agent-a, omogućava RAG-u da ima inteligentno razmišljanje i analizu, značajno pojačava sposobnost pretrage.
2.1 Naive RAG
Naive RAG je najosnovnija implementacija RAG sistema, koristi jedinstvenu full-text pretragu ili vektorsku pretragu, iz kolekcije dokumenata pronalazi dokumente relevantne za query, direktno koristi retrieve dokumente za pojačanje LLM generisanja.
Naive RAG ima nekoliko ograničenja:
- Nedostatak semantičkog razumevanja: Full-text pretraga zavisi od poklapanja reči, ne može da uhvati semantičku vezu između query-ja i dokumenta; vektorska pretraga je ograničena indirektnim poklapanjem, semantičko razumevanje je takođe nedovoljno.
- Loši rezultati izlaza: Zbog nedostataka napredne pred-obrade i post-obrade query-ja i dokumenata, retrieve dokumenti lako sadrže previše ili premalo informacija, što dovodi do toga da konačno generisani odgovor bude previše opširan.
- Teško optimizovati efikasnost: Sistem previše zavisi od jedinstvene tehnologije pretrage, ne pojačava query i dokument, optimizacija je ograničena na tehnologiju pretrage.

2.2 Advanced RAG
Advanced RAG na osnovu Naive RAG-a, popunjava tri faze: pre-retrieval, retrieval, post-retrieval.
U fazi pre-retrieval, pojačava kvalitet dokumenata, npr. optimizuje strukturu poglavlja, pojačava naslove itd., filtrira niskokvalitetne informacije; optimizuje strukturu indeksa, optimizuje chunk size tako da context granula odgovara zahtevima scenarija primene; optimizuje informacije indeksa, vrši ekstrakciju i pojačavanje chunk-ova, kao embedding tekst; vrši rewriting korisničkog query-ja.
U fazi retrieval, koristi znanje iz domena za fine-tune embedding-a, ili koristi llm-based embedding model, generiše semantičke vektore tačnijeg razumevanja context-a.
U fazi post-retrieval, dodaje reranking da poboljša relevantnost retrieve dokumenata, dodaje context-compression da informacije pružene modelu budu više fokusirane.

2.3 Modular RAG
Modular RAG je trenutni glavni dizajn RAG sistema, razdvaja retrieval i generisanje na nezavisne ponovljive komponente, čime ostvaruje optimizaciju specifičnog domena i prilagođavanje zadataka. Modular RAG modularizuje sve vrste retrieval-a, skladištenja, rutiranja itd. koje RAG sistem koristi, i može prema specifičnom scenariju, vrštiti reorganizaciju ovih modula, npr. hibridna pretraga različitih metoda pretrage, radi postizanja boljih efekata.

2.4 Graph RAG
Graph RAG koristi grafičku strukturu da proširi tradicionalni RAG sistem, koristi relacije i hijerarhijsku strukturu grafova, pojačava multi-hop zaključivanje i bogatstvo context-a. Graph RAG može generirati bogatije i tačnije rezultate, posebno za zadatke koji zahtevaju razumevanje relacija.
Graph RAG ima sledeća ograničenja:
- Zavisnost od visokokvalitetnih grafičkih podataka: Visokokvalitetni grafički podaci su veoma kritični za Graph RAG, ako je ponekad teško procesirati visokokvalitetne grafičke podatke, posebno za nestrukturirani čist tekst ili podatke niskog kvaliteta označivanja.
- Kompleksnost primene: Za RAG sistem, istovremeno podržava hibridnu pretragu nestrukturiranih podataka i grafičkih podataka, povećava kompleksnost dizajna i implementacije sistema pretrage.

2.5 Agentic RAG
Različito od prethodnih statičkih RAG-ova, Agentic RAG koristi LLM-based agent koji može donositi dinamičke odluke i pozivati alate, radi rešavanja kompleksnijih, real-time i multi-domain upita.
Zahvaljujući sposobnosti pozivanja alata zasnovanoj na LLM-u, Agentic RAG može koristiti više i kompleksnije alate za pomoć pri retrieval-u, npr. pretraživači, kalkulatori i razni drugi alati dostupni putem API-ja. Pored toga Agentic RAG može dinamički donositi odluke prema stvarnom retrieval scenariju, npr. odlučuje da li vršiti retrieval, odlučuje koji alat koristiti za retrieval, ocenjuje retrieve context da odluči da li treba nastaviti retrieval itd.

03, Zaključak
| RAG | Karakteristike | Prednosti |
|---|---|---|
| Naive RAG | - Jedinstveni indeks, kao TF-IDF, BM25, vektorska pretraga | - Jednostavno, lako za implementirati - Smanjuje halucinacije modela |
| Advanced RAG | - Pojačavanje dokumenata - Optimizacija indeksa - query rewriting - reranking | - Tačniji retrieval - Pojačava relevantnost retrieval-a |
| Modular RAG | - Hibridna pretraga - Integracija alata, API-ja - Modularna, inženjerska implementacija | - Jača fleksibilnost - Prilagođenije raznovrsnijim scenarijima |
| Graph RAG | - Grafički indeks - multi-hop zaključivanje - Pojačavanje sadržaja context-a na osnovu grafičkih čvorova | - Sposobnost zaključivanja o relacijama - Pogodno za struktuirane podatke |
| Agentic RAG | - Koristi LLM-based agente - Dinamičko odlučivanje, retrieval - Automatska optimizacija procesa | - Viša tačnost retrieval-a - Pogodnije za kompleksnije, multi-domain zadatke |
Sa razvoja RAG-a u poslednjih godina, budući razvoj RAG-a ima nekoliko pravaca:
- Intelektualizacija: Sa razvojem LLM aplikacija, funkcije su sve kompleksnije, zahtevi za RAG će sve više rasti. Agentic RAG je početak ovog pravca, budući inteligentniji RAG će postati "dobar partner" LLM-a.
- Diverzifikacija podataka: Graph RAG daje RAG-u sposobnost grafičke pretrage, ali kako obični tekst, grafički podaci, i drugi tipovi podataka kao kod, slike itd. diverzifikovani podaci mogu biti kompatibilni u jedinstvenom RAG sistemu za indeksiranje, retrieval, rangiranje, buduće kompleksne LLM aplikacije će izazovati izazov za ovu sposobnost.
