Che cosa sono i token?
I token sono i mattoni che compongono il testo elaborato dai modelli OpenAI. Possono essere lunghi quanto un singolo carattere o quanto un’intera parola, a seconda della lingua e del contesto. Spazi, punteggiatura e parti di parole contribuiscono tutti al conteggio dei token. È così che l’API segmenta internamente il testo prima di generare una risposta.
Regole pratiche utili per l’inglese:
1 token ≈ 4 caratteri
1 token ≈ ¾ di una parola
100 token ≈ 75 parole
1–2 frasi ≈ 30 token
1 paragrafo ≈ 100 token
~1.500 parole ≈ 2.048 token
La tokenizzazione può variare in base alla lingua. Ad esempio, “Cómo estás” (spagnolo per “Come stai”) contiene 5 token per 10 caratteri. I testi non in inglese spesso producono un rapporto token/caratteri più elevato, che può incidere su costi e limiti.
Esempi
Ecco alcuni esempi di testo reali con il rispettivo conteggio approssimativo di token:
La citazione di Wayne Gretzky “You miss 100% of the shots you don’t take” = 11 token
Lo Statuto di OpenAI = 476 token
La Dichiarazione d’Indipendenza degli Stati Uniti = 1.695 token
Come si calcolano i conteggi dei token
Quando invii testo all’API:
Il testo viene suddiviso in token.
Il modello elabora questi token.
La risposta viene generata come una sequenza di token, quindi riconvertita in testo.
L’utilizzo dei token viene tracciato in diverse categorie:
Token di input – token nella tua richiesta.
Token di output – token generati nella risposta.
Token in cache – token riutilizzati nella cronologia della conversazione (spesso fatturati a una tariffa ridotta).
Token di ragionamento – in alcuni modelli avanzati, vengono inclusi internamente passaggi extra di “ragionamento” prima di produrre l’output finale.
Questi conteggi compaiono nei metadati della risposta dell’API e vengono usati per la fatturazione e il monitoraggio dell’utilizzo.
Per approfondire la tokenizzazione, puoi usare il nostro strumento interattivo Tokenizer, che ti consente di calcolare il numero di token e vedere come il testo viene suddiviso in token.
In alternativa, se vuoi tokenizzare il testo a livello di codice, usa Tiktoken come tokenizer BPE veloce usato specificamente per i modelli OpenAI.
Limiti di token
Ogni modello ha un limite massimo di token complessivi (input + output). Gli attuali modelli ad alta capacità supportano fino a centinaia di migliaia di token nel contesto, anche se i limiti pratici possono variare in base alla versione del modello e al tuo livello di utilizzo.
Se superi il limite, puoi:
Accorciare o riformulare i prompt.
Suddividere testi lunghi in parti più piccole.
Riassumere o pre-elaborare gli input prima di inviarli.
Prezzo dei token
L’utilizzo dell’API è tariffato per token, e varia in base al modello e al fatto che i token siano di input, di output o in cache. Consulta la pagina prezzi di OpenAI per le tariffe aggiornate. Alcuni modelli di ragionamento possono usare più token internamente, ma mirano a migliorare l’efficienza riducendo il numero di token necessari per completare un’attività.
Esplorare i token
L’API tratta le parole in base al loro contesto nei dati del corpus. I modelli prendono il prompt, convertono l’input in un elenco di token, elaborano il prompt e convertono i token previsti di nuovo nelle parole che vediamo nella risposta.
Ciò che a noi può sembrare costituito da due parole identiche può essere generato come token diversi a seconda di come sono strutturate nel testo. Osserva come l’API genera i valori dei token per la parola ‘red’ in base al suo contesto nel testo:
Nel primo esempio qui sopra, il token “2266” per ‘ red’ include uno spazio finale (nota: questi sono ID di token di esempio a scopo dimostrativo).
Il token “2296” per ‘ Red’ (con uno spazio iniziale e l’iniziale maiuscola) è diverso dal token “2266” per ‘ red’ con la lettera minuscola.
Quando ‘Red’ viene usato all’inizio di una frase, il token generato non include uno spazio iniziale. Il token “7738” è diverso dai due esempi precedenti della parola.
Osservazioni:
Più un token è probabile/frequente, più basso è il numero di token assegnato:
Il token generato per il punto è lo stesso (“13”) in tutte e 3 le frasi. Questo perché, contestualmente, il punto viene usato in modo piuttosto simile in tutto il corpus.
Il token generato per ‘red’ varia a seconda della sua posizione nella frase:
Minuscolo al centro di una frase: ‘ red’ - (token: “2266”)
Maiuscolo al centro di una frase: ‘ Red’ - (token: “2297”)
Maiuscolo all’inizio di una frase: ‘Red’ - (token: “7738”)
