Proudly debugging the system since 1981

Tag: RAG

Navigating Intelligent Solutions: From AI to Agentic Retrieval‑Augmented Frameworks

L’intelligenza artificiale (IA) ha trasformato il modo in cui le aziende elaborano informazioni. Ma i modelli linguistici di grandi dimensioni (LLM) spesso mancano di conoscenza aggiornata e possono generare dati errati. La tecnica di retrieval‑augmented generation (RAG) unisce ricerca documentale e generazione, riducendo le allucinazioni e mantenendo il modello aggiornato. Quando questa metodologia è abbinata a sistemi agentici intelligenti che decidono autonomamente quale strumento utilizzare, nasce l’agentic RAG, una nuova frontiera che migliora la precisione e la trasparenza delle risposte. Il modello di decision‑tree guida la logica decisionale in questi sistemi, consentendo una pianificazione adattiva basata su test successivi. In questo articolo esploreremo passo dopo passo queste tecnologie, partendo dalla base dell’IA, passando per RAG, l’agent AI, l’agentic RAG e infine il ruolo del decision tree.

Capire l’Intelligenza Artificiale: Fondamenti e Sfide

Il settore dell’Intelligenza Artificiale (IA) è nato con l’obiettivo di replicare l’intelligenza umana nei sistemi computazionali. I primi sistemi basati su regole rigide e approcci simbolici si sono dimostrati difficili da scalare e poco robusti di fronte alla variabilità dei dati reali. Con l’avvento dei modelli di apprendimento profondo, l’IA ha guadagnato capacità di estrazione di pattern non lineari, portando allo sviluppo dei cosiddetti Large Language Models (LLM). Tuttavia, i LLM pur essendo potenti, soffrono di allucinazioni, mancano di spiegabilità e richiedono enormi risorse computazionali. Per mitigare tali problemi, la ricerca ha intensificato lo studio di architetture decision‑tree, che suddividono il processo decisionale in nodi specializzati (es. ricerca, sintesi, filtro). Tale modularità consente un tracciamento chiaro delle operazioni, facilita la gestione degli errori e permette di combinare modelli leggeri per la routing con LLM pesanti per il ragionamento approfondito. Inoltre, le decision‑trees favoriscono l’apprendimento continuo grazie alla possibilità di aggiungere nuovi “tool” in modo incrementale. In sintesi, l’evoluzione dall’IA tradizionale a sistemi decision‑tree‑augmented rappresenta un passo cruciale verso soluzioni più efficienti, trasparenti e sostenibili. Gli approcci decision‑tree non solo migliorano la qualità delle risposte, ma permettono anche una gestione più fine delle risorse di calcolo, poiché il carico computazionale viene distribuito tra componenti di diverso peso. Ciò riduce l’overhead di addestramento e facilita l’implementazione su infrastrutture esistenti, rendendo l’IA più accessibile e adattabile a scenari reali.

Retrieval‑Augmented Generation (RAG): La Nuova Frontiera per LLM

RAG è un’architettura che combina la ricerca di informazioni (retrieval) con la generazione di testo (augmentation). In pratica, un modello di linguaggio chiama un sistema di ricerca vettoriale per recuperare documenti pertinenti, quindi integra questi documenti nel proprio prompt per produrre risposte basate su fonti verificabili. Questo approccio riduce le allucinazioni, perché la generazione è ancorata a dati esterni, e migliora la precisione senza richiedere un costoso fine‑tuning del modello principale.

Agent AI: Sistemi Intelligenti che Operano in Ambienti Dinamici

I chatbot tradizionali si basano principalmente sulla risposta a prompt testuali. Con gli agenti AI, l’interazione diventa autonoma e contestuale: il sistema valuta lo stato attuale, decide quale azione compiere (ricerca, sintesi, visualizzazione) e produce la risposta in modo iterativo.

In un contesto Retrieval‑Augmented Generation (RAG), l’agente accede in tempo reale a una base di conoscenza, recupera i documenti più rilevanti e poi genera la risposta con un modello LLM, integrando così recupero e generazione in un’unica pipeline decisionale.

L’implementazione di Elysia si basa su un “decision tree orchestrato” dove ogni nodo è un tool (retriever, summariser, visualizzatore, ecc.). Il decision agent valuta il contesto, la storia delle interazioni e i costi computazionali per scegliere l’operazione più adatta. Questo approccio garantisce trasparenza: il percorso decisionale è visibile in tempo reale, facilitando debug e audit.

Per le imprese, i vantaggi sono:
– Affidabilità migliorata grazie alla gestione degli errori e ai limiti di iterazione.
– Riduzione dei costi di sviluppo: i componenti possono essere riutilizzati senza riformulare prompt.
– Personalizzazione pro‑attiva che apprende dai feedback degli utenti.

Il futuro prevede l’integrazione di agenti multi‑modalità, la capacità di autogenerare nuovi tool e la sinergia con sistemi di controllo decisionale complessi, aprendo la strada a soluzioni enterprise completamente autonome.

Agentic RAG e Decision Tree: La Logica Decisionale dei Sistemi

Elysia sfrutta una decision‑tree architecture per coordinare gli agenti. Ogni nodo è un tool specifico—retriever, LLM, visualizer—e la scelta di quale nodo attivare avviene tramite un decision agent che valuta contestualmente i dati, i risultati precedenti e le potenziali ramificazioni future. Questo modello si ispira alle teorie dei Decision Trees, dove la struttura ad albero rappresenta una sequenza di test decisionali, ognuno dei quali conduce a ulteriori sotto‑decisioni o a un risultato finale. In Elysia, i test sono adaptivi: l’agente ricalcola le probabilità di successo di ciascun branch in base ai feedback in tempo reale, spostando dinamicamente l’albero verso percorsi più promettenti. La profondità dell’albero è limitata da un hard pass limit che evita loop infiniti; al superamento di questo valore, l’agente propaga un errore verso un percorso alternativo o invia una notifica di fallimento.

Flusso decisionale in una lista:

  • Input utente → nodo di analisi preliminare
  • Test di compatibilità del dato → scegliere retriever o preprocessore
  • Chiamata LLM → valutare qualità della risposta
  • Se insufficiente, ricalcolo: attivare visualizer o iterare con nuovo prompt
  • Output finale → rendering dinamico e memorizzazione preferenza utente

Esempi pratici:

  • Nel negozio di skincare, il percorso dall’input di un problema cutaneo al consiglio di prodotto passa da un retriever di documenti, a un LLM di sintesi, fino a un visualizer di carte prodotto.
  • In un sistema di raccomandazione, la decision tree genera una serie di filtri di prodotto, crea una collezione di articoli correlati e poi genera un prompt per l’LLM che propone prodotti finali.

Conclusioni

Il futuro dell’IA non è solo potenza di calcolo, ma capacità di integrare conoscenza esterna in modo intelligente e decisionale. RAG, quando combinato con architetture agentiche e modelli di decision‑tree, offre soluzioni più affidabili, trasparenti e adattabili. Le imprese possono ora sfruttare data‑driven chat‑bots e agenti autonomi che si evolvono con il loro ambiente, riducendo il rischio di allucinazioni e garantendo la citazione delle fonti.

Link di partenza per la generazione del testo : https://weaviate.io/blog/elysia-agentic-rag
La generazione e’ stata fatta con GPT-OSS 20B, che per arrivare all’articolo di cui sopra (circa 1000 parole, 500 token) ha prodotto 50.000 token in elaborazioni successive, tra cui riassunto a pezzi con metodo map-reduce, pianificazione dell’articolo interrogando anche altre fonti (wikipedia) e redazione dei singoli capitoli. Proverò comunque Elysia e magari scriverò qualcosa anche io direttamente.

Second Me

Ho deciso di provare questo progetto di intelligenza artificiale, Second Me, perché va oltre la “semplice” RAG ma effettua un training effettivo sui contenuti forniti e volevo verificarne l’efficacia. Il RAG e’ interessante ma spesso poco efficace quando si tratta di fare compiti per i quali il modello originale non era particolarmente bravo o competente.

Second Me pero’, purtroppo, e’ ancora molto immaturo. Al momento c’è un evidente bug che impedisce di allenare un modello diverso da quello da 0.5B di parametri (https://github.com/mindverse/Second-Me/issues/256) cosa che produce un risultato veramente deludente. Ho provato ad aggirare il problema mettendo il modello da 3B nella cartella di quello da 0.5B, sembra finire ma poi non parte.

Riproverò quando il progetto sarà un po più maturo.

Informazioni potenzialmente utili per altri ricavate dalle prime prove:

La configurazione di default prevede l’embedding e il modello di supporto utilizzando le API di open-ai ma si può benissimo usare ollama in locale su una buona GPU. Io ho usato nomic-embed-text:latest per l’embedding e gemma3:latest per il supporto. In teoria poteva girare anche gemma3:12b sulla mia GPU ma usando embedding e supporto insieme si rallentava parecchio e ho preferito un modello più piccolo.

Usando Second Me su docker e Ollama sulla macchina fisica i parametri per le API sono:
API Key: ollama
API Endpoint: http://host.docker.internal:11434/v1
e ovviamente il modello scelto…

La preparazione dei dati, embedding e memorie e quant’altro avviene effettivamente sulla GPU (di fatto lo fa ollama…), mentre il training avviene sulla CPU per cui credo manchi qualche cosa…

Il tempo complessivo con un po’ di memorie (i post degli ultimo due anni sul blog… poca roba) complessità media e modello 0.5B stanno circa sull’ora, ora e mezza con una 3060.

Risultati… veramente brutti :D. Ma riproverò tra un paio di settimane.

© 2025 b0sh.net

Tema di Anders NorenSu ↑