Chunking
Ultimo aggiornamento:
Che cos'è il chunking
I sistemi di ricerca e i modelli linguistici funzionano meglio con passaggi mirati che con documenti interi. Un manuale di 40 pagine tratta decine di argomenti, quindi un unico embedding dell'intero manuale sarebbe una media confusa di tutti. Il chunking divide il manuale in passaggi dedicati a un solo tema, così ognuno può essere trovato da solo.
Ogni chunk viene salvato con un riferimento alla sua fonte, così il sistema sa da quale pagina o file proviene una risposta.
Come funziona
Esistono diverse strategie comuni, e molti sistemi le combinano:
- Dimensione fissa: il testo viene diviso ogni N caratteri o token. È semplice, ma può spezzare frasi e concetti a metà.
- Basato sulla struttura: la divisione segue paragrafi, titoli o frasi, così le unità naturali restano intere.
- Sovrapposizione: un po' di testo della fine di un chunk viene ripetuto all'inizio del successivo, per non perdere il contesto al confine.
- Chunking semantico: un nuovo chunk inizia dove cambia l'argomento, individuato tramite gli embedding.
Scegliere la dimensione dei chunk
La dimensione dei chunk è un compromesso. I chunk piccoli sono precisi ma possono perdere contesto, per esempio una frase come «questo vale per tutti gli ordini» senza la frase che spiega cosa sia «questo». I chunk grandi conservano il contesto ma diluiscono l'embedding, quindi corrispondono a meno domande specifiche, e occupano più spazio nella finestra di contesto del modello.
Esempio: la pagina FAQ di un hotel tratta orari di check-in, parcheggio, animali e colazione. Senza chunking, una domanda sugli animali recupererebbe l'intera pagina e la risposta potrebbe mescolare dettagli estranei. Con un chunking per paragrafi, la sezione sugli animali diventa un chunk a sé e offre al modello una fonte pulita e mirata.
Perché conta per i chatbot aziendali
Il chunking è facile da trascurare, ma incide su ogni risposta. Chunk fatti male causano due errori tipici: l'informazione giusta non viene recuperata perché è sepolta in un passaggio che parla d'altro, oppure viene recuperata senza la frase che ne indica le condizioni. Contenuti ben strutturati aiutano. Sezioni brevi con titoli chiari si dividono bene, mentre lunghi muri di testo o tabelle convertite in testo semplice sono più difficili da spezzare in modo pulito.
Come lo gestisce intoCHAT
intoCHAT divide automaticamente i tuoi contenuti in chunk quando addestri una fonte. Il testo viene diviso seguendo paragrafi e frasi, con una piccola sovrapposizione tra chunk vicini, così i concetti a cavallo di un confine restano interi. Ogni chunk riceve poi un embedding e viene cercato con la ricerca ibrida. Non devi scegliere una dimensione: la cosa più utile che puoi fare è mantenere ben strutturati i contenuti di partenza.