Generarea augmentată prin regăsire (în engleză, retrieval-augmented generation; RAG) este o tehnică ce permite modelelor lingvistice mari (LLM) să regăsească și să integreze informații noi din surse externe de date. În cazul RAG, modelele LLM consultă mai întâi un set specificat de documente, după care răspund la interogările utilizatorilor. Aceste documente completează informațiile provenite din datele preexistente de antrenare ale modelului LLM. Astfel, modelele LLM pot utiliza informații specifice unui anumit domeniu și/sau informații actualizate care nu sunt disponibile în datele lor de antrenare. De exemplu, această tehnică permite chatboturilor bazate pe modele LLM să acceseze datele interne ale unei companii sau să genereze răspunsuri fundamentate pe surse cu autoritate. Tehnica a fost propusă pentru prima dată în 2020 și a devenit ulterior o abordare utilizată pe scară largă în sistemele moderne de inteligență artificială.
RAG îmbunătățește modelele LLM prin integrarea unei etape de regăsire a informațiilor înaintea generării răspunsului. Spre deosebire de modelele LLM care se bazează exclusiv pe date de antrenare statice, sistemele RAG extrag texte relevante din baze de date, documente încărcate sau surse web. Potrivit publicației Ars Technica, „RAG este o modalitate de îmbunătățire a performanței modelelor LLM, în esență prin combinarea procesului specific unui LLM cu o căutare pe web sau cu un alt proces de consultare a documentelor, pentru a ajuta modelele LLM să respecte faptele”. Metoda contribuie la reducerea halucinațiilor IA, care au determinat chatboturile să descrie politici inexistente sau să le recomande avocaților spețe juridice inexistente atunci când aceștia căutau citări pentru a-și susține argumentele.
RAG reduce, de asemenea, necesitatea reantrenării modelelor LLM cu date noi, diminuând costurile de calcul și costurile financiare. Pe lângă creșterea eficienței, RAG permite modelelor LLM să includă surse în răspunsurile lor, astfel încât utilizatorii să poată verifica sursele citate. Acest lucru asigură o mai mare transparență, deoarece utilizatorii pot confrunta conținutul regăsit cu sursele originale pentru a-i verifica exactitatea și relevanța.
Termenul „retrieval-augmented generation” (RAG) a fost introdus într-o lucrare din 2020 care descria combinarea unui model lingvistic parametric cu o memorie externă neparametrică, accesată prin regăsirea informațiilor în etapa de inferență.
RAG și limitările modelelor LLM Modelele LLM pot furniza informații incorecte. De exemplu, atunci când Google a prezentat pentru prima dată instrumentul său bazat pe un model LLM, „Google Bard” — redenumit ulterior Gemini —, modelul a furnizat informații incorecte despre Telescopul spațial James Webb. Această eroare a contribuit la o scădere cu 100 de miliarde de dolari a valorii bursiere a companiei Google. RAG este utilizat pentru prevenirea unor astfel de erori, însă nu rezolvă toate problemele. De exemplu, modelele LLM pot genera informații false chiar și atunci când extrag date din surse corecte din punct de vedere factual, dacă interpretează greșit contextul. MIT Technology Review oferă exemplul unui răspuns generat de inteligența artificială care afirma: „Statele Unite au avut un președinte musulman, Barack Hussein Obama”. Modelul a extras această informație din titlul retoric al unui capitol, „Barack Hussein Obama: America's First Muslim President?”, din volumul Faith in the New Millennium: The Future of Religion and American Politics. Modelul LLM nu „cunoștea” și nu „înțelegea” contextul titlului și a generat astfel o afirmație falsă.
Modelele LLM care utilizează RAG sunt programate să acorde prioritate informațiilor noi. Această tehnică a fost denumită prompt stuffing, adică încărcarea promptului cu informații contextuale suplimentare. Fără această tehnică, datele de intrare ale modelului LLM sunt furnizate de utilizator; atunci când este utilizată, promptului i se adaugă un context relevant suplimentar, care orientează răspunsul modelului. Abordarea îi furnizează modelului LLM informații esențiale încă de la începutul promptului, încurajându-l să acorde prioritate datelor furnizate în raport cu cunoștințele preexistente dobândite prin antrenare.
Proces Generarea augmentată prin regăsire (RAG) îmbunătățește modelele lingvistice mari (LLM) prin integrarea unui mecanism de regăsire a informațiilor, care permite modelelor să acceseze și să utilizeze date suplimentare, dincolo de setul lor inițial de antrenare. Ars Technica observă că „atunci când devin disponibile informații noi, în loc să fie necesară reantrenarea modelului, este suficient ca baza externă de cunoștințe a modelului să fie completată cu informațiile actualizate” („augmentare”). IBM afirmă că „în etapa generativă, modelul LLM utilizează promptul augmentat și reprezentarea sa internă a datelor de antrenare pentru a sintetiza” un răspuns.
Etapele principale ale RAG
În mod obișnuit, datele care urmează să fie consultate sunt transformate în încorporări vectoriale (în engleză, embeddings), adică reprezentări numerice într-un spațiu vectorial de mari dimensiuni. RAG poate fi utilizat pentru date nestructurate — de regulă, texte —, semistructurate sau structurate, precum grafurile de cunoștințe. Încorporările sunt apoi stocate într-o bază de date vectorială, pentru a permite regăsirea documentelor.
Atunci când utilizatorul formulează o interogare, este apelat mai întâi un modul de regăsire a documentelor, care selectează documentele cele mai relevante ce vor fi utilizate pentru augmentarea interogării. Compararea poate fi realizată prin diverse metode, care depind, în parte, de tipul de indexare utilizat.
Modelul introduce informațiile relevante regăsite în modelul LLM prin intermediul ingineriei prompturilor, alături de interogarea inițială a utilizatorului. Implementările mai recente () pot include și module de augmentare specializate, cu funcționalități precum extinderea interogărilor către mai multe domenii și utilizarea memoriei și a mecanismelor de autoîmbunătățire pentru a învăța din regăsirile anterioare.
În final, modelul LLM poate genera un rezultat atât pe baza interogării, cât și a documentelor regăsite. Unele modele includ etape suplimentare pentru îmbunătățirea rezultatului, precum rerangarea informațiilor regăsite, selectarea contextului și ajustarea fină.
Aplicații Generarea augmentată prin regăsire este utilizată în aplicațiile în care răspunsurile generate trebuie fundamentate pe informații externe sau actualizate frecvent.
În domeniul sănătății, RAG a fost studiată ca modalitate de fundamentare a rezultatelor modelelor lingvistice mari pe surse externe de cunoștințe medicale, deși analizele de specialitate au evidențiat persistența unor dificultăți privind evaluarea, etica și fiabilitatea clinică.
Îmbunătățiri Procesul de bază descris mai sus poate fi îmbunătățit în diferite etape ale fluxului RAG.
Codificatorul Aceste metode se concentrează asupra codificării textului sub forma unor vectori denși sau rari. Vectorii rari, care codifică identitatea unui cuvânt, au de regulă o dimensiune egală cu cea a vocabularului și conțin în principal valori zero. Vectorii denși, care codifică sensul, sunt mai compacți și conțin mai puține valori zero. Diferite îmbunătățiri pot optimiza modul în care sunt calculate similitudinile în depozitele vectoriale sau în bazele de date vectoriale.
Performanța poate fi îmbunătățită prin optimizarea modului în care este calculată similitudinea dintre vectori. Produsele scalare îmbunătățesc evaluarea similitudinii, în timp ce căutările aproximative ale celor mai apropiați vecini (ANN) sporesc eficiența regăsirii în comparație cu căutările bazate pe algoritmul celor mai apropiați k vecini (KNN). Exactitatea poate fi îmbunătățită prin utilizarea interacțiunilor târzii, care permit sistemului să compare mai precis cuvintele după etapa de regăsire. Acest lucru contribuie la rafinarea clasamentului documentelor și la creșterea relevanței rezultatelor căutării. Pot fi utilizate abordări vectoriale hibride pentru combinarea reprezentărilor vectoriale dense cu vectori rari codificați one-hot, valorificând eficiența computațională a produselor scalare dintre vectori rari în raport cu operațiile asupra vectorilor denși. Alte tehnici de regăsire urmăresc creșterea exactității prin rafinarea modului de selectare a documentelor. Unele metode de regăsire combină reprezentări rare, precum SPLADE, cu strategii de extindere a interogărilor, pentru a îmbunătăți precizia și exhaustivitatea regăsirii.
Metode centrate pe modulul de regăsire Aceste metode urmăresc îmbunătățirea calității regăsirii documentelor din bazele de date vectoriale:
Preantrenarea modulului de regăsire prin utilizarea Inverse Cloze Task (ICT), o tehnică ce ajută modelul să învețe tipare de regăsire prin anticiparea textului mascat din documente. Optimizarea supervizată a modulului de regăsire aliniază probabilitățile de regăsire cu distribuția verosimilității modelului generator. Aceasta presupune regăsirea celor mai bine clasați k vectori pentru un anumit prompt, evaluarea perplexității răspunsului generat și minimizarea divergenței Kullback–Leibler dintre selecțiile modulului de regăsire și verosimilitățile modelului, pentru rafinarea procesului de regăsire. Tehnicile de rerangare pot îmbunătăți performanța modulului de regăsire prin prioritizarea celor mai relevante documente regăsite în timpul antrenării.
Modelul lingvistic
Prin reproiectarea modelului lingvistic ținând seama de modulul de regăsire, o rețea de 25 de ori mai mică poate obține o perplexitate comparabilă cu cea a unor modele mult mai mari. Deoarece este antrenată de la zero, această metodă — Retro — implică costurile ridicate ale proceselor de antrenare pe care schema RAG inițială urmărea să le evite. Ipoteza este că, prin furnizarea cunoștințelor de domeniu în timpul antrenării, Retro trebuie să aloce mai puțini parametri reprezentării domeniului și își poate utiliza capacitatea mai redusă în principal pentru semantica limbajului. Modelul lingvistic reproiectat este prezentat aici.
S-a raportat că Retro nu este reproductibil, astfel încât au fost efectuate modificări pentru a-i permite reproducerea. Versiunea mai reproductibilă se numește Retro++ și include RAG în context.
Segmentarea Segmentarea presupune utilizarea unor strategii diferite pentru împărțirea datelor în segmente reprezentate vectorial, astfel încât modulul de regăsire să poată identifica în acestea informațiile relevante.
Trei tipuri de strategii de segmentare sunt:
Segmente de lungime fixă, cu suprapunere. Această metodă este rapidă și ușor de implementat. Suprapunerea segmentelor consecutive contribuie la menținerea contextului semantic între segmente. Segmente bazate pe sintaxă, prin care documentul poate fi împărțit în propoziții. Pot fi utilizate și biblioteci precum spaCy sau Natural Language Toolkit (NLTK). Segmentarea bazată pe formatul fișierului. Anumite tipuri de fișiere conțin delimitări naturale, care ar trebui respectate. De exemplu, fișierele cu cod sursă ar trebui segmentate și vectorizate la nivelul funcțiilor sau claselor complete. În fișierele HTML, elementele <table> sau elementele <img> care conțin imagini codificate în Base64 ar trebui păstrate intacte. Considerații similare ar trebui aplicate fișierelor PDF. Biblioteci precum Unstructured sau LangChain pot facilita aplicarea acestei metode.
Căutarea hibridă