Leader di pensiero
Evoluzione RAG – Una Guida all’Agentic RAG
Cosa è RAG (Retrieval-Augmented Generation)?
Retrieval-Augmented Generation (RAG) è una tecnica che combina le forze dei grandi modelli linguistici (LLM) con il recupero di dati esterni per migliorare la qualità e la rilevanza delle risposte generate. I tradizionali LLM utilizzano le loro conoscenze pre-addestrate, mentre le pipeline RAG interrogano database o documenti esterni in fase di esecuzione e recuperano informazioni rilevanti per utilizzarle nella generazione di risposte più accurate e ricche di contesto. Ciò è particolarmente utile nei casi in cui la domanda è complessa, specifica o basata su un determinato periodo di tempo, poiché le risposte del modello sono informate e arricchite con informazioni aggiornate e specifiche del dominio.
Il Paesaggio Attuale di RAG
I grandi modelli linguistici hanno rivoluzionato completamente il modo in cui accediamo e processiamo le informazioni. La dipendenza esclusiva dalle conoscenze pre-immesse, tuttavia, potrebbe limitare la flessibilità delle loro risposte, specialmente per le domande complesse. Il Retrieval-Augmented Generation affronta questo problema consentendo ai LLM di acquisire e analizzare dati da altre fonti esterne per produrre risposte più accurate e più approfondite.
Gli sviluppi recenti nel recupero delle informazioni e nell’elaborazione del linguaggio naturale, in particolare LLM e RAG, aprono nuove frontiere di efficienza e sofisticazione. Questi sviluppi possono essere valutati secondo i seguenti ampi contorni:
- Miglioramento del recupero delle informazioni: il miglioramento del recupero delle informazioni nei sistemi RAG è molto importante per lavorare in modo efficiente. I lavori recenti hanno sviluppato vari vettori, algoritmi di riordinamento, metodi di ricerca ibridi per il miglioramento della ricerca precisa.
- Caching semantico: si è rivelato essere uno dei principali modi in cui il costo computazionale viene ridotto senza dover rinunciare a risposte coerenti. Ciò significa che le risposte alle query attuali vengono memorizzate insieme al loro contesto semantico e pragmatico, il che promuove tempi di risposta più veloci e fornisce informazioni coerenti.
- Integrazione multimodale: oltre ai sistemi LLM e RAG basati sul testo, questo approccio copre anche le modalità visive e altre del framework. Ciò consente l’accesso a una maggiore varietà di materiale di origine e risulta in risposte sempre più sofisticate e più accurate.
Sfide con le Architetture RAG Tradizionali
Mentre RAG sta evolvendo per soddisfare le diverse esigenze, ci sono ancora sfide che si ergono di fronte alle architetture RAG tradizionali:
- Riepilogo: riassumere documenti enormi potrebbe essere difficile. Se il documento è lungo, l’architettura RAG convenzionale potrebbe trascurare informazioni importanti perché ottiene solo i primi K elementi.
- Confronto dei documenti: il confronto efficace dei documenti è ancora una sfida. Il framework RAG risulta spesso in un confronto incompleto perché seleziona i primi K pezzi casuali da ogni documento in modo casuale.
- Analisi dei dati strutturati: è difficile gestire le query di dati numerici strutturati, come ad esempio determinare quando un dipendente prenderà la sua prossima vacanza in base a dove vive. Il recupero e l’analisi dei punti di dati precisi non sono precisi con questi modelli.
- Gestione delle query con più parti: rispondere a domande con più parti è ancora limitato. Ad esempio, scoprire modelli di congedo comuni in tutte le aree di un’organizzazione grande è difficile quando si è limitati a K pezzi, limitando la ricerca completa.
Passaggio all’Agentic RAG
Agentic RAG utilizza agenti intelligenti per rispondere a domande complesse che richiedono una pianificazione attenta, un 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 i 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, risultando nella creazione di agentic RAG. Questi agenti svolgono compiti aggiuntivi e ragionamenti oltre il recupero e la generazione di informazioni di base, nonché orchestrare e controllare i vari componenti della pipeline RAG.
Tre Strategie Agentic Principali
I router inviano query ai moduli o database appropriati in base al loro tipo. I router prendono decisioni dinamiche utilizzando Large Language Models sul contesto di una richiesta, per decidere quale motore di scelta debba essere inviato per migliorare la precisione e l’efficienza della pipeline.
Le trasformazioni delle query sono processi coinvolti nella riformulazione della query dell’utente per farla corrispondere meglio alle informazioni richieste o, viceversa, per farla corrispondere meglio a ciò che il database offre. Potrebbe trattarsi di riformulazione, espansione o divisione di domande complesse in sottodomande più semplici e gestibili.
Richiede anche un motore di query per sottodomande per affrontare la sfida di rispondere a una query complessa utilizzando più fonti di dati.
Innanzitutto, la domanda complessa viene decomposta in domande più semplici per ogni fonte di dati. Quindi, tutte le risposte intermedie vengono raccolte e un risultato finale viene sintetizzato.
Strati Agentic per Pipeline RAG
- Routing: la domanda viene instradata al processo di conoscenza basato sulla rilevanza. Esempio: quando l’utente desidera ottenere raccomandazioni per determinate categorie di libri, la query può essere instradata a una base di conoscenza che contiene conoscenze su quelle categorie di libri.
- Pianificazione della query: ciò comporta la decomposizione della query in sottquery e l’invio di queste ultime ai rispettivi pipeline individuali. L’agente produce sottquery per tutti gli elementi, come l’anno in questo caso, e li invia alle rispettive basi di conoscenza.
- Uso degli strumenti: un modello linguistico parla a un’API o a uno strumento esterno, sapendo cosa ciò implicherebbe, su quale piattaforma la comunicazione debba avvenire e quando sia necessario farlo. Esempio: data la richiesta dell’utente per una previsione del tempo per un giorno specifico, il LLM comunica con l’API del tempo, identificando la località e la data, quindi analizza il risultato restituito dall’API per fornire le informazioni corrette.
- ReAct è un processo iterativo di pensiero e azione accoppiato con la pianificazione, l’uso degli strumenti e l’osservazione.
Ad esempio, per progettare un piano di viaggio completo, il sistema considererà le richieste dell’utente e recupererà dettagli sulla rotta, le attrazioni turistiche, i ristoranti e gli alloggi chiamando API. Quindi, il sistema controllerà i risultati per correttezza e rilevanza, producendo un piano di viaggio dettagliato rilevante per la richiesta dell’utente e il suo programma. - Pianificazione della query dinamica: invece di eseguire in sequenza, l’agente esegue numerose azioni o sottquery contemporaneamente e poi aggrega questi risultati.
Ad esempio, se si desidera confrontare i risultati finanziari di due aziende e determinare la differenza in una metrica specifica, l’agente elaborerà i dati per entrambe le aziende in parallelo prima di aggregare i risultati; LLMCompiler è uno di quei framework che porta a un’orchestrazione efficiente della chiamata parallela di funzioni.
Agentic RAG e LLMaIndex
LLMaIndex rappresenta un’implementazione molto efficiente delle pipeline RAG. La libreria semplicemente riempie il pezzo mancante nell’integrazione dei dati organizzativi strutturati nei modelli di intelligenza generativa fornendo comodità per gli strumenti nel processare e recuperare dati, nonché interfacce per varie fonti di dati. I principali componenti di LlamaIndex sono descritti di seguito.
LlamaParse analizza i documenti.
Llama Cloud per il servizio aziendale con pipeline RAG distribuite con il minimo sforzo manuale.
Utilizzando più LLM e archiviazione di vettori, LlamaIndex fornisce un modo integrato per costruire applicazioni in Python e TypeScript con RAG. Le sue caratteristiche lo rendono un’infrastruttura molto richiesta da aziende che desiderano sfruttare l’AI per una presa di decisioni basata sui dati più avanzata.
Componenti Chiave dell’Implementazione Agentic RAG con LLMaIndex
Andiamo in profondità su alcuni degli ingredienti dell’agentic RAG e su come vengono implementati in LlamaIndex.
1. Uso degli Strumenti e Routing
L’agente di routing sceglie quale LLM o strumento utilizzare per una determinata domanda, in base al tipo di prompt. Ciò porta a decisioni sensibili al contesto, come ad esempio se l’utente desidera un riassunto o un riassunto dettagliato. Esempi di tali approcci sono il motore di query Router in LlamaIndex, che sceglie dinamicamente gli strumenti che massimizzano le risposte alle query.
2. Conservazione del Contesto a Lungo Termine
Mentre il lavoro più importante della memoria è quello di conservare il contesto su più interazioni, in contrasto, gli agenti dotati di memoria nella variante agentic di RAG rimangono costantemente consapevoli delle interazioni che portano a risposte coerenti e ricche di contesto.
LlamaIndex include anche un motore di chat che ha una memoria per conversazioni contestuali e query a singolo colpo. Per evitare il sovraccarico della finestra di contesto LLM, tale memoria deve essere strettamente controllata durante le discussioni lunghe e ridotta a una forma riassuntiva.
3. Motori di Sottodomande per la Pianificazione
Spesso, è necessario suddividere una query complessa in compiti più piccoli e gestibili. Il motore di query per sottodomande è una delle funzionalità principali per le quali LlamaIndex viene utilizzato come agente, in cui una grande query viene suddivisa in query più piccole, eseguite in sequenza e poi combinate per formare una risposta coerente. La capacità degli agenti di indagare più aspetti di una query passo dopo passo rappresenta il concetto di pianificazione multi-step rispetto a una lineare.
4. Riflessione e Correzione degli Errori
Gli agenti riflessivi producono output, ma poi controllano la qualità di quell’output per apportare correzioni se necessario. Questa capacità è di importanza fondamentale per garantire l’accuratezza e che ciò che viene prodotto sia ciò che era inteso da una persona. Grazie al flusso di lavoro auto-riflessivo di LlamaIndex, un agente esaminerà le sue prestazioni sia ritentando che aggiustando le attività che non soddisfano determinati livelli di qualità. Ma poiché è auto-correggente, l’Agentic RAG è abbastanza affidabile per quelle applicazioni aziendali in cui l’affidabilità è fondamentale.
5. Ragionamento Agentic Complesso:
L’esplorazione basata su alberi si applica quando gli agenti devono indagare una serie di percorsi possibili per raggiungere qualcosa. In contrasto con la pianificazione sequenziale, il ragionamento basato su alberi consente a un agente di considerare molteplici strategie contemporaneamente e scegliere la più promettente in base a criteri di valutazione aggiornati in tempo reale.
LlamaCloud e LlamaParse
Con la sua ampia gamma di servizi gestiti progettati per l’aggiornamento del contesto aziendale all’interno delle applicazioni LLM e RAG, LlamaCloud rappresenta un grande passo avanti nell’ambiente LlamaIndex. Questa soluzione consente agli ingegneri AI di concentrarsi sullo sviluppo della logica aziendale chiave riducendo il processo complesso di gestione dei dati.
Un altro motore di analisi disponibile è LlamaParse, che si integra convenientemente con le pipeline di ingestione e recupero in LlamaIndex. Ciò costituisce uno degli elementi più importanti che gestisce documenti complessi e semi-strutturati con oggetti incorporati come tabelle e figure. Un altro importante blocco costitutivo è l’API di ingestione e recupero gestita, che fornisce una serie di modi per caricare facilmente, elaborare e archiviare dati da un’ampia gamma di fonti, come il repository di dati centrale di LlamaHub o gli output di LlamaParse. Inoltre, supporta varie integrazioni di archiviazione dei dati.
Conclusione
Agentic RAG rappresenta un passaggio avanti nel processo di elaborazione delle informazioni introducendo più intelligenza negli agenti stessi. In molte situazioni, l’agentic RAG può essere combinato con processi o API diverse per fornire un risultato più preciso e raffinato. Ad esempio, nel caso della sintesi di documenti, l’agentic RAG valuterebbe lo scopo dell’utente prima di creare un riassunto o confrontare dettagli. Quando si fornisce supporto clienti, l’agentic RAG può rispondere in modo accurato e individuale alle richieste dei clienti sempre più complesse, non solo in base al loro modello di addestramento, ma anche in base alla memoria disponibile e alle fonti esterne. L’Agentic RAG sottolinea un passaggio da modelli generativi a sistemi più raffinati che sfruttano altri tipi di fonti per raggiungere un risultato robusto e preciso. Tuttavia, essendo generativi e intelligenti come sono ora, questi modelli e gli Agentic RAG sono alla ricerca di una maggiore efficienza man mano che più dati vengono aggiunti alle pipeline.












