Токен

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Токен (token) — минимальная единица текста, с которой способны работать большие языковые модели (LLM). Любой текст перед обработкой LLM предварительно преобразуется в последовательность токенов, которые затем переводятся в числовые представления, удобные для анализа и обработки моделью.

В зависимости от используемой стратегии токенизации, токен может представлять собой:​

  • Целое слово (например, "дом")
  • Часть слова или корень (например, "дом" в "домик")
  • Одиночный символ или пунктуацию (например, ",", "!")

Использование токенов позволяет языковым моделям эффективно изучать и воспроизводить структуры текста, выявлять закономерности, а также понимать семантику и синтаксис текста.

Процесс токенизации

Токенизация (tokenization) — это процесс разбиения исходного текста на токены с последующим их преобразованием в числовые идентификаторы, понятные модели.

Данный этап является обязательным и фундаментальным для работы больших языковых моделей. С его помощью LLM получает возможность:

  • Анализировать синтаксис — структуру текста и расположение элементов (слов и фраз);
  • Извлекать семантику — глубинный смысл текста и взаимосвязи между элементами.

Выделяют несколько основных методов токенизации, среди которых:

  • Byte Pair Encoding (BPE): Алгоритм, который итеративно заменяет наиболее частые пары символов на новые токены, что позволяет эффективно обрабатывать редкие слова и морфологические вариации .​
  • WordPiece: Используется в моделях BERT и разбивает слова на субсловные единицы, что помогает в обработке неизвестных слов.
  • SentencePiece: Метод, который рассматривает текст как последовательность символов и применяет модели на основе BPE или Unigram для токенизации.

Выбор метода токенизации влияет на производительность модели, ее способность обрабатывать различные языки и эффективность обучения.

Специальные токены

Кроме основных токенов, модели также используют специальные токены для обозначения функциональных элементов текста, таких как:

  • [CLS] (class) — токен начала последовательности, часто используемый для задач классификации текста;
  • [SEP] (separator) — разделяет разные части текста (например, вопрос и ответ, предложения или абзацы);
  • [MASK] — специальный токен для обозначения слова, которое модель должна предсказать (используется в BERT и других masked-language моделях);
  • [PAD] (padding) — используется для выравнивания текста по длине.

Эти специальные токены помогают моделям более точно воспринимать структуру и контекст обрабатываемого текста.

Токены и контекстное окно

Контекстное окно (context window) — это максимальное количество токенов, которые модель способна одновременно учитывать и обрабатывать при генерации текста.

Например, модель GPT-3 имеет контекстное окно размером 2048 токенов. Это означает, что при создании текста модель может одновременно учитывать информацию, содержащуюся максимум в 2048 токенах исходного текста. Размер контекстного окна влияет на:

  • Максимальный объем информации, доступный модели;
  • Качество и осмысленность сгенерированных ответов;
  • Способность модели воспринимать длинные тексты и сохранять контекст на большом расстоянии между токенами.

Литература

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