Token (LLM) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Token — unità minima di testo con cui i grandi modelli linguistici (LLM) sono in grado di operare. Qualsiasi testo, prima di essere elaborato da un LLM, viene preventivamente convertito in una sequenza di token, che vengono poi trasformati in rappresentazioni numeriche adatte all'analisi e all'elaborazione da parte del modello.

A seconda della strategia di tokenizzazione adottata, un token può rappresentare:

  • Un'intera parola (ad esempio, "casa")
  • Una parte di parola o una radice (ad esempio, "cas" in "casetta")
  • Un singolo carattere o un segno di punteggiatura (ad esempio, ",", "!")

L'utilizzo dei token consente ai modelli linguistici di apprendere e riprodurre efficacemente le strutture del testo, individuare schemi ricorrenti, nonché comprendere la semantica e la sintassi del testo.

Processo di tokenizzazione

Tokenizzazione (tokenization) — è il processo di suddivisione del testo sorgente in token con la loro successiva conversione in identificatori numerici comprensibili al modello.

Questa fase è obbligatoria e fondamentale per il funzionamento dei grandi modelli linguistici. Grazie ad essa, un LLM acquisisce la capacità di:

  • Analizzare la sintassi — la struttura del testo e la disposizione degli elementi (parole e frasi);
  • Estrarre la semantica — il significato profondo del testo e le relazioni tra gli elementi.

Esistono diversi metodi principali di tokenizzazione, tra cui:

  • Byte Pair Encoding (BPE): Algoritmo che sostituisce iterativamente le coppie di caratteri più frequenti con nuovi token, consentendo di gestire efficacemente le parole rare e le variazioni morfologiche.
  • WordPiece: Utilizzato nei modelli BERT, suddivide le parole in unità sub-parola, facilitando l'elaborazione di parole sconosciute.
  • SentencePiece: Metodo che tratta il testo come una sequenza di caratteri e applica modelli basati su BPE o Unigram per la tokenizzazione.

La scelta del metodo di tokenizzazione influisce sulle prestazioni del modello, sulla sua capacità di elaborare lingue diverse e sull'efficienza dell'addestramento.

Token speciali

Oltre ai token di base, i modelli utilizzano anche token speciali per indicare elementi funzionali del testo, come:

  • [CLS] (class) — token di inizio sequenza, spesso utilizzato per compiti di classificazione del testo;
  • [SEP] (separator) — separa parti diverse del testo (ad esempio, domanda e risposta, frasi o paragrafi);
  • [MASK] — token speciale per indicare la parola che il modello deve prevedere (utilizzato in BERT e altri modelli masked-language);
  • [PAD] (padding) — utilizzato per uniformare la lunghezza del testo.

Questi token speciali aiutano i modelli a percepire con maggiore precisione la struttura e il contesto del testo elaborato.

Token e finestra di contesto

Finestra di contesto (context window) — è il numero massimo di token che il modello è in grado di considerare ed elaborare simultaneamente durante la generazione del testo.

Ad esempio, il modello GPT-3 ha una finestra di contesto di 2048 token. Ciò significa che durante la generazione del testo il modello può tenere conto simultaneamente delle informazioni contenute in un massimo di 2048 token del testo sorgente. La dimensione della finestra di contesto influisce su:

  • Il volume massimo di informazioni disponibili al modello;
  • La qualità e la coerenza delle risposte generate;
  • La capacità del modello di elaborare testi lunghi e mantenere il contesto su una grande distanza tra i token.

Letteratura

  • Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
  • Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
  • Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. *EMNLP 2021*. ACL Anthology.
  • Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
  • Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling: Assessing Vocabulary Allocation and Overlap Across Languages. arXiv:2305.17179.
  • Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-tuning of NMT. arXiv:2303.00722.
  • Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
  • Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.