Quando si utilizzano grandi raccolte di testi, pagine o documenti per alimentare modelli di intelligenza artificiale, la fase di preprocessing assume un ruolo decisivo. È qui che il materiale grezzo, parole, paragrafi, tabelle o rapporti, viene trasformato in conoscenza strutturata, comprensibile e riutilizzabile da un modello di linguaggio.
Una delle tecniche centrali di questa fase è il chunking, cioè la suddivisione dei testi in frammenti di dimensioni gestibili, detti chunk. Questa operazione è necessaria perché ogni modello ha un limite alla quantità di testo che può "vedere" contemporaneamente (la finestra di contesto). Tutto ciò che rientra in questa finestra è disponibile al modello per generare la risposta; tutto ciò che ne resta fuori non è considerato.
La finestra di contesto
Il chunking è strettamente legato alla dimensione della finestra di contesto. In un modello con finestra limitata (per esempio 8.000 token), solo pochi chunk possono essere inseriti insieme alla domanda dell'utente. In modelli più avanzati, come GPT-5 o LLaMA 4, è possibile includere decine o centinaia di chunk, ma ciò non significa che convenga farlo.
Nella progettazione di una soluzione RAG (Retrieval-Augmented Generation), il principio non è "più è meglio", ma "solo ciò che serve". Riempire la finestra con troppo testo può confondere il modello, rallentare l'elaborazione e aumentare i costi. Al contrario, una finestra troppo scarna rischia di produrre risposte incomplete.
Ottimizzazione e sicurezza
Le soluzioni customizzate, come quelle sviluppate su Microsoft Fabric o Azure OpenAI, consentono di regolare con precisione questo equilibrio. Il sistema può selezionare dinamicamente il numero di chunk da inviare al modello in base alla finestra di contesto disponibile, adattare la lunghezza dei frammenti (ad esempio 300, 700 o 1.000 token) e rivalutarne la pertinenza tramite moduli di re-ranking o contextual compression.
Oltre alla gestione del volume di dati, il chunking è anche un momento di controllo qualitativo e di sicurezza. Ogni documento deve essere verificato, pulito e segmentato in modo coerente, perché ciò che viene inserito nei chunk finirà direttamente nella finestra di contesto del modello.
Durante questa fase, vengono applicati controlli specifici:
- Validazione dei formati per escludere script, macro e contenuti attivi
- Sanitizzazione del testo per rimuovere markup, caratteri invisibili o simboli Unicode anomali
- Filtri anti prompt injection che rilevano istruzioni nascoste potenzialmente manipolative
- Protezione DLP (Data Loss Prevention) per mascherare dati sensibili come email, codici o chiavi API
- Metadati di provenienza che accompagnano ogni chunk con informazioni su fonte, autore e livello di fiducia
RAG e retrieval adattivo
La RAG consente al modello di accedere a basi documentali più grandi della propria finestra di contesto, recuperando solo i frammenti più pertinenti. Quando l'utente formula una domanda, il sistema seleziona e inserisce nella finestra i chunk necessari, insieme alla richiesta.
Una finestra ampia permette di includere più informazioni, ma anche di introdurre confusione se il retrieval non è calibrato. Le soluzioni avanzate adottano perciò un retrieval adattivo, capace di variare il numero di chunk in funzione della domanda, sintetizzare quelli troppo lunghi e bilanciare pertinenza e diversità dei contenuti.
Conclusione
Il chunking è la fase in cui il dato diventa conoscenza gestibile. Una corretta strategia di suddivisione, pulizia e calibrazione dei chunk, in rapporto alla finestra di contesto e al comportamento della RAG, garantisce che il modello riceva solo le informazioni giuste, nel momento giusto. Il risultato è un sistema più efficiente, sicuro e preciso: capace non solo di rispondere, ma di farlo con consapevolezza del proprio contesto.
In definitiva, il chunking è la grammatica silenziosa che permette all'intelligenza artificiale di pensare in modo ordinato, pertinente e affidabile.
