Servizi > Chunk

1.4.4.1 Chunk

Un chunk rappresenta un blocco di dati o informazioni trattato come se fosse una singola unità, che può essere gestita separatamente. La divisione dei dati o delle informazioni in chunk serve a facilitarne l'elaborazione, l'archiviazione e la ricerca.
Sei i dati da elaborare fossero un libro, i chunk potrebbero essere considerati come i capitoli, le pagine, i paragrafi, le frasi, ecc..
I chunk, in caso di NLP (Natural Language Processing), si conteggiano in token che, a seconda del modello AI utilizzato, corrisponde a parole o caratteri o sub-parole.
 

Chunk Size

Rappresenta il numero di token, di un documento testuale (DOC, PDF, TXT, ecc.), conteggiati per creare una rappresentazione vettoriale, che sarà poi salvata nel database tramite il processo di embedding.
In caso di NLP un Chunk Size appropriato potrebbe essere compreso tra 1.000 e 10.000 token.
In altri contesti di ML (Machine Learning) potrebbe variare ampiamente.
 

Chunk Overlap

Indica di quanti token i vari chunk si devono sovrapporre, per garantire che ci sia continuità e coerenza contestuale tra i dati.
In caso di NLP un Chunk Overlap appropriato potrebbe essere un valore tra il 5% ed il 20% del Chunk Size.
In altri contesti di ML potrebbe variare ampiamente.
 
Non esistono impostazioni standard dei valori Chunk Size e Chunk Overlap, questi cambiano a seconda dei dataset, dei modelli AI e delle risorse hardware. I valori qui forniti sono puramente di esempio e potrebbero non essere appropriati a specifiche casistiche.
 

Esempio

Impostando Chunk Size con valore 10 e Chunk Overlap con valore 2 avremo la seguente situazione.
 
testo composto da x token
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 .. ..
 
chunk 0  
01 02 03 04 05 06 07 08 09 10  
 
  chunk 1  
  09 10 11 12 13 14 15 16 17 18  
 
  chunk 2  
  17 18 19 20 21 22 23 24 25 26  
 
  chunk 3
  25 26 27 28 .. ..
Legenda
 
x singolo token
 

Il chunk 0 partirà del 1° token e arriverà al 10° token, dal momento che il Chunk Size è stato impostato con valore 10.

Avendo inserito 2 come valore del Chunk Overlap, dalla fine del chunk 0 (10° token) saranno conteggiati gli ultimi 2 token (10°, 9°) arrivando così al 9° token, quindi il chunk 1 partirà dal 9° token e arriverà al 18° token, il chunk 2 dal 17° token al 26° token , il chunk 3 dal 25° token al 34° token, ecc..

Tutti i chunk (ad esclusione del primo e dell'ultimo) avranno i primi 2 token presi dal chunk precedente e gli ultimi 2 token presi dal chunk successivo.

Se i valori impostati fossero 1.500 per il Chunk Size e 100 per il Chunk Overlap avremmo:
  • chunk 0 - dal 1° token al 1.500° token;
  • chunk 1 - dal 1.401° token al 2.900° token;
  • chunk 2 - dal 2.801° token al 4.300° token;
  • ecc.
 
Quanto è stata utile questa guida?

Non hai trovato quello che cerchi?

Contatta i nostri esperti, sono a tua disposizione.