Calcolatore del chunking per RAG
Dati di input
| Token del documento | 8.000 |
|---|---|
| Dimensione del chunk | 512 |
| Sovrapposizione tra chunk | 64 |
Calcolatore del chunking per RAG
Calcola in quanti chunk sovrapposti viene suddiviso un documento per la generazione aumentata dal recupero e quanti token vengono inviati al modello di embedding.
Dati di input
Documento
Suddivisione in chunk
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
Chunking per RAG
La generazione aumentata dal recupero (RAG) risponde a una domanda cercando prima i passaggi rilevanti in una raccolta di documenti e fornendoli poi a un modello linguistico. Poiché un intero documento è di solito troppo lungo per ricevere l'embedding ed essere recuperato come un'unica unità, ogni documento viene prima suddiviso in parti più piccole chiamate chunk. Il chunking è il passaggio che decide come tagliare quelle parti e influenza sia la qualità del recupero sia il costo degli embedding. Questo calcolatore indica quanti chunk produce un documento di una data lunghezza e quanti token vengono inviati al modello di embedding.
Come funziona il chunking
Uno splitter fa scorrere sul documento una finestra di dimensione fissa. La
finestra è larga chunk_size token e, dopo aver emesso ogni chunk, avanza di un
passo anziché dell'intera larghezza, così che i chunk consecutivi condividano una
fascia di chunk_overlap token. La sovrapposizione esiste affinché
un'informazione a cavallo di un confine compaia comunque intera in almeno un
chunk: senza di essa, una frase tagliata in due potrebbe non essere recuperabile
da nessuna delle due metà.
Il passo è la dimensione del chunk meno la sovrapposizione:
s=c−oUn documento di token è coperto una volta che il primo chunk ha consumato token di vantaggio iniziale e i rimanenti token sono stati percorsi a passi di , il che richiede
n=⌈sT−o⌉chunk. L'arrotondamento per eccesso tiene conto dell'ultima finestra, eventualmente più corta. Ognuno degli chunk riceve l'embedding alla sua dimensione piena, quindi i token totali inviati al modello di embedding sono
Temb=n⋅cPoiché ogni chunk successivo al primo ripete token, è maggiore del valore originale ogni volta che la sovrapposizione è diversa da zero.
Esempio svolto
Si consideri un documento di 8.000 token, suddiviso con una dimensione del chunk di 512 e una sovrapposizione di 64. La finestra avanza di
s=512−64=448 tokene il numero di chunk è
n=⌈4488000−64⌉=⌈4487936⌉=⌈17,71⌉=18L'embedding di tutti i 18 chunk alla dimensione piena invia
Temb=18×512=9216 tokenal modello di embedding. La sovrapposizione ha gonfiato il volume con embedding da 8.000 a 9.216 token — circa il 15% in più — che è il prezzo pagato per mantenere intatti i passaggi a cavallo dei confini. Quel rapporto è vicino alla dimensione del chunk divisa per il passo, .
Note e varianti
Gli splitter reali raramente tagliano in corrispondenza di confini di token esatti. La maggior parte rispetta le interruzioni di frase o di paragrafo, perciò i chunk variano in lunghezza e il conteggio differisce leggermente dalla stima a finestra uniforme proposta qui. Gli splitter ricorsivi e semantici adattano i confini alla struttura naturale, scambiando uniformità con coerenza. La frazione di sovrapposizione è la leva principale sul volume con embedding: una sovrapposizione del 50% raddoppia all'incirca i token con embedding, mentre una sovrapposizione nulla genera l'embedding esattamente della lunghezza del documento ma rischia di spezzare le informazioni.
Applicazioni
Il numero di chunk determina il dimensionamento a valle. Ogni chunk diventa un vettore, quindi alimenta direttamente l'occupazione dell'indice calcolata da Calcolatore della dimensione di un database vettoriale, e il totale dei token con embedding fissa la spesa una tantum per gli embedding stimata da Calcolatore del costo degli embedding. Regolare la dimensione del chunk e la sovrapposizione significa quindi bilanciare in un colpo solo la precisione del recupero rispetto sia allo spazio di archiviazione sia al costo degli embedding.
Domande frequenti (FAQ)
Perché aggiungere una sovrapposizione tra i chunk?
Una suddivisione netta può tagliare a metà una frase, una riga di tabella o un'informazione, lasciando entrambi i chunk privi del dato completo. La sovrapposizione ripete la parte finale di un chunk all'inizio del successivo, così che un passaggio a cavallo di un confine compaia comunque intatto in almeno un chunk.
Il compromesso è che i token ripetuti ricevono l'embedding più di una volta, il che aumenta il costo degli embedding e aggiunge all'indice voci quasi duplicate.
Quale dimensione del chunk conviene usare?
Non esiste un valore migliore in assoluto; dipende dal contenuto e dal tipo di recupero. I chunk più piccoli, intorno ai 256–512 token, isolano una singola idea per chunk e recuperano in modo preciso, il che si adatta alla ricerca di fatti puntuali. I chunk più grandi, da 1.000 token in su, conservano più contesto circostante, utile per la sintesi e per le domande di ragionamento.
Un punto di partenza diffuso sono 512 token con una sovrapposizione del 10–20%, da regolare poi in base alla qualità del recupero.
Perché ricevono l'embedding più token di quelli contenuti nel documento?
Ogni chunk successivo al primo ripete la regione di sovrapposizione del chunk precedente, quindi quei token ricevono l'embedding due volte. Il totale dei token con embedding è il numero di chunk moltiplicato per la dimensione del chunk, che supera la lunghezza grezza del documento ogni volta che è presente una sovrapposizione.
Il rapporto tra token con embedding e token del documento è all'incirca la dimensione del chunk divisa per il passo, perciò una sovrapposizione marcata può gonfiare il volume degli embedding ben oltre la dimensione originale del documento.
Avvertenze legali
Il conteggio dei token dipende dal tokenizzatore del modello e dal modo in cui lo splitter gestisce i confini di frase e di paragrafo; le pipeline reali producono raramente chunk perfettamente uniformi. Conviene considerare questi valori come stime di pianificazione e verificare i conteggi esatti e la spesa per gli embedding con i propri strumenti.
Da provare dopo
Calcolatore del costo degli embedding
Stima il costo una tantum per generare gli embedding di un corpus di documenti partendo dal numero di documenti, dai token per documento e dal prezzo per milione di token del modello di embedding.
Calcolatore della dimensione di un database vettoriale
Stima lo spazio di archiviazione occupato da un indice di embedding partendo dal numero di vettori, dalla dimensione del vettore, dai byte per valore e dal sovraccarico dell'indice aggiunto dalle strutture di ricerca approssimata del vicino più prossimo.