Retrieval-augmented generation (RAG) (RO)
Retrieval-Augmented Generation (RAG) (rom. Generare augmentată prin regăsire) — este o metodă din domeniul inteligenței artificiale prin care modelul de limbaj generativ (LLM) este dotat cu acces la surse externe de informații pentru a îmbunătăți acuratețea și veridicitatea răspunsurilor. Cu alte cuvinte, înainte de a genera un răspuns, modelul efectuează o căutare a datelor relevante (de exemplu, într-o bază de documente, pe un site web sau într-o bază de date) și utilizează informațiile găsite la formularea răspunsului[1][2]. Această abordare asigură „augmentarea" cu cunoștințe din surse actuale și ajută la depășirea limitărilor LLM-urilor legate de volumul redus al „memoriei" și de informațiile învechite[3]. Un sistem RAG poate face referire la documente specifice (de exemplu, sub formă de note de subsol) în răspunsul generat, ceea ce sporește transparența și permite utilizatorului să verifice faptele[1]. Ca rezultat, se reduce riscul apariției halucinațiilor — situații în care modelul furnizează cu încredere informații false[1][3]. RAG extinde baza de cunoștințe a LLM-ului la un volum practic nelimitat și permite modelelor să utilizeze cele mai recente date fără reantrenare[4].
Originile și dezvoltarea metodei
Ideea de a combina regăsirea informațiilor cu generarea automată a răspunsurilor a apărut cu mult înainte de apariția LLM-urilor moderne. Încă din anii 1970 au fost făcute încercări de a crea sisteme question-answering care căutau răspunsuri în baze de date textuale pe baza unei întrebări date[1]. În anii 1990 a apărut serviciul web Ask Jeeves, care a popularizat căutarea răspunsurilor în limbaj natural, iar în 2011 sistemul IBM Watson a demonstrat capacitățile IA, câștigând emisiunea televizată Jeopardy! în fața participanților umani[1].
Etapa modernă de dezvoltare este legată de introducerea modelelor de limbaj bazate pe rețele neuronale: Retrieval-Augmented Generation ca abordare distinctă a fost propusă în 2020 de un grup de cercetători din cadrul Facebook AI Research, University College London și altele, sub conducerea lui Patrick Lewis[1]. În lucrarea lor, acceptată la NeurIPS 2020, este descris modelul RAG — un model generativ seq2seq (de exemplu, BART) cu acces diferențiabil la un depozit extern „neparametric" de cunoștințe[5]. Autorii au folosit drept bază externă de cunoștințe întreaga Wikipedię în limba engleză, reprezentând-o ca un index vectorial (~21 de milioane de fragmente de text) în care căutarea se realizează cu ajutorul algoritmului neuronal Dense Passage Retrieval[5]. Pentru o interogare primită, modelul RAG extrage din index cele mai potrivite fragmente și le adaugă în contextul generării răspunsului. Acest mecanism a permis obținerea unor rezultate record (state-of-the-art) la sarcinile cu bază deschisă de cunoștințe, de exemplu în testele Natural Questions, WebQuestions și altele[2]. S-a remarcat că răspunsurile modelului RAG erau mai specifice și mai corecte din punct de vedere factologic decât cele ale abordărilor generative anterioare, datorită sintezei informațiilor din mai multe surse simultan[2]. Curând, Facebook a publicat în mod deschis codul sursă al RAG: modelul a fost integrat în biblioteca HuggingFace Transformers și în setul de date asociat, permițând dezvoltatorilor să aplice cu ușurință RAG în propriile proiecte[2]. Din 2020, metodologia RAG a câștigat rapid popularitate — după spusele autorului, în ciuda abrevierii neplăcute, abordarea s-a răspândit pe scară largă, generând sute de lucrări științifice și devenind baza multor servicii comerciale[1].
Principiul de funcționare al RAG
Schema principială a Retrieval-Augmented Generation: modulul de căutare (stânga) extrage documente relevante din baza de cunoștințe, după care modelul generativ (dreapta) formulează un răspuns pe baza interogării utilizatorului, ținând cont de informațiile găsite[6]. Această abordare permite LLM-ului să se bazeze pe date externe actuale la generarea răspunsului. Diagrama arată cum interogarea utilizatorului este transformată într-un vector și utilizată pentru a căuta fragmente de text similare; acestea sunt apoi conectate la contextul modelului, „extinzând" cunoștințele sale și sporind acuratețea răspunsului.
Un sistem RAG este format în mod obișnuit din două componente principale: modulul de căutare (retriever) și modulul de generare a răspunsului (generator)[6]. În etapa de pregătire se construiește un index vectorial al bazei de cunoștințe: toate documentele (textele) sunt împărțite în fragmente și transformate de modelul de embedding în vectori numerici, care sunt stocați într-o bază de date specializată pentru căutare ulterioară[6]. Când sosește o interogare a utilizatorului, același model de embedding codifică interogarea într-un vector; apoi se efectuează căutarea celor mai apropiați vecini în spațiul vectorial — sunt selectate top K fragmente cele mai similare din indexul de cunoștințe (de exemplu, K = 5)[6]. Aceste fragmente sunt considerate context extern, conținând fapte probabile legate de subiectul interogării.
În etapa următoare, contextul format este utilizat de modelul generativ. Întrebarea inițială împreună cu fragmentele de text găsite este furnizată ca intrare unui LLM (de exemplu, un transformer de tip seq2seq sau un model orientat pe instrucțiuni) pentru generarea răspunsului final[2]. Astfel, modelul de limbaj se bazează în mod condiționat nu doar pe cunoștințele sale asimilate (parametrice), ci și pe datele externe furnizate. În implementarea originală a RAG, rolul generatorului era îndeplinit de modelul pre-antrenat BART, iar „memoria" externă era reprezentată de colecția Wikipedia, indexată prin metoda DPR[5].
Fusion - Abordarea de tip fuziune a cunoștințelor
O caracteristică importantă a RAG este modul în care modelul combină informațiile din mai multe documente găsite. Spre deosebire de simpla concatenare a întregului text, RAG aplică o abordare cunoscută sub numele de late fusion («fuziune târzie a rezultatelor») — modelul generativ procesează în paralel fiecare dintre cele K fragmente obținute și formulează pentru fiecare un răspuns ipotetic cu un scor de încredere, după care agregează aceste variante într-un output final[2]. Această metodă permite RAG să sintetizeze un răspuns chiar și în cazurile în care nicio sursă individuală nu conține un răspuns direct și complet la întrebare. De exemplu, dacă informațiile necesare sunt distribuite în articole diferite, modelul este capabil să combine „indiciile" din mai multe documente într-un singur răspuns[2] (S-a remarcat că creșterea numărului de documente utilizate sporește de obicei completitudinea răspunsului cu prețul unei ușoare pierderi de coeziune a textului[7].)
Variante de implementare
În lucrarea originală din 2020 sunt propuse două modificări ale arhitecturii RAG[6]. În modul RAG-Sequence, modelul generativ primește un set fix de documente găsite și le utilizează pentru a genera întregul răspuns în ansamblu. În modul RAG-Token, dimpotrivă, este permisă actualizarea dinamică: la fiecare pas de generare a unui nou token, modelul poate efectua din nou o căutare și poate încărca un fragment de text suplimentar, dacă este necesar pentru rafinarea răspunsului. Ambele abordări demonstrează un nivel de calitate înalt și similar; RAG-Sequence este mai simplu și mai rapid, în timp ce RAG-Token permite teoretic luarea în considerare a mai multor informații diverse pentru răspunsuri lungi[6].
Avantajele RAG
- Actualitate și acuratețe factuală. Conectarea la date externe permite LLM-urilor să ofere răspunsuri mai precise și mai bine fundamentate, bazându-se pe informații reale și nu doar pe parametrii modelului. Aceasta reduce semnificativ riscul informațiilor învechite sau pur și simplu inventate în răspunsul modelului[3][1]. Spre deosebire de modelele cu un „instantaneu de cunoștințe" fix, RAG poate răspunde chiar și la întrebări despre evenimente sau fapte apărute după finalizarea antrenamentului modelului — datorită accesului la surse de date recente[4].
- Transparență și încrederea utilizatorilor. Sistemele RAG sunt capabile să furnizeze referințe la sursele de informații (de exemplu, articole, rapoarte sau baze de date) care au stat la baza răspunsului[1]. În esență, modelul își structurează răspunsurile asemănător unei lucrări științifice cu note de subsol, ceea ce permite verificarea veridicității fiecărui fapt. Prezența surselor primare citate sporește încrederea utilizatorilor și facilitează verificarea informațiilor obținute.
- Specializare pe domeniu tematic. Retrieval-augmentation oferă posibilitatea de a adapta relativ ușor funcționarea modelului la un domeniu îngust de cunoștințe, fără a modifica modelul de limbaj în sine. Pentru aceasta este suficient să se furnizeze LLM-ului o bază de cunoștințe specializată pe tematica dorită — fie că sunt articole medicale, documente juridice sau manuale tehnice ale companiei. Modelul, rămânând general prin parametrii săi, începe să acționeze ca un expert în acel domeniu, deoarece extrage faptele din dataset-ul selectat[4][8]. De exemplu, un asistent juridic bazat pe RAG poate limita aria de căutare la un singur corpus jurisdicțional (legile unei anumite țări), garantând că răspunsurile vor fi conforme cu acea legislație[8].
- Flexibilitate și actualizabilitatea cunoștințelor. În modelele clasice, pentru a adăuga noi cunoștințe sau a corecta fapte eronate era necesar să se efectueze reantrenarea (fine-tuning) pe un dataset extins, ceea ce este costisitor din punct de vedere al timpului și resurselor. RAG rezolvă această problemă: pentru a actualiza cunoștințele modelului este suficient să se actualizeze baza de date externă sau să se conecteze surse suplimentare, iar modelul va începe imediat să utilizeze noile informații[2]. Aceasta permite menținerea cu ușurință a actualității sistemului — practic, datele pot fi înlocuite „la cald" chiar în timp real fără întreruperea activității modelului[1].
- Eficiență și economie de resurse. Abordarea RAG se dovedește adesea mai practică decât antrenarea unor modele extrem de mari care urmăresc să cuprindă toate informațiile în parametrii lor. Prin integrarea căutării, se pot obține rezultate comparabile cu un model de dimensiuni moderate, fără a încerca să se memoreze absolut toate faptele în interiorul rețelei neuronale[6]. În plus, implementarea unui pipeline RAG este relativ simplă: există instrumente gata disponibile (frameworks, biblioteci), iar dezvoltatorii demonstrează că un prototip de bază RAG poate fi asamblat literalmente în câteva rânduri de cod[1]. Astfel, RAG reduce costurile totale de implementare a IA: în loc să se antreneze un model nou pentru fiecare sarcină, este suficient să se configureze mecanismul de căutare și să se furnizeze datele potrivite.
Probleme și limitări ale RAG
În ciuda avantajelor evidente, Retrieval-Augmented Generation moștenește limitări atât de la componentele de căutare, cât și de la modelele de limbaj în sine[9]. Mai jos sunt enumerate problemele cheie inerente sistemelor RAG:
- Dependența de calitatea căutării. Răspunsul obținut va fi corect exact în măsura în care datele extrase sunt relevante și fiabile. Dacă modulul de căutare returnează documente nerelevante pentru întrebare sau care conțin erori, modelul generativ nu va putea „corecta" acele fapte — va genera un răspuns pe baza lor[8]. Astfel, calitatea și actualitatea bazei externe de cunoștințe determină direct acuratețea RAG. Este necesară actualizarea periodică a indexului și configurarea algoritmilor de clasificare pentru ca livrarea documentelor să rămână relevantă.
- Complexitate ridicată și consum intensiv de resurse. Pentru funcționare, un sistem RAG necesită nu doar LLM-ul în sine, ci și infrastructura pentru căutare: stocarea și actualizarea unei baze de date mari, indexarea, timpul de execuție a interogărilor. Toate acestea cresc costurile computaționale și pot reduce viteza de răspuns față de un model de limbaj utilizat singur[8]. În cel mai rău caz, întârzierile în etapa de căutare sau procesarea unui volum foarte mare de date vor încetini sistemul. În practică, trebuie să se echilibreze calitatea răspunsului și performanța, optimizând pipeline-ul (de exemplu, limitând dimensiunea bazei de cunoștințe sau profunzimea căutării pentru a menține timpul de răspuns în limite normale).
- Cerințe față de date și mentenanță. Pentru funcționarea eficientă a RAG sunt necesare date externe de calitate, structurate și accesibile. Modelul de căutare poate întâmpina dificultăți în a găsi informații utile dacă baza externă de cunoștințe este slab organizată sau conține zgomot[8]. În plus, datele necesare nu sunt întotdeauna deschise sau ieftine: companiile trebuie să creeze și să mențină propriile knowledge bases. Aceasta generează cheltuieli suplimentare și necesită eforturi de actualizare a datelor (de exemplu, adăugarea de noi documente, curățarea informațiilor învechite). Punctul slab al RAG este dependența de menținerea bazei de cunoștințe într-o stare actualizată.
- Imposibilitatea eliminării unor erori ale LLM. Deși RAG reduce semnificativ numărul confabulațiilor, excluderea completă a răspunsurilor incorecte nu este întotdeauna posibilă[9]. Modelul generativ poate comite în continuare o eroare logică sau poate generaliza incorect informațiile, mai ales dacă contextul furnizat este insuficient de complet sau contradictoriu[9]. Practic, RAG schimbă accentul erorilor: în loc de fapte evident inventate («halucinații») apar mai frecvent erori de integrare a cunoștințelor — de exemplu, modelul poate omite un fragment important sau poate asocia incorect diferite surse între ele. De aceea, în aplicațiile cu responsabilitate ridicată (medicină, drept) este în continuare necesară participarea umană pentru verificarea și corectarea răspunsurilor sistemului.
Aplicații ale RAG
Metoda Retrieval-Augmented Generation și-a găsit aplicabilitatea în numeroase scenarii legate de extragerea și utilizarea cunoștințelor. Mai jos sunt enumerate principalele domenii în care RAG demonstrează cel mai mare beneficiu:
- Sisteme de întrebări și răspunsuri și chat-boți. RAG permite crearea de asistenți virtuali și chat-boți care răspund la întrebările utilizatorilor cu mare acuratețe și pot furniza referințe la surse. În domeniul suportului pentru clienți, astfel de boți accesează baza internă de cunoștințe a companiei (FAQ, articole de asistență) și oferă răspunsuri imediate la solicitările clienților, reducând încărcarea angajaților[8]. Spre deosebire de sistemele clasice FAQ, boții RAG formulează răspunsul într-un limbaj natural, dar îl „susțin" cu date actuale, specifice problemei utilizatorului.
- Medicină și sănătate. Un model generativ augmentat cu o bază de date medicală specializată (articole științifice, protocoale clinice, ghiduri de referință) poate funcționa ca asistent inteligent pentru medici sau pacienți. De exemplu, sistemul va putea răspunde la o întrebare despre un diagnostic rar, găsind în literatura medicală cercetări recente pe această temă[8]. Un avantaj important al RAG în medicină este posibilitatea de a face referire la sursele primare (de exemplu, la rezultatele studiilor clinice), ceea ce este necesar pentru a câștiga încrederea medicilor. Astfel de sisteme sunt utilizate pentru suportul decizional, verificarea simptomelor, formarea studenților la medicină etc., asigurând accesul la cele mai recente cunoștințe medicale.
- Drept și finanțe. În practica juridică și analiza financiară, acuratețea și verificabilitatea informațiilor sunt deosebit de critice. Sistemele RAG pot ajuta profesioniștii să găsească rapid datele necesare: de exemplu, un jurist poate cu ajutorul modelului să găsească și să citeze o hotărâre judecătorească precedentă sau un articol de lege relevant pentru cazul curent, iar un analist financiar — să obțină rapid extrase din rapoarte economice recente sau știri de piață[8]. Totodată, fiecare răspuns al modelului poate conține referințe la documente specifice (acte normative, rapoarte, articole), ceea ce corespunde standardelor industriei și ușurează munca manuală ulterioară a specialistului.
- Cercetare științifică și crearea de conținut. Jurnaliștii, cercetătorii și scriitorii pot utiliza RAG pentru a accelera căutarea faptelor și surselor în pregătirea materialelor. De exemplu, modelul este capabil la cerere să „adune" informații din mai multe publicații de încredere și să reducă astfel semnificativ timpul dedicat verificării faptelor și selectării citatelor[8]. Asistenții de cercetare bazați pe RAG extrag automat referințe la lucrări relevante, date din baze deschise (de exemplu, statistici din rapoarte internaționale) și chiar traduceri preliminare, permițând autorilor să se concentreze pe partea analitică a muncii. Astfel de instrumente sunt folosite în mass-media, mediul academic, la pregătirea recenziilor de literatură etc.
- Cunoștințe corporative și căutare în documente. În multe organizații, un volum semnificativ de informații valoroase este stocat sub formă de documente text: regulamente, manuale, rapoarte, corespondență, fișiere log. RAG oferă o modalitate de căutare interactivă în astfel de date nestructurate prin intermediul limbajului natural. Un angajat poate pune o întrebare («Ce se spune despre politica de concediu pentru angajații la distanță?») — iar modelul va găsi secțiunea relevantă din documentul intern, o va cita și va formula un răspuns rezumat[1]. Aceasta sporește eficiența muncii: noii angajați găsesc mai rapid răspunsuri la întrebări, departamentele de suport obțin un instrument de căutare operativă în baza de incidente, iar conducerea — o modalitate de a analiza datele text acumulate. Marile companii IT implementează deja abordarea RAG în soluții corporative: tehnologiile de la Microsoft, Google, IBM, AWS și altele integrează LLM-uri cu căutarea în datele organizației[1].
Perspective și cercetări viitoare
Metoda Retrieval-Augmented Generation se dezvoltă activ, iar în următorii ani se anticipează o extindere ulterioară a capacităților sale. Una dintre direcții este RAG multimodal, unde ca informație externă pot fi utilizate nu doar texte, ci și imagini, audio/video sau chiar date de la senzori. Experimentele arată perspectivele combinării modelelor de limbaj cu căutarea în baze de date vizuale, ceea ce va permite, de exemplu, răspunsul la întrebări despre conținutul imaginilor sau al videoclipurilor, bazându-se pe descrieri și texte asociate[2]. O altă direcție importantă este utilizarea simultană a mai multor surse de cunoștințe: viitoarele sisteme RAG vor putea combina date din baze diferite (de exemplu, Wikipedia, enciclopedii specializate, notițe personale ale utilizatorului) și vor sintetiza răspunsuri ținând cont de toate aceste informații eterogene[2].
Cercetătorii au în față și sarcina de a spori fiabilitatea și siguranța RAG. Este necesară minimizarea riscului de răspândire a prejudecăților și erorilor care pot fi conținute în datele externe, precum și garantarea consistenței răspunsurilor. Echipa de dezvoltatori ai RAG original a întreprins deja pași în această direcție — de exemplu, limitând inițial baza de cunoștințe exclusiv la articolele Wikipedia ca sursă relativ verificată și neutră[2]. În viitor se plănuiește crearea de filtre speciale și metode de selectare a documentelor, astfel încât modelul să primească un context de calitate garantată. În plus, cercetările se concentrează pe îmbunătățirea mecanismului de căutare în sine: sunt dezvoltați noi algoritmi de clasificare și indexare semantică, capabili să înțeleagă mai precis interogările și să găsească informații relevante chiar și pentru formulări complexe sau ambigue.
În cele din urmă, prezintă interes o integrare mai profundă a RAG cu procesul de antrenament al modelelor de limbaj. Apar deja abordări în care mecanismele de retrieval sunt utilizate nu doar în etapa de inferență, ci și la pre-antrenament sau fine-tuning-ul LLM-urilor[10]. Aceasta poate spori și mai mult acuratețea factuală a modelelor și poate reduce dependența lor de cunoștințele înregistrate static în ponderi. Conform recenziilor publicate în 2024, comunitatea vede perspective mari în dezvoltarea ecosistemului RAG: de la optimizarea infrastructurii (accelerarea căutării, reducerea consumului de memorie) până la crearea de benchmark-uri standard pentru evaluarea calității sistemelor RAG[3]. Toate acestea sunt menite să facă modelele generative mai precise, mai versatile și mai sigure în lucrul cu cunoștințe externe în permanentă actualizare, ceea ce reprezintă un pas cheie pe calea spre o inteligență artificială fiabilă de nouă generație.
Referințe
- Ce este Retrieval-Augmented Generation (RAG) — blogul NVIDIA
- Retrieval-Augmented Generation for Large Language Models: A Survey — recenzie științifică pe arXiv
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — articolul original despre RAG
- Ce este RAG? Aplicații, limitări și provocări — blogul Bright Data
Bibliografie
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2004.04906.
- Guu, K. et al. (2020). REALM: Retrieval-Augmented Language Model Pre-Training. arXiv:2002.08909.
- Qu, Y. et al. (2020). RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2010.08191.
- Izacard, G.; Grave, E. (2021). Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering. arXiv:2007.01282.
- Borgeaud, S. et al. (2022). Improving Language Models by Retrieving from Trillions of Tokens. arXiv:2112.04426.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Mialon, G. et al. (2023). Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Yang, Z. et al. (2023). Re-ViLM: Retrieval-Augmented Visual Language Model for Zero and Few-Shot Image Captioning. arXiv:2302.04858.
- Barnett, S. et al. (2024). Seven Failure Points When Engineering a Retrieval Augmented Generation System. arXiv:2401.05856.
- Wang, Y. et al. (2024). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
Note
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 «What Is Retrieval-Augmented Generation aka RAG». NVIDIA Blogs. [1]
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 «Facebook open-sources RAG, an AI model that retrieves documents to answer questions». VentureBeat. [2]
- ↑ 3.0 3.1 3.2 3.3 Mialon, Grégoire et al. «Retrieval-Augmented Generation for Large Language Models: A Survey». arXiv. [3]
- ↑ 4.0 4.1 4.2 «Applied AI Software Engineering: RAG». Pragmatic Engineer. [4]
- ↑ 5.0 5.1 5.2 Lewis, Patrick et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv. [5]
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 «How RAG Makes LLMs Smarter». Exxact Blog. [6]
- ↑ «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv. [7]
- ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 «What Is RAG? Use Cases, Limitations, and Challenges». Bright Data Blog. [8]
- ↑ 9.0 9.1 9.2 Lewis, Patrick et al. «Seven Failure Points When Engineering a Retrieval Augmented Generation System». arXiv. [9]
- ↑ «Генерация, дополненная поиском». Википедия. [10]