Vai al contenuto

Contatore di Token Gratuito per GPT-4, ChatGPT e Modelli AI

Contatore di token preciso utilizzando la libreria tiktoken di OpenAI. Conta i token per i modelli GPT-4, ChatGPT e GPT-3. Gestisci i costi API e ottimizza i prompt AI istantaneamente.

Contatore di Token

Codifica

Input non valido

Calcolatore di caricamento...
📚

Documentazione

Che cos'è un contatore di token?

Un contatore di token misura in quanti token viene suddiviso un testo quando un modello linguistico di IA lo legge. I token sono piccoli segmenti di testo — parole intere, parti di parole o segni di punteggiatura — che modelli come GPT-4 e ChatGPT elaborano invece delle singole lettere. Questo strumento usa tiktoken, la libreria open source per la tokenizzazione pubblicata da OpenAI, quindi i conteggi corrispondono a quelli prodotti dai modelli e dalle API ufficiali di OpenAI.

Come funziona la tokenizzazione

Un tokenizer non si limita a contare le parole. Elabora il testo con un algoritmo chiamato byte pair encoding (BPE). L'algoritmo parte dai singoli byte del testo e unisce ripetutamente le coppie adiacenti più comuni, sulla base degli schemi appresi da una grande quantità di testo durante l'addestramento. Il risultato è un vocabolario fisso composto da decine di migliaia di segmenti comuni: parole brevi intere, frammenti frequenti di parole e singoli caratteri per gli elementi rari.

Per questo motivo, una parola inglese spesso diventa un solo token, mentre le parole più lunghe o insolite possono essere suddivise in due o più token. Gli spazi vengono di solito associati all'inizio del token successivo, invece di essere conteggiati separatamente, e i segni di punteggiatura sono in genere token autonomi.

Codifiche supportate da questo strumento

Tiktoken offre diverse codifiche, ciascuna associata a una famiglia di modelli OpenAI. Questo strumento ne supporta tre:

CodificaUtilizzata daDimensione approssimativa del vocabolario
cl100k_baseModelli della famiglia GPT-3.5 e GPT-4, ChatGPTcirca 100.000 token
p50k_baseModelli GPT-3 successivicirca 50.000 token
r50k_baseModelli GPT-3 precedenti e GPT-2circa 50.000 token

cl100k_base è selezionata per impostazione predefinita, poiché comprende la famiglia di modelli utilizzata dalla maggior parte delle persone oggi. Lo stesso testo può produrre un conteggio diverso con ciascuna codifica, perché ognuna è stata addestrata su testi differenti e combina i caratteri in modo diverso.

Come calcolare il numero di token

Non esiste una semplice formula aritmetica per trasformare il numero di caratteri o di parole in un numero di token, perché le combinazioni BPE dipendono dal testo specifico e dal vocabolario addestrato. L'unico metodo esatto consiste nell'elaborare il testo con il tokenizer stesso:

  1. Scegliere la codifica corrispondente al modello di destinazione.
  2. Passare il testo al tokenizer di quella codifica.
  3. Contare l'elenco risultante degli ID dei token. La lunghezza di tale elenco è il numero di token.

Come stima approssimativa per i testi in inglese, un token corrisponde a circa quattro caratteri o a circa tre quarti di una parola. Si tratta solo di un'indicazione. Numeri, codice, testi non inglesi e grafie insolite possono modificare molto questo rapporto.

Esempio pratico

Consideriamo la frase inglese:

"Tokenization splits text into pieces."

Con la codifica cl100k_base, tiktoken la suddivide in 7 token:

Token, ization, splits, text, into, pieces, .

Si noti che la parola inglese "Tokenization" viene suddivisa in due token, "Token" e "ization", mentre tutte le altre parole restano intere. Il punto finale è un token autonomo. Per questo una frase di 37 caratteri composta da 5 parole produce 7 token invece di 6.

Perché il numero di token è importante

I fornitori di IA addebitano l'utilizzo delle API in base al numero di token, conteggiando sia il testo inviato sia quello generato nella risposta. Il conteggio dei token consente quindi di prevedere il costo prima di inviare una richiesta. Ogni modello ha inoltre una lunghezza massima del contesto, cioè un limite al numero di token che una singola richiesta e la relativa risposta possono contenere complessivamente. Questo limite varia in base al modello e cambia quando i fornitori pubblicano nuove versioni. È quindi preferibile verificarlo nella documentazione aggiornata del modello utilizzato, invece di affidarsi alla memoria.

Domande frequenti

Che cos'è un token nei modelli linguistici di IA?
Un token è un segmento di testo che un modello linguistico legge come un'unità. Può essere una parola breve intera, una parte di una parola più lunga, un segno di punteggiatura o uno spazio associato alla parola successiva.

Perché codifiche diverse producono conteggi diversi per lo stesso testo?
Ogni codifica è stata addestrata su un proprio campione di testi e ha creato un proprio vocabolario di segmenti comuni. Una parola abbastanza frequente da essere un singolo token in un vocabolario potrebbe non esserlo in un altro, venendo quindi suddivisa in modo diverso.

La punteggiatura viene conteggiata come token?
Sì. I segni di punteggiatura vengono generalmente conteggiati come token autonomi oppure, in alcuni casi, uniti al carattere adiacente, a seconda della frequenza con cui quella combinazione è comparsa durante l'addestramento del tokenizer.

Un token equivale a una parola?
No. Le parole brevi e comuni sono generalmente un token ciascuna. Le parole più lunghe o meno comuni, così come la maggior parte delle parole diverse da quelle inglesi, vengono spesso suddivise in due o più token.

Quanto è preciso questo strumento?
Conta i token utilizzando la libreria tiktoken di OpenAI, applicando la stessa logica di codifica usata internamente da OpenAI. Il conteggio corrisponde quindi a quello restituito da una chiamata all'API OpenAI per lo stesso testo e la stessa codifica.

Questo strumento può contare i token dei modelli non OpenAI?
Utilizza le codifiche di tiktoken, create per i modelli OpenAI. Altri fornitori, come Anthropic o Google, usano tokenizer propri, che possono produrre conteggi diversi per lo stesso testo.

Riferimenti

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, et al. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508.07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., et al. "Language Models are Few-Shot Learners." arXiv:2005.14165, 2020, http://arxiv.org/abs/2005.14165.