Token (LLM) (PL)

From Systems analysis wiki
Jump to navigation Jump to search

Token (token) — minimalna jednostka tekstu, z którą potrafią pracować duże modele językowe (LLM). Każdy tekst przed przetworzeniem przez LLM jest wstępnie przekształcany w sekwencję tokenów, które następnie są tłumaczone na reprezentacje liczbowe, wygodne do analizy i przetwarzania przez model.

W zależności od stosowanej strategii tokenizacji, token może reprezentować:

  • Całe słowo (np. „dom")
  • Część słowa lub rdzeń (np. „dom" w „domek")
  • Pojedynczy znak lub znak interpunkcyjny (np. „,", „!")

Stosowanie tokenów pozwala modelom językowym efektywnie poznawać i odtwarzać struktury tekstu, wykrywać wzorce, a także rozumieć semantykę i składnię tekstu.

Proces tokenizacji

Tokenizacja (tokenization) — to proces podziału wyjściowego tekstu na tokeny z ich następnym przekształceniem w identyfikatory liczbowe zrozumiałe dla modelu.

Etap ten jest obowiązkowy i fundamentalny dla działania dużych modeli językowych. Dzięki niemu LLM uzyskuje możliwość:

  • Analizowania składni — struktury tekstu i rozmieszczenia elementów (słów i fraz);
  • Wydobywania semantyki — głębokiego sensu tekstu i powiązań między elementami.

Wyróżnia się kilka podstawowych metod tokenizacji, wśród których:

  • Byte Pair Encoding (BPE): Algorytm, który iteracyjnie zastępuje najczęstsze pary znaków nowymi tokenami, co pozwala na efektywne przetwarzanie rzadkich słów i wariacji morfologicznych.
  • WordPiece: Stosowany w modelach BERT, dzieli słowa na jednostki subsłowne, co pomaga w przetwarzaniu nieznanych słów.
  • SentencePiece: Metoda, która traktuje tekst jako sekwencję znaków i stosuje modele oparte na BPE lub Unigram do tokenizacji.

Wybór metody tokenizacji wpływa na wydajność modelu, jego zdolność do przetwarzania różnych języków oraz efektywność uczenia.

Tokeny specjalne

Poza podstawowymi tokenami, modele używają również tokenów specjalnych do oznaczania funkcjonalnych elementów tekstu, takich jak:

  • [CLS] (class) — token początku sekwencji, często stosowany do zadań klasyfikacji tekstu;
  • [SEP] (separator) — rozdziela różne części tekstu (np. pytanie i odpowiedź, zdania lub akapity);
  • [MASK] — specjalny token do oznaczania słowa, które model ma przewidzieć (stosowany w BERT i innych modelach masked-language);
  • [PAD] (padding) — używany do wyrównywania tekstu pod względem długości.

Te tokeny specjalne pomagają modelom dokładniej odbierać strukturę i kontekst przetwarzanego tekstu.

Tokeny i okno kontekstowe

Okno kontekstowe (context window) — to maksymalna liczba tokenów, które model jest w stanie jednocześnie uwzględniać i przetwarzać podczas generowania tekstu.

Na przykład model GPT-3 posiada okno kontekstowe o rozmiarze 2048 tokenów. Oznacza to, że podczas tworzenia tekstu model może jednocześnie uwzględniać informacje zawarte w maksymalnie 2048 tokenach tekstu źródłowego. Rozmiar okna kontekstowego wpływa na:

  • Maksymalną ilość informacji dostępnych dla modelu;
  • Jakość i sensowność generowanych odpowiedzi;
  • Zdolność modelu do przetwarzania długich tekstów i zachowania kontekstu przy dużym odstępie między tokenami.

Literatura

  • 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.