Ce este Self-RAG (Generare Augmentată cu Auto-Reflecție)?

Metoda (Asai et al., 2023) în care modelul este antrenat să decidă când caută și să evalueze, prin tokeni speciali, relevanța pasajelor și cât de susținut este propriul răspuns.

Denumire completă

Self-RAG – un singur LM antrenat să emită tokeni de reflecție: Retrieve, IsRel, IsSup, IsUse

RAG-ul obișnuit aduce mereu un număr fix de pasaje, fie că regăsirea e necesară, fie că pasajele sunt relevante. Self-RAG (Self-Reflective Retrieval-Augmented Generation; Asai, Wu, Wang, Sil și Hajishirzi, 2023) antrenează un singur LM care caută la cerere și își critică pasajele și generarea prin tokeni speciali, numiți tokeni de reflecție.

Sunt patru tipuri: Retrieve (yes / no / continue) decide dacă se caută; IsRel (relevant / irrelevant) spune dacă pasajul ajută; IsSup (fully supported / partially supported / no support) spune dacă afirmațiile segmentului sunt susținute de pasaj; IsUse (5 până la 1) notează utilitatea răspunsului. În experimente, un segment este o propoziție.

Antrenarea folosește două modele. Un critic, antrenat parțial pe etichete obținute cu GPT-4, inserează offline tokenii de reflecție în corpusul de antrenare. Apoi generatorul învață să producă text și tokeni de reflecție dintr-un vocabular extins, deci criticul nu mai este necesar la inferență. La inferență, un beam search la nivel de segment ordonează continuările după o sumă ponderată a probabilităților tokenilor de critică; ponderile se pot ajusta fără reantrenare. Lucrarea raportează că Self-RAG (7B și 13B) depășește ChatGPT și Llama2-chat cu regăsire pe QA open-domain, raționament și verificarea faptelor.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
Retrieve {yes, no, continue}: dacă trebuie căutat. Regăsirea se declanșează când probabilitatea depășește un prag.
IsRel {relevant, irrelevant}: relevanța pasajului.
IsSup {fully supported, partially supported, no support}: cât de susținut de pasaj este segmentul.
IsUse {5, 4, 3, 2, 1}: utilitatea răspunsului.
Critic / generator Criticul etichetează datele de antrenare offline; generatorul emite singur tokenii la inferență.
Beam search pe segmente Alege continuarea cu cel mai bun scor: suma ponderată a probabilităților tokenilor de critică.

Exemple practice și scenarii reale

Exemplul 1: Forma unei generări cu tokeni de reflecție

Schematic; numele și valorile tokenilor sunt cele din tabelul 1 al lucrării.

Întrebare: ...
[Retrieve=Yes] <pasaj 1> [IsRel=Relevant]
Propoziția 1 a răspunsului [IsSup=Fully Supported]
[Retrieve=Continue]
Propoziția 2 a răspunsului [IsSup=Partially Supported]
[IsUse=4]

Exemplul 2: Modelele publicate de autori pe Hugging Face

selfrag/selfrag_llama2_7b
selfrag/selfrag_llama2_13b

Greșeli frecvente și capcane

  • Să crezi că Self-RAG se obține din prompt. Tokenii de reflecție sunt învățați la antrenare; un model obișnuit nu îi emite corect doar pentru că îi ceri.
  • Să tratezi IsSup ca garanție. Este o predicție a modelului, nu o verificare formală; răspunsurile importante se verifică în continuare.
  • Să ignori controlul de la inferență. Ponderile tokenilor de critică și pragul de regăsire schimbă comportamentul fără reantrenare; ajustează-le pentru sarcina ta.

Noțiuni și module înrudite