Il sistema agentic RAG rappresenta un miglioramento significativo rispetto al RAG tradizionale sfruttando sistemi autonomi integrati con modelli LLM e meccanismi di recupero. Questo permette di prendere decisioni autonome, adattarsi a esigenze mutevoli e svolgere compiti complessi. Nel tutorial seguente, imparerai i principi fondamentali del agentic RAG utilizzando i modelli open-source NVIDIA Nemotron, e costruirai un sistema personalizzato.

Comprendere l’architettura RAG

Il ReAct Agent introduce un'architettura dinamica per il RAG. Quest’agente opera in modo iterativo: ragiona e richiama strumenti definiti dall'utente, generando risposte di alta qualità. L'architettura ReAct si basa su modelli LLM in grado di chiamare strumenti in risposta a una richiesta. Ogni volta che i modelli chiedono l’esecuzione di uno strumento, viene eseguito, aggiunto alla cronologia delle chat e rimandato al modello per ulteriori invocazioni.

Il RAG tradizionale si limita a richiamare informazioni esterne basate su input. L’approccio agentic RAG, invece, va oltre: combina le forze principali della comprensione linguistica e la risoluzione di problemi contestuali dei modelli LLM con strumenti dinamici di strumentazione avanzata, come ricerca semantica, ricerca ibrida, riordinamento dei documenti e scelta delle fonti dei dati. L'obiettivo è fornire un sistema che possa adattarsi a richieste complesse.

Inizio del Workshop

Per iniziare il workshop, segui i passaggi seguenti:

    • Lancia il workshop tramite NVIDIA Launchable, cliccando il tasto "Deploy Now" per configurare l'ambiente in cloud.
    • Apri l’ambiente Jupyter Lab e vai alla sezione NVIDIA DevX Learning Path.
    • Cerca la tile Agentic RAG per ottenere le istruzioni del laboratorio.

Per poter seguire il laboratorio, configura alcune informazioni importanti:

    • NGC API Key: consente l’accesso a modelli e container NVIDIA.
    • LangSmith API Key (opzionale): per collegare il workshop al sistema di tracciamento e debug LangChain.

Introduzione alla Pipeline RAG

L’architettura agente RAG si basa su diversi passaggi, ognuno con funzioni critiche:

    • Prompt: l’utente genera una domanda in linguaggio naturale.
    • Modello di Embedding: il prompt viene convertito in vettori.
    • Ricerca su Database Vettori: i vettori vengono usati per cercare documenti simili in un database.
    • Riordinamento: i frammenti di dati recuperati vengono riordinati per importanza.
    • Modello LLM: genera una risposta utilizzando le informazioni estratte.

Utilizzare un approccio ReAct aggiunge un passo di iterazione: l’agente decide quando e come effettuare ricerche. Questo permette di fornire contesto aggiuntivo solo quando necessario.

Strumenti e Modelli

NVIDIA offre una suite di modelli e strumenti chiave per la pipeline agentic RAG:

    • Nemotron Nano 9b V2: per la generazione di risposte di alta qualità.
    • Embedding Model NeMo Retriever: per generare rappresentazioni vettoriali dei documenti.
    • Reranking Model NeMo Retriever: per riordinare i documenti in base alla relazione con il contesto.

Il frammento sottostante mostra l’utilizzo di ChatNVIDIA di LangChain, collegandosi ai modelli NVIDIA via NVIDIA NIM endpoints:

from langchainnvidiaai_endpoints import ChatNVIDIA

LLM_MODEL = "nvidia/nvidia-nemotron-nano-9b-v2"

llm = ChatNVIDIA(model=LLMMODEL, temperature=0.6, topp=0.95, max_tokens=8192)

Questo modello supporta:

    • Crittografia avanzata
    • Risoluzione strutturata
    • Operazioni asincrone
    • Inferenza enterprise

Inoltre, è essenziale fornire istruzioni chiare per i modelli, come mostrato in un esempio da code/rag_agent.py:

SYSTEM_PROMPT = (

"You are an IT help desk support agent.\n"

"- Use the 'companyllcitknowledgebase' tool for questions likely covered by the internal IT knowledge base.\n"

"- Always write grounded answers. If unsure, say you don't know.\n"

"- Cite sources inline using [KB] for knowledge base snippets.\n"

)

Queste istruzioni permettono al sistema LLM di generare risposte coerenti e contestuali a partire da fonti ben definite.

Implementazione Tecnica

La pipeline completa agentic RAG include diversi elementi fondamentali:

    • Modello: Usa gli endpoint NVIDIA NIM per fornire potente inferenza.
    • Strumenti: Modelli e modelli di riordinamento, come il NeMo Retriever Embedding.
    • Creazione di dati: Implica l’ingestione, la divisione testuale in porzioni e l’archiviazione in un database vettoriale.
    • Modelli di recupero: Per ottenere i frammenti chiave e riordirli.
    • Configurazione: Per personalizzare l’agente e adattarlo alle esigenze dell’applicazione.

La pipeline funziona in cicli iterativi, dove ogni volta che l’agente decide di cercare informazioni, attiva il sistema di recupero e utilizza i dati per generare una risposta mirata. Questo rende il RAG adatto per sistemi aziendali, dove informazioni fresche e contestuali sono essenziali.

Esempio e Risultati

Un caso d’uso specifico prevede l’implementazione di un assistente IT all’interno di un’azienda. Seguendo le istruzioni del laboratorio:

    • I dati vengono estratti e vettorizzati.
    • I frammenti vengono cercati utilizzando l’embedded vector.
    • I dati vengono riordinati per importanza e utilizzati per rispondere alle domande con riferimento all’origine (es. [KB]).
    • Le informazioni vengono generite dinamicamente in base all’analisi contestuale.

Questi passaggi illustrano un esempio realistico del potenziale pratico dell’approccio agentic RAG con NVIDIA Nemotron.

Con