Kas yra RAG (Retrieval-Augmented Generation)?
Retrieval-Augmented Generation (RAG) yra metodas, kuris sujungia didelių kalbų modelių (LLM) pranašumus su išoriniu duomenų gavimu, kad pagerintų generuojamų atsakymų kokybę ir tinkamumą.. Tradiciniai LLM naudoja savo iš anksto parengtas žinių bazes, o RAG vamzdynai vykdys išorinių duomenų bazių ar dokumentų užklausas ir nuskaitys atitinkamą informaciją, kurią naudos generuodami tikslesnius ir turtingesnius konteksto atsakymus. Tai ypač naudinga tais atvejais, kai klausimas yra sudėtingas, konkretus arba pagrįstas tam tikru laikotarpiu, atsižvelgiant į tai, kad modelio atsakymai yra informuoti ir praturtinti naujausia konkrečios srities informacija.
Dabartinis RAG peizažas
Dideli kalbų modeliai visiškai pakeitė tai, kaip pasiekiame ir apdorojame informaciją. Tačiau pasikliovimas vien vidinėmis iš anksto įvestomis žiniomis gali apriboti jų atsakymų lankstumą, ypač sudėtingų klausimų atveju. Retrieval-Augmented Generation išsprendžia šią problemą, leisdamas LLM gauti ir analizuoti duomenis iš kitų galimų išorinių šaltinių, kad gautų tikslesnius ir įžvalgesnius atsakymus.
Naujausi informacijos paieškos ir natūralios kalbos apdorojimo raida, ypač LLM ir RAG, atveria naujas efektyvumo ir sudėtingumo ribas. Šiuos pokyčius būtų galima vertinti pagal šiuos plačius kontūrus:
- Patobulintas informacijos paieška: informacijos gavimo RAG sistemose tobulinimas yra gana svarbus norint efektyviai dirbti. Naujausiuose darbuose buvo sukurti įvairūs vektoriai, perrikiavimo algoritmai, hibridiniai paieškos metodai tiksliajai paieškai tobulinti.
- Semantinė talpyklos kaupimas: tai yra vienas iš pagrindinių būdų, kaip sumažinti skaičiavimo sąnaudas, neatsisakant nuoseklių atsakymų. Tai reiškia, kad atsakymai į dabartines užklausas yra talpykloje kartu su pridedamu semantiniu ir pragmatiniu kontekstu, o tai vėl skatina greitesnį atsakymo laiką ir pateikia nuoseklią informaciją.
- Daugiarūšis integravimas: Be teksto pagrįstų LLM ir RAG sistemų, šis metodas taip pat apima vaizdinius ir kitus sistemos modalumus. Tai suteikia prieigą prie didesnės šaltinio medžiagos įvairovės ir atsakymų, kurie tampa vis sudėtingesni ir vis tikslesni.
Iššūkiai su tradicine RAG architektūra
Nors RAG tobulėja, kad atitiktų skirtingus poreikius. Priešais tradicinę RAG architektūrą vis dar yra iššūkių:
- Apibendrinimas: Gali būti sunku apibendrinti didžiulius dokumentus. Jei dokumentas yra ilgas, įprastoje RAG struktūroje gali būti nepastebėta svarbios informacijos, nes pateikiama tik viršutinė K dalis.
- Dokumentų palyginimas: Efektyvus dokumentų palyginimas vis dar yra iššūkis. Dėl RAG sistemos dažnai gaunamas neišsamus palyginimas, nes atsitiktine tvarka iš kiekvieno dokumento parenkamos K atsitiktinės dalys.
- Struktūrinių duomenų analizės: Sunku tvarkyti struktūrinių skaitmeninių duomenų užklausas, pvz., išsiaiškinti, kada darbuotojas išeis kitų atostogų, atsižvelgiant į tai, kur jis gyvena. Tikslus duomenų taškų gavimas ir analizė naudojant šiuos modelius nėra tikslūs.
- Kelių dalių užklausų tvarkymas: Atsakyti į klausimus iš kelių dalių vis dar ribojama. Pavyzdžiui, atrasti bendrus atostogų modelius visose didelės organizacijos srityse yra sudėtinga, kai apsiribojama K vienetais, o tai riboja išsamų tyrimą.
Pereikite prie agento RAG
Agentinis RAG naudoja išmaniuosius agentus, kad atsakytų į sudėtingus klausimus, kuriems reikia kruopštaus planavimo, kelių žingsnių samprotavimų ir išorinių įrankių integravimo. Šie agentai atlieka įgudusio tyrinėtojo pareigas, sumaniai naršydami po daugybę dokumentų, lygindami duomenis, apibendrindami išvadas ir pateikdami išsamius, tikslius atsakymus.
Agentų koncepcija įtraukta į klasikinę RAG sistemą, siekiant pagerinti sistemos funkcionalumą ir galimybes, todėl sukuriamas agentinis RAG. Šie agentai imasi papildomų pareigų ir samprotavimų, išskyrus pagrindinės informacijos gavimą ir kūrimą, taip pat įvairių RAG dujotiekio komponentų organizavimą ir valdymą.
Trys pagrindinės agentų strategijos
Maršrutizatoriai siunčia užklausas į atitinkamus modulius arba duomenų bazes, priklausomai nuo jų tipo. Maršrutizatoriai dinamiškai priima sprendimus naudodami didelių kalbų modelius, kuriems priklauso užklausos kontekstas, kad iškviestų pasirinktą variklį, kuriam jis turėtų būti siunčiamas, kad būtų padidintas jūsų dujotiekio tikslumas ir efektyvumas.
Užklausos transformacijos yra procesai, susiję su vartotojo užklausos perfrazavimu, kad ji geriausiai atitiktų reikiamą informaciją arba, atvirkščiai, geriausiai atitiktų tai, ką siūlo duomenų bazė. Tai gali būti vienas iš šių būdų: sudėtingų klausimų perfrazavimas, išplėtimas arba suskaidymas į paprastesnius, lengviau tvarkomus, antrinius klausimus.
Taip pat reikalingas antrinių klausimų užklausos variklis, kad būtų galima atsakyti į sudėtingą užklausą naudojant kelis duomenų šaltinius.
Pirma, sudėtingas klausimas išskaidomas į paprastesnius kiekvieno duomenų šaltinio klausimus. Tada surenkami visi tarpiniai atsakymai ir sintezuojamas galutinis rezultatas.
Agentiniai sluoksniai RAG vamzdynams
- Maršrutas: klausimas nukreipiamas į atitinkamą žiniomis pagrįstą apdorojimą, pagrįstą tinkamumu. Pavyzdys: kai vartotojas nori gauti rekomendacijų dėl tam tikrų kategorijų knygų, užklausa gali būti nukreipta į žinių bazę, kurioje yra žinių apie tas knygų kategorijas.
- Užklausų planavimas: Tai apima užklausos išskaidymą į antrines užklausas ir tada jų siuntimą į atitinkamus atskirus konvejerius. Agentas sukuria antrines užklausas visiems elementams, pvz., šiuo atveju metams, ir siunčia jas į atitinkamas žinių bazes.
- Įrankio naudojimas: Kalbos modelis kalba su API arba išoriniu įrankiu, žinodamas, ką tai reikš, kurioje platformoje turėtų vykti bendravimas ir kada tai būtų būtina. Pavyzdys: atsižvelgiant į vartotojo užklausą dėl tam tikros dienos orų prognozės, LLM susisiekia su orų API, identifikuoja vietą ir datą, tada analizuoja iš API gautą informaciją, kad pateiktų reikiamą informaciją.
- ReAct yra kartotinis mąstymo ir veikimo procesas, kartu su planavimu, priemonių naudojimu ir stebėjimu.
Pavyzdžiui, norėdama sudaryti visapusišką atostogų planą, sistema atsižvelgs į vartotojo poreikius ir iškvies informaciją apie maršrutą, lankytinas vietas, restoranus ir apgyvendinimą, skambindama API. Tada sistema patikrins rezultatų teisingumą ir tinkamumą ir parengs išsamų kelionės planą, atitinkantį naudotojo raginimą ir tvarkaraštį. - Dinaminės užklausos planavimas: Užuot atlikęs nuosekliai, agentas vienu metu vykdo daugybę veiksmų arba antrinių užklausų, o tada sujungia šiuos rezultatus.
Pavyzdžiui, jei norima palyginti dviejų įmonių finansinius rezultatus ir nustatyti tam tikros metrikos skirtumą, agentas, prieš apibendrindamas išvadas, lygiagrečiai apdoros abiejų įmonių duomenis; „LLMCompiler“ yra viena iš tokių sistemų, leidžiančių efektyviai organizuoti lygiagretų funkcijų iškvietimą.
Agentinis RAG ir LLMaIndex
LLMaIndex yra labai efektyvus RAG vamzdynų diegimas. Biblioteka tiesiog užpildo trūkstamą dalį integruodama struktūrinius organizacijos duomenis į generuojamus AI modelius, suteikdama patogumo duomenų apdorojimo ir gavimo įrankiams, taip pat sąsajas su įvairiais duomenų šaltiniais. Pagrindiniai LlamaIndex komponentai aprašyti toliau.
LlamaParse analizuoja dokumentus.
„Llama Cloud“ įmonėms skirta paslauga su RAG vamzdynais, įdiegtais naudojant mažiausiai rankų darbo.
Naudojant kelis LLM ir vektorinę saugyklą, LlamaIndex suteikia integruotą būdą kurti programas Python ir TypeScript naudojant RAG. Dėl jo savybių jis yra labai paklausus stuburas įmonių, norinčių panaudoti dirbtinį intelektą, kad galėtų priimti patobulintus duomenimis pagrįstus sprendimus.
Pagrindiniai Agent Rag diegimo su LLMaIndex komponentai
Pažvelkime į kai kuriuos agentinio RAG ingredientus ir kaip jie įgyvendinami „LlamaIndex“.
1. Įrankio naudojimas ir maršrutas
Maršruto parinkimo agentas pasirenka, kurį LLM arba įrankį geriausia naudoti tam tikram klausimui, atsižvelgdamas į raginimo tipą. Tai veda prie konteksto jautrių sprendimų, pvz., ar vartotojas nori apžvalgos ar išsamios santraukos. Tokių metodų pavyzdžiai yra Router Query Engine sistemoje LlamaIndex, kuris dinamiškai parenka įrankius, kurie maksimaliai padidintų atsakymus į užklausas.
2. Ilgalaikis konteksto išlaikymas
Nors svarbiausias atminties uždavinys yra išlaikyti kontekstą kelių sąveikų metu, priešingai, atmintimi aprūpinti agentai agentiniame RAG variante nuolat žino apie sąveikas, dėl kurių gaunami nuoseklūs ir kontekstu pakrauti atsakai.
„LlamaIndex“ taip pat turi pokalbių variklį, turintį atmintį kontekstiniams pokalbiams ir vienkartinėms užklausoms. Norint išvengti LLM konteksto lango perpildymo, tokia atmintis turi būti griežtai kontroliuojama ilgų diskusijų metu ir sumažinta iki apibendrintos formos.
3. Planavimo papildomų klausimų varikliai
Dažnai sudėtingą užklausą tenka suskaidyti į mažesnius, valdomus darbus. Papildomų klausimų užklausos variklis yra viena iš pagrindinių funkcijų, kurioms „LlamaIndex“ naudojamas kaip agentas, kai didelė užklausa suskaidoma į mažesnes, vykdoma nuosekliai, o tada sujungiama, kad susidarytų nuoseklus atsakymas. Agentų gebėjimas žingsnis po žingsnio ištirti kelis užklausos aspektus atspindi kelių žingsnių planavimo sampratą, palyginti su linijiniu planavimu.
4. Atspindėjimas ir klaidų taisymas
Atspindinčios medžiagos sukuria išvestį, bet tada patikrinkite išvesties kokybę, kad prireikus atliktumėte pataisymus. Šis įgūdis yra nepaprastai svarbus siekiant užtikrinti tikslumą ir tai, kas išeina, yra tai, ko norėjo asmuo. Dėl LlamaIndex save atspindinčios darbo eigos agentas peržiūrės savo veiklą bandydamas iš naujo arba koreguodamas veiklą, kuri neatitinka tam tikrų kokybės lygių. Tačiau kadangi Agentic RAG yra savaime koreguojasi, jis yra šiek tiek patikimas toms įmonės programoms, kuriose patikimumas yra esminis.
5. Sudėtingi agentiniai samprotavimai:
Medžiais pagrįstas tyrinėjimas taikomas, kai agentai turi ištirti daugybę galimų maršrutų, kad ką nors pasiektų. Priešingai nei nuoseklus sprendimų priėmimas, medžiu pagrįstas samprotavimas leidžia agentui vienu metu apsvarstyti daugybę strategijų ir pasirinkti perspektyviausią pagal vertinimo kriterijus, atnaujintus realiuoju laiku.
„FlameCloud“ ir „FlameParse“.
Turėdamas platų valdomų paslaugų asortimentą, skirtą įmonės lygio konteksto papildymui LLM ir RAG programose, „LlamaCloud“ yra didelis šuolis „LlamaIndex“ aplinkoje. Šis sprendimas leidžia dirbtinio intelekto inžinieriams sutelkti dėmesį į pagrindinės verslo logikos kūrimą, sumažinant sudėtingą duomenų keitimosi procesą.
Kitas galimas analizavimo variklis yra „LlamaParse“, kuris patogiai integruojamas su „LlamaIndex“ įvedimo ir gavimo vamzdynais. Tai yra vienas iš svarbiausių elementų, tvarkančių sudėtingus, pusiau struktūrinius dokumentus su įterptais objektais, tokiais kaip lentelės ir paveikslai. Kitas svarbus elementas yra valdoma gavimo ir gavimo API, kuri suteikia daugybę būdų, kaip lengvai įkelti, apdoroti ir saugoti duomenis iš daugybės šaltinių, tokių kaip „LlamaHub“ centrinė duomenų saugykla arba „LlamaParse“ išėjimai. Be to, ji palaiko įvairias duomenų saugojimo integracijas.
Išvada
Agentinis RAG reiškia informacijos apdorojimo pokytį, suteikiant daugiau žvalgybos patiems agentams. Daugeliu atvejų agentinis RAG gali būti derinamas su procesais arba skirtingomis API, kad būtų galima gauti tikslesnį ir patobulintą rezultatą. Pavyzdžiui, dokumento apibendrinimo atveju agentas RAG įvertintų vartotojo tikslą prieš sudarydamas santrauką arba lygindamas specifiką. Siūlydamas klientų aptarnavimą, agentas RAG gali tiksliai ir individualiai atsakyti į vis sudėtingesnius klientų užklausas, remdamasis ne tik jų mokymo modeliu, bet ir turima atmintimi bei išoriniais šaltiniais. „Agentic RAG“ pabrėžia perėjimą nuo generuojamųjų modelių prie labiau suderintų sistemų, kurios naudoja kitų tipų šaltinius, kad būtų pasiektas tvirtas ir tikslus rezultatas. Tačiau būdami kūrybingi ir protingi, šie modeliai ir Agenitc RAG siekia didesnio efektyvumo, nes į dujotiekius įtraukiama vis daugiau duomenų.