Postări

Se afișează postări din ianuarie, 2025

Augmentare

         Practica standard presupune un singur pas de recuperare, urmat de generare, ceea ce poate fi considerat insuficient in contextul problemelor complexe. Astfel s-au dezolvat urmatoarele optimizari:\          1. Recuperare iterativa    Baza de cunostinte este cautata repetat pe baza solicitarii initiale si a textului generat pana in acel moment.    Ofera referinte contextuale suplimentare la fiecare iteratie, dar poate duce la acumularea de informatii irelevante.          2.  Recuperare recursiva    Implica un index structurat pentru a procesa si a recupera date intr-un mod ierarhic, ceea ce poate include rezumarea unui document lung inainte de a efectua o recuperare bazata pe acest rezumat. Ulterior, o recuperare secundara in cadrul documentului rafineaza cautarea.    Recuperarea multi-hop exploreazaz mai in profunzime sursele de date structurate sub forma ...

Generare

        ‘Lost in the middle' problem - exact ca oamenii, LLM au tendinta de a se focusa pe inceputul si sfarsitul unui text lung, uitand partea de mijloc. Astfel se introduc ajustari ale continutului recuperat si optimizarea LLM-ului.          1. Ajustarea continutului recuperat Reclasificarea documentelor pentru a evidentia cele mai relevante rezultate. Ca rezultat, reduce numarul total de documente. Selectarea/ compresia contextului : se folosesc LM-uri mici pentru a detecta si a sterge token-uri mai putin importante. De asemenea, se foloseste LLM-ul pentru a evalua continutul recuparat inainte de a genera raspunsul final          2. Optimizarea LLM-ului Targeted Fine-Tuning : customizeaza modelul pentru scenarii sau domenii specifice imbunatatind performanta pentru solicitari specializate Data and Style Adaptation : ajustarea intrarilor/iesirilor a LLM-ului pentru a respecta un format/stil particular...

Recuperare

             1. Data structure Unstructured data (text) : cea mai utilizata Semi-structured data (o combinatie de text si tabel, de ex. pdf). Probleme: separarea textului poate sa fragmenteze gresit datele tabelare incorporarea tabelelor complica cautarile semantice bazate pe similaritate             Structured data : knowledge graphs          2.  Granularitatea recuperarii Pentru text → variaza de la token-uri, fraze, propozitii, fragmente, documente. Pentru knowledge graph → entitate, triplet si sub-grafuri           3.  Optimizarea indexarii Strategia fragmentarii in bucati: bucati mai mari → mai mult context dar si mai mult zgomot, un timp de procesare si cost mai mare. Duce la truncarea in propozitii Atasamentul de metadata : se adauga metadata la bucatile fragmentate (ex. numar de pagina, autor, categorie, timestamp) Index structural : fisierele su...

Modular RAG

Imagine
       Se adauga noi componente specializate pentru a imbunatati recuperarea si capacitatile de procesare.  Acest Modular RAG are o flexibilitate in structura, unde introducerea de noi module se poate face in functie de nevoie. Search : cautari directe in diverse surse de dat Fusion : solicitarea utilizatorului este extinsa in diverse perspective procesate prin cautari vectoriale paralele Memory : se creaza un pool de memorie nelimitat care aliniaza textul mai strans cu distributia datelor prin auto-imbunatarile iterativa Routing : parcurge surse de date diferite selectand cea mai optima alegere pentru solicitare Predict : genereaza context direct prin LLM cu scopul de a reduce redundanta si zgomotul   

Advanced RAG

   Se adauga 2 procese: Pre-recuperare si post-recuperare          1. Pre-recuperare    Focusul se pune pe:  Optimizarea structurii indexului pentru a creste calitatea continutului indexat. Strategii: imbunatatirea granularitatii datelor, adaugarea de metadate, recuperare mixta (ex: cuvinte cheie + cautare semantica) Optimizarea solicitarii utilizatorului pentru a o face cat mai clara si mai potrivita procesului de recuperare. Strategii: rescriere, transformare, expansiune            2.  Post-recuperare    Include:   Reclasificarea informatiilor recuperate pentru a reloca cel mai relevant continut la marginea promptului Fragmentele relevante se pun la începutul sau la sfarsitul promptului, pentru a le face mai usor accesibile si pentru a ghida mai eficient procesul de generare a raspunsului de catre model Comprimarea contextului: selectarea informatiilor esentiale, focusul fiind...

Naive RAG

  Urmareste un proces care include indexare, recuperare si generare (Retrieve-Read framework)         1.  Indexare    Procesul incepe prin curatarea si extragerea datelor brute (pdf, html, word, etc.), care mai apoi sunt transformate intr-un text simplu. Textul este impartit in fragmente mai mici care sunt codificate intr-o reprezentare vectoriala folosing un model de incorporare (embedding) si stocate intr-o baza de date vectoriala. Aceste transformari au scopul de a face cautarile bazate pe similaritate din etapa de recuperare mai eficiente.           2.  Recuperare    Utilizatorul trimite o cerere. Acelasi model de incorporare folosit la indexare transforma cererea intr-o reprezentare vectoriala. Se calculeaza scorul de similaritate intre cerere si fragmentele din colectia indexata si se selecteaza top K fragmente. Aceste fragmente sunt folosite pentru a furniza detalii suplimentare pentru so...

Introducere

Imagine
  RAG =  Retrieval-Augmented Generation; o solutie promitatoare menita sa combata problemele cunoscute ale LLM-urilor (halucinari, informatii invechite) prin incorporarea informatiilor din surse externe. Exemplu de utilizare:  1. User-ul pune o intrebare despre o stire recenta. 2. Modelul, limitat la pre-training data, nu are capacitatea de a oferi informatii despre evenimente recente. 3. Folosind RAG, integreaza date din surse externe, adunand articole relevante pentru intrebarea utilizatorului. 4. Intrebarea si articolele colectate formeaza un prompt detaliat, care permite LLM-ului sa genereze un raspuns bine informat.