AI Engineering Academy · Lezione

Che cos'è un token?

Utilizzerà la libreria tiktoken per tokenizzare testo reale e scoprire come parole, punteggiatura e spazi bianchi corrispondono a sequenze di token nei diversi modelli.

Lezione 1 di 413 passaggi

Che cos'è un token? è una lezione AI Engineering Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Engineering Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Engineering Academy include 4 lezioni in totale.

Gli LLM elaborano token, non parole

Quando invia del testo a un LLM, il modello non vede caratteri o parole: vede token. Un token è una porzione di testo che il vocabolario del modello associa a un singolo ID intero. A seconda del tokenizer, i token possono essere parole intere, parti di parole, segni di punteggiatura o spazi.

Comprendere i token è importante nella pratica perché i prezzi di OpenAI sono calcolati per token, la finestra di contesto viene misurata in token e la lunghezza massima della risposta è controllata da max_tokens. Le sorprese relative ai costi e al comportamento dipendono quasi sempre da una comprensione errata del modo in cui il testo viene tokenizzato.

Come funziona la tokenizzazione: BPE

I modelli GPT utilizzano la tokenizzazione Byte Pair Encoding (BPE). BPE parte da un vocabolario di singoli byte e unisce iterativamente le coppie adiacenti più frequenti fino a raggiungere la dimensione di vocabolario desiderata. I modelli GPT di OpenAI utilizzano un vocabolario di circa 100.000 token.

Di conseguenza, le parole comuni diventano token singoli (hello è un token), mentre le parole rare o inventate vengono suddivise in più token di sottoparole (subaqueous potrebbe diventare tre token: sub, aque, ous). In questo modo il modello può gestire qualsiasi testo, anche parole mai viste prima, componendole a partire da parti più piccole e familiari.

Utilizzare tiktoken per contare i token

OpenAI mette a disposizione la libreria tiktoken per tokenizzare il testo localmente senza effettuare una chiamata API. È essenziale per contare i token prima di inviare una richiesta, stimare i costi e verificare di rientrare nella finestra di contesto.

import tiktoken

# Get the encoding for a specific model
enc = tiktoken.encoding_for_model('gpt-4o')

text = 'Hello! How many tokens does this sentence use?'
tokens = enc.encode(text)

print(f'Text: {text}')
print(f'Token count: {len(tokens)}')
print(f'Token IDs: {tokens}')

# You can also decode tokens back to text
decoded = enc.decode(tokens)
print(f'Decoded: {decoded}')

# Inspect individual token strings
for token_id in tokens:
    token_str = enc.decode([token_id])
    print(f'  Token {token_id}: "{token_str}"')

Conteggio pratico dei token

Una regola pratica utile: 1 token ≈ 4 caratteri di testo inglese, ovvero circa 0,75 parole. Quindi 1.000 token corrispondono approssimativamente a 750 parole o a 3-4 pagine di testo. Tuttavia, questo rapporto varia notevolmente:

  • Parole inglesi comuni: ~1 token ciascuna
  • Termini tecnici non comuni: 2-4 token ciascuno
  • Numeri: spesso 1 cifra per token (quindi '12345' equivale a 5 token)
  • Codice: varia molto, ma Python è generalmente efficiente, con circa 1-2 token per simbolo
  • Scritture non latine (cinese, arabo): spesso 1 token per carattere, il che le rende molto più costose per parola rispetto all’inglese

Tokenizzazione di diversi tipi di contenuto

Vediamo come il numero di token può variare notevolmente tra diversi tipi di contenuto utilizzando tiktoken.

import tiktoken

enc = tiktoken.encoding_for_model('gpt-4o')

examples = {
    'English sentence': 'The quick brown fox jumps over the lazy dog.',
    'Number sequence': '1234567890',
    'Python code': 'def fibonacci(n):\n    if n <= 1:\n        return n\n    return fibonacci(n-1) + fibonacci(n-2)',
    'Technical jargon': 'autoregressive transformers tokenization subword BPE',
    'URL': 'https://api.openai.com/v1/chat/completions',
    'Chinese text': '大型语言模型使用令牌处理文本',
}

for label, text in examples.items():
    count = len(enc.encode(text))
    ratio = len(text) / count
    print(f'{label}: {count} tokens ({ratio:.1f} chars/token)')

Come vengono tokenizzati i messaggi di chat

Il numero totale di token in una chiamata all’API chat include non solo il contenuto testuale dei messaggi, ma anche l’overhead di formattazione aggiunto dal template della chat. Ogni messaggio contiene alcuni token aggiuntivi per l’etichetta del ruolo e i delimitatori. La documentazione di OpenAI specifica la seguente formula:

  • Ogni messaggio aggiunge circa 4 token di overhead di formattazione
  • Ogni risposta inizia con 3 token aggiuntivi per l’inizializzazione del ruolo assistant

Per le conversazioni brevi questo overhead è trascurabile, ma per i sistemi che gestiscono conversazioni lunghe si accumula. La libreria tiktoken fornisce funzioni di supporto per contare correttamente i token di un array completo di messaggi.

import tiktoken

def count_messages_tokens(messages, model='gpt-4o'):
    enc = tiktoken.encoding_for_model(model)
    # 4 tokens per message (role + content structure), 3 for reply priming
    total = 3
    for msg in messages:
        total += 4
        for key, value in msg.items():
            total += len(enc.encode(str(value)))
    return total

messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': 'What is the capital of France?'},
    {'role': 'assistant', 'content': 'The capital of France is Paris.'},
    {'role': 'user', 'content': 'And what is the population?'},
]

print(f'Total tokens: {count_messages_tokens(messages)}')

Limiti dei token per modello

Ogni modello dispone di una finestra di contesto massima, misurata in token. Nel 2025, alcuni limiti rappresentativi includono:

  • gpt-4o: contesto di 128.000 token, fino a 16.384 token di output
  • gpt-4o-mini: contesto di 128.000 token, fino a 16.384 token di output
  • Claude 3.5 Sonnet: contesto di 200.000 token
  • Gemini 1.5 Pro: contesto di 1.000.000 di token

La somma dei token di input e dei token di output non deve superare la finestra di contesto. Se la supera, si verifica un errore context_length_exceeded. Verifichi sempre il numero di token prima di inviare richieste relative a documenti lunghi.

Token e prezzi

OpenAI applica costi separati per i token di input (il prompt che invia) e i token di output (la risposta che riceve). I token di output sono in genere 3-4 volte più costosi di quelli di input perché richiedono una generazione sequenziale. All’inizio del 2025, un prezzo indicativo per gpt-4o-mini è di circa 0,15 $ per milione di token di input e 0,60 $ per milione di token di output.

Ciò significa che un prompt di 2.000 token con una risposta di 500 token costa approssimativamente (0,15 $ × 2/1000 + 0,60 $ × 0,5/1000) = 0,00060 $ per richiesta. Con 10.000 richieste al giorno, il costo è di 6 $ al giorno: gestibile, ma destinato a crescere con l’utilizzo. A livello di produzione, caching, instradamento dei modelli e riduzione dei token diventano tutti aspetti importanti.

Ridurre il numero di token senza perdere significato

I prompt più brevi costano meno e lasciano più spazio alla risposta del modello. Tra le tecniche comuni per ridurre i token vi sono:

  • Rimuovere le istruzioni ridondanti: «La prego di essere così gentile da...» → «Per favore...»
  • Comprimere gli esempi: utilizzi il minor numero possibile di parole in ogni esempio few-shot
  • Abbreviare i nomi dei campi nei prompt strutturati: utilizzi «Q:» e «A:» invece di «Domanda:» e «Risposta:»
  • Utilizzare JSON anziché prosa per il contesto strutturato: JSON è più efficiente in termini di token rispetto alle descrizioni in prosa degli stessi dati

Esegua tiktoken prima e dopo ogni compressione per verificare di aver effettivamente risparmiato token: alcune «compressioni» aumentano il numero di token in modo controintuitivo.

Token speciali e token di controllo

Oltre ai token di testo, il vocabolario del modello include token speciali utilizzati per strutturare gli input. Esempi comuni sono <|endoftext|> (indica la fine di un documento), <|im_start|> e <|im_end|> (delimitatori dei messaggi di chat nel formato ChatML utilizzato internamente).

Quando utilizza l’API OpenAI, non deve gestirli direttamente: se ne occupa l’SDK. Tuttavia, sapere che esistono spiega perché a volte una richiesta con messaggi «vuoti» consumi comunque alcuni token. I token speciali sono anche il motivo per cui non dovrebbe mai costruire stringhe grezze contenenti pattern <|...|> nell’input dell’utente senza procedere alla sanitizzazione, poiché potrebbero interferire con la formattazione dell’input del modello.

Conti sempre i token prima dell’invio

La lezione pratica di questa lezione è la seguente: conti sempre i token prima di inviare una richiesta che includa prompt assemblati dinamicamente. Scriva una piccola funzione di supporto che utilizzi tiktoken e la richiami nel punto in cui assembla l’array di messaggi. Registri il numero di token, così potrà monitorarlo nel tempo.

Questo è particolarmente importante per i sistemi RAG: i blocchi recuperati che inserisce nel prompt possono avere dimensioni molto diverse e deve assicurarsi che il totale rimanga entro la finestra di contesto del modello. Nelle lezioni sulla pipeline RAG costruiremo esattamente questo tipo di assemblaggio del contesto consapevole dei token.

import tiktoken

def token_count(text, model='gpt-4o'):
    enc = tiktoken.encoding_for_model(model)
    return len(enc.encode(text))

def safe_assemble_prompt(system, user_content, max_tokens=120000):
    combined = system + user_content
    count = token_count(combined)
    if count > max_tokens:
        raise ValueError(
            f'Prompt too long: {count} tokens (limit {max_tokens})'
        )
    return [{'role': 'system', 'content': system},
            {'role': 'user', 'content': user_content}]

Verifica rapida

Verifichi la propria comprensione dei concetti di AI Engineering trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: gli LLM elaborano il testo come token, non come parole, utilizzando la tokenizzazione BPE con un vocabolario di circa 100.000 elementi, la libreria tiktoken consente di contare localmente i token prima di effettuare chiamate API, per stimare i costi e verificare i limiti del contesto e i prezzi sono calcolati per token, con costi significativamente maggiori per i token di output rispetto a quelli di input. Ora esploreremo le finestre di contesto: cosa sono, come limitano l’applicazione e come si confrontano i diversi modelli.

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Che cos'è un token?» è gratuita?

Sì — il testo completo di «Che cos'è un token?» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Engineering Academy, passa a CoddyKit PRO. Il corso AI Engineering Academy include 4 lezioni in totale.

Cosa imparerò in «Che cos'è un token?»?

Utilizzerà la libreria tiktoken per tokenizzare testo reale e scoprire come parole, punteggiatura e spazi bianchi corrispondono a sequenze di token nei diversi modelli. Eserciti AI Engineering Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Engineering Academy?

Non è richiesta alcuna esperienza precedente. AI Engineering Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Che cos'è un token?»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Engineering Academy?

Sì. Ogni lezione AI Engineering Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cos'è un token?
  2. Finestre di contesto: dimensioni e implicazioni
  3. Calcolare e prevedere i costi delle API
  4. Strategie per restare entro i limiti del contesto
← Torna a AI Engineering Academy