Come Self-RAG potrebbe rivoluzionare gli LLM industriali

Come Self-RAG sta rivoluzionando gli LLM industriali

Affrontiamolo di petto – il RAG vaniglia è abbastanza stupido. Non c’è garanzia che le risposte restituite siano rilevanti. Scopri come il Self-RAG può aiutare in modo significativo

Demo Self-RAG | Skanda Vivek

I grandi modelli linguistici (LLM) sono pronti a rivoluzionare vari settori. Prendiamo ad esempio il settore finanziario, in cui i LLM possono essere utilizzati per esaminare grandi quantità di documenti e individuare tendenze in una frazione di tempo e a una frazione del costo degli analisti che svolgono la stessa attività. Ma c’è un problema: le risposte che ottieni sono spesso parziali e incomplete. Prendiamo ad esempio una situazione in cui hai un documento contenente il fatturato annuale dell’azienda X negli ultimi 15 anni, ma in diverse sezioni. Nell’architettura standard di Retrieval Augmented Generation (RAG) come mostrato di seguito, di solito si recuperano i documenti migliori (top-k), o si scelgono documenti entro una determinata lunghezza di contesto.

Prototipo RAG | Skanda Vivek

Tuttavia, ciò può presentare diversi problemi. Un problema è che i documenti migliori (top-k) potrebbero non contenere tutte le risposte – ad esempio solo relative agli ultimi 5 o 10 anni. L’altro problema è che il calcolo della similarità tra frammenti di documento e prompt non sempre restituisce contesti pertinenti. In questo caso, potresti ottenere una risposta errata.

Un vero problema è quando sviluppi un’app di RAG vaniglia che funziona bene nei casi semplici che testi, ma fallisce quando presenti questo prototipo agli stakeholder e loro pongono domande fuori dagli schemi.

Ecco dove entra in gioco il self-RAG! Gli autori sviluppano un modo intelligente per far sì che un LM (Llama2-7B e 13B) addestrato finemente produca token speciali [Recupero], [No recupero], [Rilevante], [Non rilevante], [Nessun supporto / Contradditorio], [Supporto parziale], [Utilità], ecc. aggiunti alle generazioni del LM per decidere se un contesto è rilevante/irrilevante, se il testo generato dal contesto LM è supportato o meno, e l’utilità della generazione.