Chunking e Retrieval-Augmented Generation (RAG): guida completa
Cos’è il Chunking e come funziona nei sistemi RAG
Il Chunking è una metodologia utilizzata per rendere più gestibili grandi quantità di informazioni attraverso la suddivisione di documenti estesi o articolati in porzioni di testo più brevi, chiamate chunk, ciascuna caratterizzata da una propria coerenza semantica. Questa operazione è particolarmente rilevante nell’ambito degli LLM (Large Language Models), che lavorano all’interno di una context window con dimensioni limitate e, di conseguenza, non sono in grado di analizzare integralmente file molto voluminosi o interi archivi in un’unica elaborazione.
All’interno di un’architettura Retrieval-Augmented Generation (RAG), ogni chunk viene rappresentato attraverso un vettore matematico, definito embedding, e successivamente archiviato in un database vettoriale. Quando viene formulata una richiesta, il sistema individua e recupera i segmenti di contenuto più pertinenti rispetto alla domanda. In questo modo, il modello riceve esclusivamente il contesto utile per elaborare la risposta, migliorandone la precisione e contribuendo a limitare il rischio di hallucinations o allucinazioni dell’AI.
Come suddividere i documenti in Chunk
La creazione dei chunk inizia generalmente con una fase preliminare di pre-processing, necessaria per rendere il contenuto più pulito e adatto alle successive elaborazioni. In questa fase possono essere eliminati elementi che non apportano valore informativo, come numeri di pagina, intestazioni ripetitive e tag HTML.
Una volta preparato il testo, viene applicato un algoritmo di segmentazione che provvede a suddividerlo secondo criteri prestabiliti oppure sulla base di caratteristiche sintattiche e semantiche. Nei processi più evoluti, i chunk generati possono inoltre essere corredati da metadati, ad esempio titoli, sintesi del contenuto o informazioni relative alla fonte. I segmenti così preparati vengono quindi convertiti in embedding e inseriti nell’infrastruttura di archiviazione vettoriale.
Principali tecniche di Chunking per i sistemi RAG
La modalità con cui un documento viene suddiviso dipende dalla sua struttura, dalla natura delle informazioni contenute e dal tipo di ricerca che il sistema deve effettuare. Tra le principali strategie rientrano:
- Fixed-Size Chunking (a dimensione fissa): suddivide il contenuto in segmenti della stessa lunghezza, utilizzando come riferimento caratteri, parole o token. È una soluzione rapida dal punto di vista computazionale, ma poco flessibile e può interrompere frasi o concetti nel punto sbagliato.
- Chunking Ricorsivo (Recursive Chunking): procede attraverso una gerarchia di separatori naturali, come paragrafi, frasi e parole, cercando di mantenere la struttura sintattica e la coerenza del contenuto durante la segmentazione.
- Chunking Semantico (Semantic Chunking): individua i cambiamenti di argomento analizzando la similarità semantica tra frasi consecutive attraverso gli embedding. In questo modo, la separazione dei segmenti avviene principalmente quando cambia il significato o il tema trattato.
- Agentic e Dynamic AI Chunking: affida ad agenti AI o LLM l’analisi del contenuto e dell’intento dell’utente, permettendo al sistema di identificare dinamicamente i punti di suddivisione più appropriati e di associare ai chunk specifici metadati.
- Chunking Gerarchico e a Finestra Scorrevole: mantiene le relazioni tra gli elementi genitore e figlio all’interno di un documento oppure utilizza segmenti parzialmente sovrapposti per garantire una maggiore continuità tra blocchi consecutivi.
Come scegliere la dimensione ottimale dei Chunk
La definizione della corretta chunk size richiede di trovare un equilibrio tra la quantità di informazioni contenute in ciascun segmento e la necessità di mantenere un contesto sufficientemente coerente. Chunk eccessivamente piccoli possono infatti separare informazioni che dovrebbero essere interpretate insieme, portando a risposte incomplete o frammentarie.
Al contrario, segmenti troppo estesi possono includere una quantità elevata di informazioni non pertinenti, introducendo maggiore rumore nel processo di retrieval. Questo può ridurre la precisione della ricerca vettoriale e comportare un incremento dei costi legati alle API.
Per le attività di ricerca e question answering (Q&A) vengono generalmente utilizzati blocchi compresi tra 200 e 500 token, mentre nei processi di sintesi di contenuti particolarmente complessi la dimensione può arrivare fino a circa 2.000 token. Non esiste tuttavia una misura universale: la configurazione più efficace dovrebbe essere individuata attraverso test pratici e valutazioni delle performance in relazione allo specifico caso d’uso.
Chunk Overlap: cos’è e a cosa serve
Con Chunk Overlap si identifica la parziale sovrapposizione di contenuto tra due chunk consecutivi. L’overlap viene generalmente impostato tra il 10% e il 20%, mentre negli approcci basati su una finestra scorrevole può arrivare fino al 50%.
La funzione dell’overlap è principalmente quella di mantenere la continuità del contesto tra segmenti adiacenti. In questo modo si riduce il rischio che informazioni importanti, collocate proprio in prossimità del punto di separazione, vengano suddivise tra due blocchi o vadano perse nelle fasi successive di vettorializzazione.
È comunque importante evitare valori di overlap eccessivamente elevati. Una sovrapposizione troppo ampia comporta infatti una maggiore duplicazione delle informazioni, con conseguente aumento dello spazio necessario per lo storage nei database vettoriali e dei tempi richiesti per l’elaborazione.
Agente Margot AI e RAG
Margot AI è una piattaforma di agenti AI personalizzabili progettata per supportare l’automazione del Customer Service e del supporto aziendale. La soluzione comprende diversi moduli dedicati all’automazione, tra cui un classificatore automatico dei ticket, un assistente virtuale, un chatbot conversazionale e uno strumento per la gestione della Knowledge Base aziendale.
Margot può integrarsi con gli ambienti aziendali di Helpdesk, CRM e Ticketing, consentendo di automatizzare i workflow, gestire e sintetizzare conversazioni articolate e indirizzare le richieste verso i corretti destinatari.
Il sistema cognitivo di Margot, basato su un’architettura RAG, permette di generare risposte accurate recuperando le informazioni direttamente dai documenti aziendali. Il trattamento dei dati avviene nel rispetto della privacy e della conformità al GDPR, senza utilizzare i dati degli utenti per l’addestramento dei modelli.
Contatta il nostro team commerciale per attivare Margot e i suoi agenti AI personalizzabili