Inteligență artificială

O scufundare în adâncul Generării Augmentate cu Recuperare în LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Îți imaginezi că ești un analist și ai acces la un model de limbaj mare. Ești entuziasmat de perspectivele pe care le aduce în fluxul de lucru. Dar apoi, îl întrebi despre ultimele prețuri ale acțiunilor sau rata actuală a inflației, și te lovește cu:
“I’m sorry, but I cannot provide real-time or post-cutoff data. My last training data only goes up to ianuarie 2022.”
Modelele de limbaj mare, pentru toată puterea lor lingvistică, lipsesc de capacitatea de a înțelege “acum”. Și în lumea rapidă, “acum” este totul.

Cercetările au arătat că modelele de limbaj mare preantrenate (LLM) sunt, de asemenea, depozite de cunoștințe factuale.
Acestea au fost antrenate pe atât de multe date, încât au absorbit o mulțime de fapte și cifre. Atunci când sunt ajustate, pot obține rezultate remarcabile într-o varietate de sarcini de NLP.

Dar iată prinderea: capacitatea lor de a accesa și de a manipula această cunoaștere stocată nu este, uneori, perfectă. În special atunci când sarcina de la îndemână este intensivă în cunoaștere, aceste modele pot rămâne în urmă față de arhitecturi mai specializate. Este ca și cum ai avea o bibliotecă cu toate cărțile din lume, dar fără un catalog pentru a găsi ceea ce ai nevoie.

Actualizarea de navigare a ChatGPT de la OpenAI

Anunțul recent al OpenAI despre capacitatea de navigare a ChatGPT este un salt semnificativ în direcția Generării Augmentate cu Recuperare (RAG). Cu ChatGPT capabil acum să caute pe internet informații actuale și autorizate, reflectă abordarea RAG de a extrage dinamici date din surse externe pentru a oferi răspunsuri îmbunătățite.

https://twitter.com/OpenAI/status/1707077710047216095

În prezent, disponibil pentru utilizatorii Plus și Enterprise, OpenAI planifică să lanseze această funcție pentru toți utilizatorii în curând. Utilizatorii pot activa această funcție selectând “Browse with Bing” sub opțiunea GPT-4.

Chatgpt New Browsing Feature

Chatgpt New ‘Bing’ Browsing Feature

 Ingineria promptului este eficientă, dar insuficientă

Prompturile servesc ca poartă de intrare în cunoașterea LLM. Acestea îndrumă modelul, oferind o direcție pentru răspuns. Cu toate acestea, crearea unui prompt eficient nu este soluția completă pentru a obține ceea ce doriți de la un LLM. Încă, să trecem prin unele practici bune de a lua în considerare atunci când scrieți un prompt:

  1. Claritate: Un prompt bine definit elimină ambiguitatea. Ar trebui să fie direct, asigurându-se că modelul înțelege intenția utilizatorului. Această claritate se traduce adesea în răspunsuri mai coerente și mai relevante.
  2. Context: În special pentru intrări extinse, plasarea instrucțiunii poate influența ieșirea. De exemplu, mutarea instrucțiunii la sfârșitul unui prompt lung poate adesea produce rezultate mai bune.
  3. Precizie în instrucțiune: Forța întrebării, adesea transmisă prin cadru “cine, ce, unde, când, de ce, cum”, poate îndruma modelul către un răspuns mai focalizat. În plus, specificarea formatului de ieșire dorit sau a dimensiunii poate refina și mai mult ieșirea modelului.
  4. Manipularea incertitudinii: Este esențial să îndrumați modelul cum să răspundă atunci când este nesigur. De exemplu, instruirea modelului să răspundă cu “Nu știu” atunci când este nesigur poate preveni generarea de răspunsuri inexacte sau “halucinate”.
  5. Gândire pas cu pas: Pentru instrucțiuni complexe, îndrumarea modelului să gândească sistematic sau să descompună sarcina în sub-sarcini poate duce la ieșiri mai cuprinzătoare și mai precise.

În legătură cu importanța prompturilor în îndrumarea ChatGPT, un articol cuprinzător poate fi găsit într-un articol de pe Unite.ai.

Provocările în modelele de inteligență artificială generativă

Ingineria promptului implică ajustarea directivelor date modelului pentru a-și îmbunătăți performanța. Este o modalitate foarte eficientă din punct de vedere al costurilor pentru a îmbunătăți acuratețea aplicațiilor de inteligență artificială generativă, necesitând doar ajustări minore de cod. În timp ce ingineria promptului poate îmbunătăți semnificativ ieșirile, este crucial să înțelegem limitările inerente ale modelelor de limbaj mare (LLM). Două dintre provocările principale sunt “halucinațiile” și “întreruperile cunoașterii”.

  • Halucinații: Acest lucru se referă la situațiile în care modelul returnează cu încredere un răspuns incorect sau fabricat. Deși LLM avansate au mecanisme încorporate pentru a recunoaște și evita astfel de ieșiri.
Hallucinations in LLMs

Hallucinations in LLM

  • Întreruperi ale cunoașterii: Fiecare model LLM are o dată de sfârșit a antrenamentului, după care nu este conștient de evenimente sau dezvoltări. Această limitare înseamnă că cunoașterea modelului este înghețată la momentul datei de sfârșit a antrenamentului. De exemplu, un model antrenat până în 2022 nu ar cunoaște evenimentele din 2023.
Knowledge cut-off in LLMS

Knowledge cut-off in LLM

Generarea augmentată cu recuperare (RAG) oferă o soluție pentru aceste provocări. Permite modelelor să acceseze informații externe, mitigând problemele de halucinații prin furnizarea de acces la date proprietare sau specifice domeniului. Pentru întreruperile cunoașterii, RAG poate accesa informații actuale dincolo de data de sfârșit a antrenamentului modelului, asigurând că ieșirea este actualizată.

De asemenea, permite LLM să extragă date din diverse surse externe în timp real. Acest lucru poate fi baze de cunoaștere, baze de date sau chiar vastul internet.

Introducere în Generarea Augmentată cu Recuperare

Generarea augmentată cu recuperare (RAG) este un cadru, mai degrabă decât o tehnologie specifică, care permite modelelor de limbaj mare să acceseze date pe care nu le-au fost antrenate. Există multiple modalități de a implementa RAG, iar cea mai bună variantă depinde de sarcina specifică și de natura datelor.

Cadrul RAG funcționează într-o manieră structurată:

Intrarea promptului

Procesul începe cu intrarea utilizatorului sau promptul. Acesta poate fi o întrebare sau o afirmație care solicită informații specifice.

Recuperarea din surse externe

În loc de a genera direct un răspuns bazat pe antrenament, modelul, cu ajutorul unui component de recuperare, caută prin surse de date externe. Aceste surse pot varia de la baze de cunoaștere, baze de date și depozite de documente până la date accesibile prin internet.

Înțelegerea recuperării

La esență, recuperarea reflectă o operațiune de căutare. Este vorba despre extragerea informațiilor cele mai pertinente în răspuns la intrarea utilizatorului. Acest proces poate fi împărțit în două etape:

  1. Indexarea: Probabil, partea cea mai dificilă a întregului drum RAG este indexarea bazei de cunoaștere. Procesul de indexare poate fi împărțit în două faze: Încărcarea și Despărțirea. În instrumente precum LangChain, aceste procese sunt denumite “încărcătoare” și “despărțitoare”. Încărcătoarele preiau conținut de la diverse surse, fie că sunt pagini web sau fișiere PDF. Odată preluate, despărțitoarele segmentează acest conținut în bucăți mici, optimizându-le pentru încorporare și căutare.
  2. Interogarea: Acesta este actul de extragere a celor mai relevante fragmente de cunoaștere pe baza unui termen de căutare.

Deși există multe modalități de a aborda recuperarea, de la potrivirea simplă a textului până la utilizarea motoarelor de căutare precum Google, sistemele moderne de Generare Augmentată cu Recuperare (RAG) se bazează pe căutarea semantică. La baza căutării semantice se află conceptul de încorporări.

Încorporările sunt centrale pentru modul în care modelele de limbaj mare (LLM) înțeleg limbajul. Când oamenii încearcă să articuleze cum derivă sensul din cuvinte, explicația adesea se învârte înapoi la înțelegerea înrădăcinată. Adânc în structurile noastre cognitive, recunoaștem că “copil” și “puști” sunt sinonime, sau că “roșu” și “verde” denotă ambele culori.

Augmentarea promptului

Informațiile recuperate sunt apoi combinate cu promptul original, creând un prompt augmentat sau extins. Acest prompt augmentat oferă modelului context adițional, care este deosebit de valoros dacă datele sunt specifice domeniului sau nu fac parte din corpusul de antrenament original al modelului.

Generarea finalizării

Cu promptul augmentat în mână, modelul generează apoi o finalizare sau răspuns. Acest răspuns nu se bazează doar pe antrenamentul modelului, ci este și informat de datele în timp real extrase.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Arhitectura primului model LLM RAG

Articolul de cercetare publicat de Meta în 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” oferă o privire în profunzime asupra acestei tehnici. Modelul de Generare Augmentată cu Recuperare (RAG) completează procesul tradițional de generare cu un mecanism extern de recuperare sau căutare. Acest lucru permite modelului să extragă informații relevante din corpuri vaste de date, îmbunătățindu-și capacitatea de a genera răspunsuri contextual accurate.

Iată cum funcționează:

  1. Memorie parametrică: Acesta este modelul dvs. de limbaj tradițional, precum un model secvență-la-secvență. A fost antrenat pe cantități uriașe de date și știe multe.
  2. Memorie non-parametrică: Gândiți-vă la acesta ca la un motor de căutare. Este un index vectorial dens al, să zicem, Wikipedia, care poate fi accesat folosind un recuperator neural.

Când sunt combinate, acestea creează un model precis. Modelul RAG recuperează mai întâi informații relevante din memoria sa non-parametrică și apoi folosește cunoașterea parametrică pentru a oferi un răspuns coerent.

RAG ORIGNAL MODEL BY META

Original RAG Model By Meta

1. Proces în două etape:

Modelul RAG LLM funcționează într-un proces în două etape:

  • Recuperare: Modelul caută mai întâi documente sau pasaje relevante dintr-un set de date mare. Acest lucru se realizează folosind un mecanism de recuperare dens, care utilizează încorporări pentru a reprezenta atât interogarea, cât și documentele. Încorporările sunt apoi utilizate pentru a calcula scoruri de similaritate, iar documentele clasate pe primul loc sunt recuperate.
  • Generare: Cu documentele relevante de top în mână, acestea sunt apoi canalizate într-un generator secvență-la-secvență, alături de interogarea inițială. Acest generator construiește apoi ieșirea finală, atrăgând context din ambele interogarea și documentele extrase.

2. Recuperare densă:

Sistemele de recuperare tradiționale se bazează adesea pe reprezentări rare, precum TF-IDF. Cu toate acestea, modelul RAG LLM utilizează reprezentări dense, unde atât interogarea, cât și documentele sunt încorporate în spații vectoriale continue. Acest lucru permite comparații mai nuanțate de similaritate, capturând relații semantice dincolo de simpla potrivire a cuvintelor cheie.

3. Generare secvență-la-secvență:

Documentele recuperate acționează ca un context extins pentru modelul de generare. Acest model, adesea bazat pe arhitecturi precum Transformers, generează apoi ieșirea finală, asigurându-se că este coerentă și contextual relevantă.

Căutarea documentelor

Indexarea și recuperarea documentelor

Pentru a recupera eficient informații, în special din documente mari, datele sunt adesea stocate într-o bază de date vectorială. Fiecare piesă de date sau document este indexat pe baza unui vector de încorporare, care captează esența semantică a conținutului. Indexarea eficientă asigură o recuperare rapidă a informațiilor relevante pe baza promptului de intrare.

Baze de date vectoriale

Vector Database

Source: Redis

Bazele de date vectoriale, uneori denumite stocare vectorială, sunt baze de date specializate în stocarea și extragerea datelor vectoriale. În domeniul inteligenței artificiale și al științei calculatoarelor, vectorii sunt, în esență, liste de numere care reprezintă puncte într-un spațiu multidimensional. În contrast cu bazele de date tradiționale, care sunt mai potrivite pentru date tabulare, bazele de date vectoriale strălucesc în gestionarea datelor care se potrivesc natural într-un format vectorial, cum ar fi încorporările din modelele de inteligență artificială.

Printre bazele de date vectoriale notabile se numără Annoy, Faiss de la Meta, Milvus și Pinecone. Aceste baze de date sunt cruciale în aplicațiile de inteligență artificială, ajutând la sarcini care variază de la sisteme de recomandare la căutări de imagini. Platformele precum AWS oferă, de asemenea, servicii specializate pentru nevoile bazelor de date vectoriale, cum ar fi Amazon OpenSearch Service și Amazon RDS pentru PostgreSQL. Aceste servicii sunt optimizate pentru anumite cazuri de utilizare, asigurând indexare și interogare eficiente.

Fragmentarea pentru relevanță

Având în vedere că multe documente pot fi extinse, o tehnică cunoscută sub numele de “fragmentare” este adesea utilizată. Acest lucru implică divizarea documentelor mari în fragmente mai mici, semantic coerente. Aceste fragmente sunt apoi indexate și recuperate după cum este necesar, asigurând că porțiunile cele mai relevante ale unui document sunt utilizate pentru augmentarea promptului.

Considerații privind fereastra de context

Fiecare LLM funcționează într-o fereastră de context, care este, în esență, cantitatea maximă de informații pe care le poate lua în considerare odată. Dacă sursele de date externe oferă informații care depășesc această fereastră, acestea trebuie divizate în fragmente mai mici care se potrivesc în fereastra de context a modelului.

Beneficiile utilizării Generării Augmentate cu Recuperare

  1. Acuratețe îmbunătățită: Prin utilizarea surselor de date externe, modelul RAG LLM poate genera răspunsuri care nu sunt doar bazate pe datele de antrenament, ci și informate de informațiile cele mai relevante și actualizate disponibile în corpusul de recuperare.
  2. Depășirea lacunelor de cunoaștere: RAG abordează eficient limitările inerente de cunoaștere ale LLM, fie că este vorba de data de sfârșit a antrenamentului modelului sau de absența datelor specifice domeniului din corpusul de antrenament.
  3. Versatilitate: RAG poate fi integrat cu diverse surse de date externe, de la baze de date proprietare din cadrul unei organizații până la date accesibile public prin internet. Acest lucru îl face adaptabil pentru o gamă largă de aplicații și industrii.
  4. Reducerea halucinațiilor: Una dintre provocările LLM este potențialul de a genera “halucinații” sau informații factice incorecte. Prin furnizarea de context de date în timp real, RAG poate reduce semnificativ șansele unor astfel de ieșiri.
  5. Scalabilitate: Unul dintre beneficiile principale ale modelului RAG LLM este capacitatea sa de a scala. Prin separarea proceselor de recuperare și generare, modelul poate gestiona eficient seturi de date vaste, făcându-l potrivit pentru aplicații din lumea reală, unde datele sunt abundente.

Provocări și considerații

  • Supraîncărcare computațională: Procesul în două etape poate fi computațional intensiv, în special atunci când se lucrează cu seturi de date mari.
  • Dependență de date: Calitatea documentelor recuperate afectează direct calitatea generării. Prin urmare, este crucial să aveți un corpus de recuperare cuprinzător și bine întreținut.

Concluzie

Prin integrarea proceselor de recuperare și generare, Generarea Augmentată cu Recuperare oferă o soluție robustă pentru sarcinile intensive în cunoaștere, asigurând ieșiri atât informate, cât și contextual relevante.

Adevăratul potențial al RAG se află în aplicațiile sale din lumea reală. Pentru sectoare precum sănătatea, unde informațiile actuale și precise pot fi decisive, RAG oferă capacitatea de a extrage și genera insight-uri din literatura medicală vastă, fără efort. În finanțe, unde piețele evoluează pe minut, RAG poate oferi insight-uri bazate pe date în timp real, ajutând la luarea deciziilor informate. Mai mult, în mediul academic și de cercetare, cercetătorii pot utiliza RAG pentru a scana vasti depozite de informații, făcând revizuiri de literatură și analize de date mai eficiente.

Am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a Machine Learning și Deep Learning. Pasinea și expertiza mea m-au condus să contribui la peste 50 de proiecte diverse de inginerie software, cu un focus deosebit pe AI/ML. Curiozitatea mea în continuare m-a atras și spre Natural Language Processing, un domeniu pe care sunt dornic să îl explorez mai departe.