Risorse/Addestramento del modello/Token e contesto

Concetto

Token

I frammenti di testo che un modello effettivamente legge e scrive — come vengono creati, perché i conteggi differiscono tra i modelli e perché ogni limite e prezzo nell'addestramento viene misurato in essi.

Capitolo 2Lettura di 3 min5 riferimenti

Cos'è un token

Un modello linguistico non vede mai lettere o parole. Prima che qualsiasi testo lo raggiunga, un tokenizer taglia il testo in frammenti presi da un vocabolario fisso e sostituisce ogni frammento con il rispettivo numero all'interno di quel vocabolario. Il modello legge una sequenza di quei numeri e scrive anche la sua risposta in numeri, che il tokenizer trasforma nuovamente in testo.

“How do I reset my password?”
How2437␣do466␣I314␣reset13259␣my616␣password9206?30
27 caratteri6 parole≈ 7 token
Una frase, sette token. Di solito uno spazio viaggia con la parola che lo segue, motivo per cui “ do” e “do” sono token diversi.

Oggi i vocabolari contengono da decine di migliaia a qualche centinaio di migliaia di voci. Le parole frequenti ottengono una propria voce, di solito con lo spazio precedente annesso. Le parole meno frequenti vengono composte da frammenti più piccoli: il nome di un prodotto insolito potrebbe diventare quattro o cinque token.

Come vengono costruiti i tokenizer: byte-pair encoding

La maggior parte dei tokenizer attuali utilizza una forma di byte-pair encoding (BPE), adattata per i modelli linguistici da Sennrich, Haddow e Birch. Il vocabolario viene appreso da un ampio campione di testo prima che il modello stesso venga addestrato:

  1. Partire dalle unità più piccole: singoli caratteri o i 256 byte possibili.
  2. Contare ogni coppia di unità adiacenti nel campione e trovare la coppia più frequente.
  3. Unire tale coppia in una nuova unità e aggiungerla al vocabolario.
  4. Ripetere finché il vocabolario non raggiunge la dimensione desiderata.

Il vocabolario finisce per dedicare le proprie voci a tutto ciò che era comune in quel campione. Le versioni a livello di byte partono dai byte anziché dai caratteri, in modo che qualsiasi input — qualsiasi lingua, emoji o simbolo isolato — possa comunque essere codificato, solo in modo meno efficiente quando è insolito.

Come il BPE apprende “ing”
  1. Il campione contiene molte volte “walking”, “talking” e “making”. Inizialmente, ognuna viene suddivisa in caratteri: w a l k i n g.
  2. i seguita da n è la coppia più frequente, quindi diventa un'unica unità: w a l k in g.
  3. Ora in seguita da g è la coppia più frequente: w a l k ing.
  4. Dopo decine di migliaia di unioni, è probabile che una parola frequente come “walking” diventi un singolo token, mentre una rara come “unwalkable” sia ancora formata da più parti.

Perché lo stesso testo produce conteggi diversi

Tipo di testoComportamento tipico
Inglese di uso quotidianoCirca 4 caratteri, o ¾ di parola, per token
Numeri, ID e dateSuddivisi in brevi frammenti: 2024-03-17 può richiedere cinque o più token
Codice e JSONParentesi, virgolette e indentazione consumano tutti token
Altre lingueSpesso più token per lo stesso significato; uno studio del 2023 ha misurato differenze fino a 15 volte per lo stesso testo tradotto
Nomi rari e gergoSuddivisi in diversi frammenti di sotto-parole

Ogni famiglia di modelli addestra il proprio tokenizer, quindi un documento che corrisponde a 1.000 token per un modello potrebbe essere di 1.150 per un altro. Qualsiasi conteggio effettuato con un tokenizer diverso, o stimato dal numero di caratteri, è un'approssimazione.

Perché è importante per l'addestramento

  • Costo. L'addestramento è fatturato per token elaborato, e l'utilizzo per token di input e di output.
  • Limiti. La finestra di contesto e il limite di addestramento per esempio sono calcolati in token, non in messaggi o parole.
  • Debolezze insolite. Un modello vede “strawberry” come alcuni token, non come dieci lettere, motivo per cui contare le lettere o invertire una parola gli risulta sorprendentemente difficile.

Errori comuni

  • Considerare un token come una parola quando si stimano costi o limiti.
  • Presumere che un conteggio effettuato per un modello sia valido per un altro.
  • Pianificare il budget per dati non in inglese utilizzando i rapporti caratteri-per-token della lingua inglese.
  • Dimenticare che anche la formattazione — JSON, markup, ID lunghi — consuma token.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01Neural Machine Translation of Rare Words with Subword UnitsSennrich, Haddow & Birch, 2016 · arXiv · arxiv.orgL'articolo che ha introdotto la tokenizzazione BPE nell'NLP.
  2. 02Byte-Pair Encoding tokenizationHugging Face LLM Course · huggingface.coL'addestramento BPE spiegato passo dopo passo, con codice.
  3. 03Language Model Tokenizers Introduce Unfairness Between LanguagesPetrov et al., 2023 · arXiv · arxiv.orgQuanto costa in più lo stesso contenuto in alcune lingue.
  4. 04openai/tiktokenOpenAI · GitHub · github.comUn tokenizer BPE ampiamente utilizzato che è possibile eseguire per contare i token in autonomia.
  5. 05Understand and count tokensGemini API docs · ai.google.devLa spiegazione di un altro provider sui token e su come contarli.

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite