Modele și platforme AI

Îmbunătățirea Modelelor de Limbaj Îmbunătățite cu Recuperare: Auto-Raționament și Augmentare Adaptivă pentru Sisteme Conversaționale

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Modelele de limbaj de mare capacitate au adesea dificultăți în a furniza informații precise și actuale, în special în sarcinile complexe bazate pe cunoașterea. Pentru a depăși aceste obstacole, cercetătorii examinează metode pentru a îmbunătăți aceste modele prin integrarea lor cu surse de date externe.

Două abordări noi care au apărut în acest domeniu sunt cadrele de auto-raționament și generarea augmentată cu recuperare adaptivă pentru sisteme conversaționale. În acest articol, vom explora în profunzime aceste tehnici inovatoare și vom analiza modul în care ele împing limitele a ceea ce este posibil cu modelele de limbaj.

Promisiunea și Capcanele Modelelor de Limbaj Îmbunătățite cu Recuperare

Să înțelegem conceptul de Modele de Limbaj Îmbunătățite cu Recuperare (RALM). Ideea de bază din spatele RALM-urilor este de a combina cunoașterea vastă și capacitatea de înțelegere a limbajului a modelelor de limbaj pre-antrenate cu capacitatea de a accesa și de a incorpora informații externe actualizate în timpul inferenței.

Iată o ilustrare simplă a modului în care un RALM de bază ar putea funcționa:

  1. Un utilizator pune o întrebare: “Care a fost rezultatul Jocurilor Olimpice din 2024?”
  2. Sistemul recuperează documente relevante dintr-o bază de cunoaștere externă.
  3. Modelul de limbaj prelucrează întrebarea împreună cu informațiile recuperate.
  4. Modelul generează un răspuns bazat atât pe cunoașterea sa internă, cât și pe datele externe.

Acestă abordare a arătat un mare potențial în îmbunătățirea acurateței și relevanței ieșirilor modelelor de limbaj, în special pentru sarcinile care necesită acces la informații curente sau cunoaștere specifică a domeniului. Cu toate acestea, RALM-urile nu sunt lipsite de provocări. Două dintre principalele probleme cu care se confruntă cercetătorii sunt:

  1. Fiabilitatea: Cum putem asigura că informațiile recuperate sunt relevante și utile?
  2. Urmărirea: Cum putem face procesul de raționament al modelului mai transparent și verificabil?

Cercetările recente au propus soluții inovatoare pentru aceste provocări, pe care le vom explora în detaliu.

Auto-Raționament: Îmbunătățirea RALM-urilor cu Traiectorii de Raționament Explicit

Acesta este arhitectura și procesul din spatele modelelor de limbaj îmbunătățite cu recuperare, concentrându-se pe un cadru numit Auto-Raționament. Această abordare utilizează traiectorii pentru a îmbunătăți capacitatea modelului de a raționa asupra documentelor recuperate.

Când se pune o întrebare, se recuperează documente relevante și se procesează printr-o serie de pași de raționament. Mecanismul de Auto-Raționament aplică procese de analiză a traiectoriilor și de sinteză a informațiilor pentru a filtra și a genera un răspuns final. Această metodă nu numai că îmbunătățește acuratețea ieșirilor, dar asigură și că raționamentul din spatele răspunsurilor este transparent și verificabil.

În exemplele prezentate, cum ar fi determinarea datei de lansare a filmului “Prinde-mă dacă poți” sau identificarea artiștilor care au pictat tavanul Catedralei din Florența, modelul filtrează eficient prin documentele recuperate pentru a produce răspunsuri precise și susținute de context.

Această imagine prezintă o analiză comparativă a diferitelor variante de modele de limbaj, incluzând modele LLaMA2 și alte modele îmbunătățite cu recuperare, pe sarcini precum NaturalQuestions, PopQA, FEVER și ASQA. Rezultatele sunt împărțite între modele de bază fără recuperare și cele îmbunătățite cu capacități de recuperare.

Această imagine prezintă un scenariu în care un model de limbaj este solicitat să furnizeze sugestii bazate pe interogări ale utilizatorului, demonstrând cum utilizarea cunoașterii externe poate influența calitatea și relevanța răspunsurilor. Diagrama subliniază două abordări: una în care modelul utilizează un fragment de cunoaștere și una în care nu o face. Compararea evidențiază cum incorporarea informațiilor specifice poate personaliza răspunsurile pentru a fi mai aliniate cu nevoile utilizatorului, oferind profunzime și acuratețe care ar putea lipsi într-un model pur generativ.

O abordare revoluționară pentru îmbunătățirea RALM-urilor este introducerea cadrului de auto-raționament. Ideea de bază a acestei metode constă în a utiliza capacitățile modelului de limbaj pentru a genera traiectorii de raționament explicit, care pot fi ulterior folosiți pentru a îmbunătăți calitatea și fiabilitatea ieșirilor sale.

Să descompunem componentele cheie ale unui cadru de auto-raționament:

  1. Procesul Conștient de Relevanță (RAP)
  2. Procesul Selectiv Conștient de Dovezi (EAP)
  3. Procesul de Analiză a Traiectoriilor (TAP)

Procesul Conștient de Relevanță (RAP)

RAP este proiectat pentru a aborda una dintre provocările fundamentale ale RALM-urilor: determinarea relevanței documentelor recuperate pentru o întrebare dată. Iată cum funcționează:

  1. Sistemul recuperează un set de documente potențial relevante utilizând un model de recuperare (de exemplu, DPR sau Contriever).
  2. Modelul de limbaj este apoi instruit să judece relevanța acestor documente pentru întrebare.
  3. Modelul generează în mod explicit motive care explică de ce documentele sunt considerate relevante sau irelevante.

De exemplu, dată întrebarea “Când a fost construit Turnul Eiffel?”, RAP ar putea produce un output similar cu:

Relevant: Adevărat
Motiv de Relevanță: Documentele recuperate conțin informații specifice despre datele de construcție a Turnului Eiffel, incluzând începerea în 1887 și finalizarea în 1889.

Acest proces ajută la filtrarea informațiilor irelevante devreme în fluxul de lucru, îmbunătățind calitatea generală a răspunsurilor modelului.

Procesul Selectiv Conștient de Dovezi (EAP)

EAP duce evaluarea relevanței un pas mai departe, instruind modelul să identifice și să citeze fragmente specifice de dovezi din documentele relevante. Acest proces imită modul în care oamenii abordează o sarcină de cercetare, selectând propoziții cheie și explicând relevanța lor. Iată cum ar putea arăta output-ul EAP:

Conținut citat: "Construcția Turnului Eiffel a început pe 28 ianuarie 1887 și a fost finalizată pe 31 martie 1889."
Motiv de citare: Această propoziție oferă datele exacte de început și de finalizare a construcției Turnului Eiffel, răspunzând direct la întrebarea despre data construirii.

Prin citarea explicită a surselor și explicarea relevanței fiecărui fragment de dovadă, EAP îmbunătățește urmărirea și interpretarea ieșirilor modelului.

Procesul de Analiză a Traiectoriilor (TAP)

TAP este etapa finală a cadrului de auto-raționament, în care modelul consolidează toate traiectoriile de raționament generate în pașii precedenți. Analizează aceste traiectorii și produce o sinteză concisă împreună cu un răspuns final. Output-ul TAP ar putea arăta astfel:

Analiză: Turnul Eiffel a fost construit între 1887 și 1889. Construcția a început pe 28 ianuarie 1887 și a fost finalizată pe 31 martie 1889. Această informație este susținută de surse multiple fiabile care oferă date consistente pentru perioada de construcție a turnului.

Răspuns: Turnul Eiffel a fost construit din 1887 până în 1889.

Acest proces permite modelului să ofere atât o explicație detaliată a raționamentului său, cât și un răspuns concis, satisfăcând nevoi diferite ale utilizatorilor.

Implementarea Auto-Raționamentului în Practică

Pentru a implementa acest cadru de auto-raționament, cercetătorii au explorat diverse abordări, incluzând:

  1. Promptarea modelelor de limbaj pre-antrenate
  2. Fine-tuning-ul modelelor de limbaj cu tehnici eficiente din punct de vedere al parametrilor, cum ar fi QLoRA
  3. Dezvoltarea de arhitecturi neurale specializate, cum ar fi modelele cu atenție multi-cap

Fiecare dintre aceste abordări are propriile sale compromisuri în ceea ce privește performanța, eficiența și ușurința implementării. De exemplu, abordarea prin promptare este cea mai simplă de implementat, dar nu întotdeauna produce rezultate consistente. Fine-tuning-ul oferă un echilibru bun între performanță și eficiență, în timp ce arhitecturile specializate pot oferi cea mai bună performanță, dar necesită mai multe resurse computaționale pentru antrenare.

Iată un exemplu simplificat de implementare a RAP folosind o abordare prin promptare cu un model de limbaj precum GPT-3:

import openai

<p>def proces_conștient_de_relevanță(întrebare, documente):
prompt = f"""
Întrebare: {întrebare}

Documente recuperate:
{documente}

Sarcină: Determinați dacă documentele recuperate sunt relevante pentru a răspunde la întrebare.
Format de ieșire:
Relevant: [Adevărat/Fals]
Motiv de relevanță: [Explicație]

Analiza dvs.:
"""

răspuns = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=150
)

return răspuns.choices[0].text.strip()

<p># Exemplu de utilizare
întrebare = "Când a fost construit Turnul Eiffel?"
documente = "Turnul Eiffel este o turn de fier forjat situat pe Champ de Mars în Paris, Franța. A fost numit după inginerul Gustave Eiffel, a cărui companie a proiectat și a construit turnul. Construit între 1887 și 1889 ca arc de intrare pentru Expoziția Mondială din 1889, a fost inițial criticat de unii dintre cei mai importanți artiști și intelectuali ai Franței pentru designul său, dar a devenit un simbol cultural global al Franței."

rezultat = proces_conștient_de_relevanță(întrebare, documente)
print(rezultat)

Generarea Augmentată cu Recuperare Adaptivă pentru Sisteme Conversaționale

În timp ce cadrul de auto-raționament se concentrează pe îmbunătățirea calității și interpretării răspunsurilor individuale, o altă direcție de cercetare a explorat modul în care generarea augmentată cu recuperare poate fi făcută mai adaptivă în contextul sistemelor conversaționale. Această abordare, cunoscută sub numele de generare augmentată cu recuperare adaptivă, are ca scop determinarea momentului în care cunoașterea externă ar trebui să fie utilizată într-o conversație și cum să o incorporeze eficient.

Ideea cheie din spatele acestei abordări este că nu fiecare tur de conversație necesită augmentarea cu cunoaștere externă. În unele cazuri, să te bazezi prea mult pe informații recuperate poate duce la răspunsuri ne naturale sau prea verbose. Provocarea, atunci, este de a dezvolta un sistem care să poată decide dinamic când să utilizeze cunoașterea externă și cum să o incorporeze.

Componentele Generării Augmentate cu Recuperare Adaptivă

Pentru a aborda această provocare, cercetătorii au propus un cadru numit RAGate, care constă din mai multe componente cheie:

  1. Un mecanism de poartă de cunoaștere binar
  2. Un proces conștient de relevanță
  3. Un proces selectiv conștient de dovezi
  4. Un proces de analiză a traiectoriilor

Mecanismul de Poartă de Cunoaștere Binar

Nucleul sistemului RAGate este o poartă de cunoaștere binară care decide dacă să utilizeze cunoașterea externă pentru un anumit tur de conversație. Această poartă ia în considerare contextul conversației și, opțional, cunoașterea recuperată pentru a lua decizia sa.

Iată o ilustrare simplificată a modului în care poarta de cunoaștere binară ar putea funcționa:

def poartă_de_cunoaștere(context, cunoaștere_recuperată=None):
# Analizează contextul și cunoașterea recuperată
# Returnează Adevărat dacă cunoașterea externă ar trebui să fie utilizată, Fals în caz contrar
pass

<p>def generează_răspuns(context, cunoaștere=None):
if poartă_de_cunoaștere(context, cunoaștere):
# Utilizează generarea augmentată cu recuperare
return generează_cu_cunoaștere(context, cunoaștere)
else:
# Utilizează generarea standard a modelului de limbaj
return generează_fără_cunoaștere(context)

Acest mecanism de poartă permite sistemului să fie mai flexibil și conștient de context în utilizarea cunoașterii externe.

Implementarea RAGate

Această imagine ilustrează cadrul RAGate, un sistem avansat proiectat pentru a incorpora cunoașterea externă în modelele de limbaj pentru a îmbunătăți generarea de răspunsuri. Această arhitectură arată cum un model de limbaj de bază poate fi suplimentat cu context sau cunoaștere, fie prin intrare directă, fie prin integrarea bazelor de date externe în timpul procesului de generare. Acestă abordare duală, care utilizează atât capacitățile interne ale modelului, cât și cunoașterea externă, permite modelului de limbaj să furnizeze răspunsuri mai precise și mai relevante din punct de vedere contextual.

Această imagine prezintă metrici de performanță pentru diverse variante de modele sub cadrul RAGate, care se concentrează pe integrarea recuperării cu fine-tuning-ul eficient din punct de vedere al parametrilor (PEFT). Rezultatele subliniază superioritatea modelelor care integrează contextul, în special cele care utilizează încorporări de cunoaștere ner-know și ner-source.

Modelele RAGate-PEFT și RAGate-MHA demonstrează îmbunătățiri semnificative în ceea ce privește precizia, rechemarea și scorul F1, subliniind beneficiile incorporării atât a contextului, cât și a cunoașterii în sarcinile care necesită cunoașterea. Aceste strategii de fine-tuning permit modelelor să performeze mai bine în sarcinile care necesită cunoașterea, oferind o soluție mai robustă și mai scalabilă pentru aplicații din lumea reală.

Pentru a implementa RAGate, cercetătorii au explorat mai multe abordări, incluzând:

  1. Utilizarea modelelor de limbaj de mare capacitate cu prompturi bine create
  2. Fine-tuning-ul modelelor de limbaj utilizând tehnici eficiente din punct de vedere al parametrilor
  3. Dezvoltarea de arhitecturi neurale specializate, cum ar fi modelele cu atenție multi-cap

Fiecare dintre aceste abordări are propriile sale avantaje și dezavantaje. De exemplu, abordarea prin promptare este relativ simplă de implementat, dar nu întotdeauna produce rezultate consistente. Fine-tuning-ul oferă un echilibru bun între performanță și eficiență, în timp ce arhitecturile specializate pot oferi cea mai bună performanță, dar necesită mai multe resurse computaționale pentru antrenare.

Iată un exemplu simplificat de implementare a unui sistem RAGate utilizând un model de limbaj fine-tuned:

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

<p>class RAGate:
def __init__(self, nume_model):
self.tokenizer = AutoTokenizer.from_pretrained(nume_model)
self.model = AutoModelForSequenceClassification.from_pretrained(nume_model)</p>

<p>def ar_trebuie_să_utilizeze_cunoaștere(self, context, cunoaștere=None):
intrări = self.tokenizer(context, cunoaștere or "", return_tensors="pt", truncation=True, max_length=512)
cu torch.no_grad():
ieșiri = self.model(**intrări)
probabilități = torch.softmax(ieșiri.logits, dim=1)
return probabilități[0][1].item() &gt; 0.5 # Presupunând clasificare binară (0: fără cunoaștere, 1: utilizează cunoaștere)</p>

<p>class SistemConversațional:
def __init__(self, ragate, lm, retriever):
self.ragate = ragate
self.lm = lm
self.retriever = retriever</p>

<p>def generează_răspuns(self, context):
cunoaștere = self.retriever.recuperează(context)
if self.ragate.ar_trebuie_să_utilizeze_cunoaștere(context, cunoaștere):
return self.lm.generează_cu_cunoaștere(context, cunoaștere)
else:
return self.lm.generează_fără_cunoaștere(context)</p>

<p># Exemplu de utilizare
ragate = RAGate("cale/în/model/fine-tuned")
lm = ModelLimbaj() # Modelul dvs. de limbaj preferat
retriever = RecuperatorCunoaștere() # Sistemul dvs. de recuperare a cunoașterii</p>

<p>sistem_conversațional = SistemConversațional(ragate, lm, retriever)</p>

<p>context = "Utilizator: Ce este capitala Franței?\nSistem: Capitala Franței este Paris.\nUtilizator: Spuneți-mi mai multe despre monumentele sale celebre."
răspuns = sistem_conversațional.generează_răspuns(context)
print(răspuns)

Acest exemplu demonstrează cum un sistem RAGate ar putea fi implementat în practică. Clasa RAGate utilizează un model fine-tuned pentru a decide dacă să utilizeze cunoașterea externă, în timp ce clasa SistemConversațional orchestrează interacțiunea dintre poartă, modelul de limbaj și recuperator.

Provocări și Direcții Viitoare

În timp ce cadrul de auto-raționament și generarea augmentată cu recuperare adaptivă arată un mare potențial, există încă mai multe provocări pe care cercetătorii le abordează:

  1. Eficiență Computațională: Ambele abordări pot fi computațional intensive, în special atunci când se lucrează cu cantități mari de informații recuperate sau se generează traiectorii de raționament lungi. Optimizarea acestor procese pentru aplicații în timp real rămâne o zonă activă de cercetare.
  2. Robusteză: Asigurarea faptului că aceste sisteme funcționează consistent pe o gamă largă de subiecte și tipuri de întrebări este crucială. Acest lucru include gestionarea cazurilor limită și a intrărilor adverse care ar putea confunda mecanismele de judecare a relevanței sau de poartă.
  3. Sprijin Multilingv și Cross-Lingual: Extinderea acestor abordări pentru a funcționa eficient pe multiple limbi și pentru a gestiona recuperarea și raționamentul cross-lingual este o direcție importantă pentru munca viitoare.
  4. Integrarea cu Alte Tehnologii AI: Explorarea modului în care aceste abordări pot fi combinate cu alte tehnologii AI, cum ar fi modelele multimodale sau învățarea prin întărire, ar putea duce la sisteme și mai puternice și flexibile.

Concluzie

Dezvoltarea cadrului de auto-raționament și a generării augmentate cu recuperare adaptivă reprezintă un pas semnificativ înainte în domeniul prelucrării limbajului natural. Permițând modelelor de limbaj să raționeze în mod explicit despre informațiile pe care le utilizează și să adapteze dinamic strategiile de augmentare a cunoașterii, aceste abordări promit să facă sistemele AI mai fiabile, interpretabile și conștiente de context.

Pe măsură ce cercetarea în acest domeniu continuă să evolueze, ne putem aștepta să vedem aceste tehnici rafinate și integrate într-o gamă largă de aplicații, de la sisteme de răspuns la întrebări și asistenți virtuali până la instrumente educaționale și ajutoare de cercetare. Capacitatea de a combina cunoașterea vastă încodată în modelele de limbaj de mare capacitate cu informații recuperate dinamic și actualizate are potențialul de a revoluționa modul în care interacționăm cu sistemele AI și accesăm informații.

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.