Leader del pensiero
Evoluzione RAG – Un'introduzione all'agente RAG
Che cosa è RAG (Retrieval-Augmented Generation)?
Generazione aumentata di recupero (RAG) è una tecnica che combina i punti di forza dei grandi modelli linguistici (LLM) con il recupero di dati esterni per migliorare la qualità e la pertinenza delle risposte generate. Gli LLM tradizionali utilizzano le loro basi di conoscenza pre-addestrate, mentre le pipeline RAG interrogheranno database o documenti esterni in fase di esecuzione e recupereranno informazioni rilevanti da utilizzare per generare risposte più accurate e contestualmente ricche. Ciò è particolarmente utile nei casi in cui la domanda è complessa, specifica o basata su un dato intervallo di tempo, dato che le risposte del modello sono informate e arricchite con informazioni specifiche del dominio aggiornate.
Il panorama attuale del RAG
I grandi modelli linguistici hanno rivoluzionato completamente il modo in cui accediamo ed elaboriamo le informazioni. Tuttavia, affidarsi esclusivamente alla conoscenza interna pre-input potrebbe limitare la flessibilità delle loro risposte, in particolare per domande complesse. Retrieval-Augmented Generation affronta questo problema consentendo agli LLM di acquisire e analizzare dati da altre fonti esterne disponibili per produrre risposte più accurate e approfondite.
I recenti sviluppi nel recupero delle informazioni e nell'elaborazione del linguaggio naturale, in particolare LLM e RAG, aprono nuove frontiere di efficienza e sofisticatezza. Questi sviluppi potrebbero essere valutati in base ai seguenti ampi contorni:
- Recupero avanzato delle informazioni: il miglioramento del recupero delle informazioni nei sistemi RAG è piuttosto importante per lavorare in modo efficiente. Lavori recenti hanno sviluppato vari vettori, algoritmi di riclassificazione, metodi di ricerca ibridi per il miglioramento della ricerca precisa.
- Caching semantico: questo risulta essere uno dei modi principali in cui i costi computazionali vengono tagliati senza dover rinunciare a risposte coerenti. Ciò significa che le risposte alle query correnti vengono memorizzate nella cache insieme al loro contesto semantico e pragmatico allegato, il che promuove nuovamente tempi di risposta più rapidi e fornisce informazioni coerenti.
- Integrazione multimodale: oltre ai sistemi LLM e RAG basati sul testo, questo approccio copre anche gli elementi visivi e altre modalità del framework. Ciò consente l'accesso a una maggiore varietà di materiale sorgente e si traduce in risposte sempre più sofisticate e progressivamente più accurate.
Sfide con le architetture RAG tradizionali
Mentre RAG si evolve per soddisfare le diverse esigenze, ci sono ancora delle sfide che si presentano alle architetture RAG tradizionali:
- Riepilogo: Riassumere documenti di grandi dimensioni potrebbe essere difficile. Se il documento è lungo, la struttura RAG convenzionale potrebbe trascurare informazioni importanti perché ottiene solo i primi K pezzi.
- Confronto di documenti: Il confronto efficace dei documenti è ancora una sfida. Il framework RAG spesso produce un confronto incompleto poiché seleziona i primi K blocchi casuali da ogni documento in modo casuale.
- Analisi dei dati strutturatis: È difficile gestire query di dati numerici strutturati, come ad esempio capire quando un dipendente andrà in ferie in base al luogo di residenza. Il recupero e l'analisi precisi dei punti dati non sono accurati con questi modelli.
- Gestione di query con più parti: Rispondere a domande con più parti è ancora limitato. Ad esempio, scoprire modelli di congedo comuni in tutte le aree di una grande organizzazione è difficile quando si limita a K parti, limitando la ricerca completa.
Passare ad Agentic RAG
Agente RAG utilizza agenti intelligenti per rispondere a domande complicate che richiedono un'attenta pianificazione, ragionamento multi-step e l'integrazione di strumenti esterni. Questi agenti svolgono i compiti di un ricercatore esperto, navigando abilmente attraverso una moltitudine di documenti, confrontando dati, riassumendo risultati e producendo risposte complete e precise.
Il concetto di agenti è incluso nel framework RAG classico per migliorare la funzionalità e le capacità del sistema, dando vita a un RAG agentico. Questi agenti svolgono compiti e ragionamenti aggiuntivi che vanno oltre il semplice recupero e la creazione di informazioni, oltre a orchestrare e controllare i vari componenti della pipeline RAG.
Tre strategie agentiche primarie
I router inviano query ai moduli o database appropriati a seconda del tipo. I router prendono decisioni in modo dinamico utilizzando Large Language Models su cui ricade il contesto di una richiesta, per effettuare una chiamata al motore di scelta a cui deve essere inviata per una migliore accuratezza ed efficienza della pipeline.
Le trasformazioni delle query sono processi che implicano la riformulazione della query dell'utente per adattarla al meglio alle informazioni richieste o, viceversa, a ciò che il database offre. Potrebbe trattarsi di una delle seguenti operazioni: riformulazione, espansione o scomposizione di domande complesse in sotto-domande più semplici e facilmente gestibili.
Richiede inoltre un motore di query di sotto-domande per affrontare la sfida di rispondere a una query complessa utilizzando diverse fonti di dati.
Innanzitutto, la domanda complessa viene scomposta in domande più semplici per ciascuna delle fonti di dati. Quindi, vengono raccolte tutte le risposte intermedie e sintetizzato un risultato finale.
Livelli agenti per condotte RAG
- efficiente: La domanda viene indirizzata all'elaborazione basata sulla conoscenza pertinente in base alla pertinenza. Esempio: quando l'utente desidera ottenere consigli per determinate categorie di libri, la query può essere indirizzata a una knowledge base contenente informazioni su tali categorie di libri.
- Pianificazione delle query: Ciò comporta la scomposizione della query in sottoquery e il loro successivo invio alle rispettive pipeline individuali. L'agente produce sottoquery per tutti gli elementi, come l'anno in questo caso, e le invia alle rispettive knowledge base.
- Uso dello strumento: Un modello linguistico dialoga con un'API o uno strumento esterno, sapendo cosa ciò comporterebbe, su quale piattaforma la comunicazione dovrebbe avvenire e quando sarebbe necessario farlo. Esempio: data la richiesta di un utente di previsioni del tempo per un determinato giorno, l'LLM comunica con l'API meteo, identificando la posizione e la data, quindi analizza il risultato proveniente dall'API per fornire le informazioni corrette.
- Reagire è un processo iterativo di pensiero e azione abbinato alla pianificazione, all'uso di strumenti e all'osservazione.
Ad esempio, per progettare un piano di viaggio completo, il sistema considererà le richieste degli utenti e recupererà dettagli su itinerario, attrazioni turistiche, ristoranti e alloggi tramite API. Successivamente, il sistema verificherà la correttezza e la pertinenza dei risultati, producendo un piano di viaggio dettagliato e pertinente alle richieste e agli orari dell'utente. - Pianificazione query dinamica: Invece di procedere in sequenza, l'agente esegue numerose azioni o sottoquery contemporaneamente e poi aggrega i risultati.
Ad esempio, se si desidera confrontare i risultati finanziari di due aziende e determinare la differenza in una metrica, l'agente elaborerà i dati di entrambe le aziende in parallelo prima di aggregare i risultati; LLMCompiler è uno di questi framework che consente un'orchestrazione efficiente delle chiamate parallele di funzioni.
Agentic RAG e LLMaIndex
LLMaIndex rappresenta un'implementazione molto efficiente delle pipeline RAG. La libreria riempie semplicemente il pezzo mancante nell'integrazione di dati organizzativi strutturati in modelli di IA generativa, fornendo praticità per gli strumenti nell'elaborazione e nel recupero dei dati, nonché interfacce per varie fonti di dati. I componenti principali di LlamaIndex sono descritti di seguito.
LlamaParse analizza i documenti.
Llama Cloud per servizi aziendali con pipeline RAG distribuite con il minimo lavoro manuale.
Utilizzando più LLM e storage vettoriale, LlamaIndex fornisce un modo integrato per creare applicazioni in Python e TypeScript con RAG. Le sue caratteristiche lo rendono un backbone molto richiesto dalle aziende che vogliono sfruttare l'intelligenza artificiale per un processo decisionale basato sui dati migliorato.
Componenti chiave dell'implementazione di Agentic Rag con LLMaIndex
Approfondiamo alcuni degli ingredienti dell'agente RAG e come vengono implementati in LlamaIndex.
1. Utilizzo degli utensili e routing
L'agente di routing sceglie quale LLM o strumento è meglio usare per una data domanda, in base al tipo di prompt. Ciò porta a decisioni sensibili al contesto, come se l'utente desidera una panoramica o un riepilogo dettagliato. Esempi di tali approcci sono Router Query Engine in LlamaIndex, che sceglie dinamicamente gli strumenti che massimizzerebbero le risposte alle query.
2. Conservazione del contesto a lungo termine
Mentre il compito più importante della memoria è quello di conservare il contesto durante diverse interazioni, al contrario, gli agenti dotati di memoria nella variante agentiva del RAG rimangono costantemente consapevoli delle interazioni che danno luogo a risposte coerenti e ricche di contesto.
LlamaIndex include anche un motore di chat che ha memoria per conversazioni contestuali e query single shot. Per evitare il traboccamento della finestra di contesto LLM, tale memoria deve essere sotto stretto controllo durante lunghe discussioni e ridotta in forma riassunta.
3. Motori di sottodomande per la pianificazione
Spesso, si deve suddividere una query complicata in lavori più piccoli e gestibili. Il motore di query delle sotto-domande è una delle funzionalità principali per cui LlamaIndex viene utilizzato come agente, per cui una query di grandi dimensioni viene suddivisa in query più piccole, eseguite in sequenza e quindi combinate per formare una risposta coerente. La capacità degli agenti di esaminare più aspetti di una query passo dopo passo rappresenta la nozione di pianificazione multi-step rispetto a una lineare.
4. Riflessione e correzione degli errori
Gli agenti riflessivi producono output, ma ne verificano la qualità per apportare correzioni se necessario. Questa capacità è di fondamentale importanza per garantire l'accuratezza e che il risultato corrisponda esattamente alle intenzioni dell'utente. Grazie al flusso di lavoro auto-riflessivo di LlamaIndex, un agente esaminerà le proprie prestazioni riprovando o modificando le attività che non soddisfano determinati livelli di qualità. Tuttavia, grazie alla sua capacità di autocorrezione, Agentic RAG risulta piuttosto affidabile per quelle applicazioni aziendali in cui l'affidabilità è fondamentale.
5. Ragionamento agente complesso:
L'esplorazione basata sugli alberi si applica quando gli agenti devono investigare un certo numero di possibili percorsi per ottenere qualcosa. Contrariamente al processo decisionale sequenziale, il ragionamento basato sugli alberi consente a un agente di considerare molteplici strategie tutte in una volta e di scegliere la più promettente in base a criteri di valutazione aggiornati in tempo reale.
LlamaCloud e LlamaParse
Con la sua vasta gamma di servizi gestiti progettati per l'aumento del contesto di livello aziendale all'interno delle applicazioni LLM e RAG, LlamaCloud rappresenta un importante passo avanti nell'ambiente LlamaIndex. Questa soluzione consente agli ingegneri AI di concentrarsi sullo sviluppo di logiche aziendali chiave riducendo il complesso processo di data wrangling.
Un altro motore di analisi disponibile è LlamaParse, che si integra facilmente con le pipeline di ingestione e recupero di LlamaIndex. Questo costituisce uno degli elementi più importanti per la gestione di documenti complessi e semi-strutturati con oggetti incorporati come tabelle e figure. Un altro elemento fondamentale è l'API di ingestione e recupero gestita, che offre diverse modalità per caricare, elaborare e archiviare facilmente dati da un ampio set di fonti, come il repository dati centrale di LlamaHub o gli output di LlamaParse. Inoltre, supporta diverse integrazioni per l'archiviazione dei dati.
Conclusione
Agentic RAG rappresenta un cambiamento nell'elaborazione delle informazioni, introducendo maggiore intelligenza negli agenti stessi. In molte situazioni, Agentic RAG può essere combinato con processi o diverse API per fornire un risultato più accurato e raffinato. Ad esempio, nel caso della sintesi di documenti, Agentic RAG valuta lo scopo dell'utente prima di creare un riepilogo o confrontare i dettagli. Nell'ambito dell'assistenza clienti, Agentic RAG può rispondere in modo accurato e personalizzato a richieste sempre più complesse, non solo in base al modello di training, ma anche alla memoria disponibile e alle fonti esterne. Agentic RAG evidenzia un passaggio dai modelli generativi a sistemi più perfezionati che sfruttano altri tipi di fonti per ottenere un risultato solido e accurato. Tuttavia, essendo generativi e intelligenti come sono ora, questi modelli e Agentic RAG sono alla ricerca di una maggiore efficienza, poiché sempre più dati vengono aggiunti alle pipeline.








