---
title: "Tokenization"
source: "https://systems-analysis.info/wiki/Tokenization"
wiki: "systems-analysis.info/wiki"
article: "Tokenization"
language: "ru"
categories:
  - "Категория:Russian"
  - "Категория:Базовые понятия LLM"
  - "Категория:Большие языковые модели"
  - "Категория:Машинное обучение"
revision_id: 195
wiki_created_at: 2026-09-06T22:05:13Z
wiki_modified_at: 2026-09-06T22:05:13Z
downloaded_at: 2026-09-07T22:18:14Z
---

# Tokenization

**Токенизация** в контексте [больших языковых моделей](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели") (LLM) — это фундаментальный процесс предварительной обработки, который заключается в разбиении последовательности текста на более мелкие, управляемые единицы, называемые **[токенами](https://systems-analysis.info/wiki/%D0%A2%D0%BE%D0%BA%D0%B5%D0%BD "Токен")**. Эти токены затем преобразуются в числовые идентификаторы, которые модель может обрабатывать. Токенизация является критически важным первым шагом, поскольку она напрямую влияет на производительность, эффективность, справедливость и качество понимания языка моделью.

## Основные концепции

### Токен

**Токен** — это дискретная единица текста, которую обрабатывает языковая модель. В зависимости от выбранного метода токенизации, токен может представлять собой:

- Слово целиком (например, «кошка»).
- Часть слова или подслово (например, «недо-», «-смотр-», «-ел»).
- Отдельный символ (например, «а», «б», «в»).
- Байт (в случае byte-level токенизации).

Каждому уникальному токену присваивается специфический индексный номер из **словаря токенизатора**.

### Словарь токенизатора

**Словарь** (или вокабуляр) — это полный набор всех возможных токенов, которые модель может распознать. Размер словаря является важным гиперпараметром:

- Большой словарь позволяет представлять больше слов целиком, что улучшает понимание и сокращает длину последовательностей, но увеличивает размер модели и сложность обучения.
- Маленький словарь более компактен, но требует разбиения редких или сложных слов на большее количество подслов, что может удлинять последовательности и затруднять улавливание семантики.

Размер словаря сильно варьируется между моделями: от ~50 000 токенов в [GPT-2](https://systems-analysis.info/wiki/GPT "GPT") до более 100 000 в современных моделях, таких как [GPT-4](https://systems-analysis.info/wiki/GPT "GPT") (100 277) и <a href="https://systems-analysis.info/wiki/index.php?title=LLama&amp;action=edit&amp;redlink=1" class="new" title="LLama (страница не существует)">LLaMA-3</a> (128 000).

## Основные методы токенизации

Существует три основных уровня гранулярности токенизации.

### 1. Токенизация на уровне слов (Word-level)

- **Принцип:** Текст разделяется на отдельные слова на основе разделителей (пробелы, знаки препинания).
- **Преимущества:** Интуитивно понятен; последовательности токенов короче, что снижает вычислительную нагрузку.
- **Недостатки:**
  - Проблема неизвестных слов (Out-of-Vocabulary, OOV): Модель не может обработать слова, которых не было в обучающем словаре, а также опечатки и новые слова.
  - Большой размер словаря: Требуется хранить все уникальные слова, что особенно проблематично для языков с богатой морфологией.

### 2. Токенизация на уровне символов (Character-level)

- **Принцип:** Текст разбивается на отдельные символы.
- **Преимущества:**
  - Нет проблемы OOV: Любое слово можно представить как последовательность символов.
  - Маленький словарь: Ограничен размером алфавита и специальных символов.
- **Недостатки:**
  - Длинные последовательности: Текст преобразуется в очень длинные последовательности токенов, что значительно увеличивает вычислительные затраты.
  - Потеря семантики: Модели сложнее уловить смысл, так как она оперирует отдельными символами, а не целыми словами.

### 3. Подсловная токенизация (Subword Tokenization)

Это промежуточный и наиболее популярный сегодня подход, который сочетает преимущества предыдущих методов.

- **Принцип:** Часто используемые слова остаются целыми токенами, а редкие или неизвестные слова разбиваются на более мелкие, значимые части (подслова).
- **Преимущества:**
  - Эффективно обрабатывает OOV-слова и морфологические вариации.
  - Контролируемый размер словаря.
  - Захватывает морфологическую структуру слов.
- **Основные алгоритмы:**
  - **Byte Pair Encoding (BPE):** Итеративный алгоритм, который начинает с набора символов и последовательно объединяет наиболее часто встречающиеся пары в новые токены. Используется в моделях [GPT](https://systems-analysis.info/wiki/GPT "GPT"). **Byte-level BPE**, используемый в GPT-2 и RoBERTa, рассматривает слова как последовательности байтов, что полностью решает проблему OOV.
  - **WordPiece:** Алгоритм, похожий на BPE, но для слияния пар он выбирает те, которые максимизируют правдоподобие обучающих данных. Используется в моделях [BERT](https://systems-analysis.info/wiki/BERT "BERT").
  - **Unigram LM:** В отличие от BPE/WordPiece, этот метод начинает с большого набора подслов и постепенно сокращает его, удаляя те токены, которые меньше всего влияют на общую вероятность корпуса. Это позволяет создавать несколько вероятных токенизаций для одного слова (субсловная регуляризация).
- **Инструментарий SentencePiece:** Библиотека от Google, которая реализует BPE и Unigram LM и обрабатывает текст как непрерывный поток символов, что делает её универсальной для языков без явных разделителей слов (например, китайского). Используется в моделях LLaMA и [T5](https://systems-analysis.info/wiki/T5 "T5").

## Токенизация в мультимодальных LLM

В мультимодальных моделях, работающих не только с текстом, токенизация распространяется и на другие типы данных:

- **Визуальная токенизация:** Изображения разбиваются на небольшие патчи (например, 16x16 пикселей), которые затем преобразуются в векторы-токены, аналогично текстовым.
- **Аудио токенизация:** Непрерывные аудиосигналы преобразуются в последовательность дискретных токенов, которые представляют собой короткие фрагменты звука.
- **Единый подход (TEAL):** Концепция, где данные любой модальности сначала токенизируются с помощью соответствующего токенизатора, а затем их эмбеддинги обрабатываются в едином совместном пространстве.

## Проблемы и ограничения

Токенизация, несмотря на свою важность, является источником многих проблем в работе LLM:

- **Непоследовательность и чувствительность:** Небольшие изменения во входных данных (опечатка, регистр, пробел в конце) могут кардинально изменить токенизацию, что приводит к непредсказуемому поведению модели.
- **Многоязычные проблемы:** Единый словарь для многих языков часто оказывается неэффективным для низкоресурсных или морфологически богатых языков, приводя к слишком длинным последовательностям токенов.
- **Влияние на рассуждения:** Нелогичное разбиение чисел (например, «25,000» на «25», «,», «000») или символов затрудняет выполнение арифметических и символьных задач.
- **Глитч-токены (Glitch Tokens):** Аномальные или редкие токены из обучающих данных (например, имена пользователей с Reddit), которые могут вызывать непредсказуемое или вредоносное поведение модели.

## Развивающийся ландшафт и будущие направления

Исследования в области токенизации активно ведутся в следующих направлениях:

- **Модели без токенизатора:** Разработка моделей (CANINE, ByT5), работающих непосредственно на уровне байтов или символов, чтобы полностью устранить этап явной токенизации и связанные с ним проблемы.
- **Адаптивная и обучаемая токенизация:** Создание токенизаторов, которые могут динамически адаптироваться к языку, домену или даже конкретному входному тексту, или обучаются совместно с основной моделью.
- **Когнитивно-ориентированные подходы:** Разработка методов, вдохновленных когнитивной наукой о человеческой обработке языка (например, «Принцип наименьшего усилия»), для создания более семантически осмысленных токенизаций.

## См. также

- [GPT](https://systems-analysis.info/wiki/GPT "GPT")
- [Большие языковые модели](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели")
- [Архитектура Transformer](https://systems-analysis.info/wiki/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_Transformer "Архитектура Transformer")
- [Теоретические основы LLM](https://systems-analysis.info/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_LLM "Теоретические основы LLM")
- [BERT](https://systems-analysis.info/wiki/BERT "BERT")

## Ссылки

- <a href="https://huggingface.co/learn/llm-course/ru/chapter6/2" class="external text" rel="nofollow">Обзор токенизации в курсе по LLM от Hugging Face</a>
- <a href="https://docs.mistral.ai/guides/tokenization/" class="external text" rel="nofollow">Документация по токенизации от Mistral AI</a>

## Литература

- Schuster, M.; Nakajima, K. (2012). *Japanese and Korean Voice Search*. <a href="https://research.google.com/pubs/archive/37842.pdf" class="external text" rel="nofollow">PDF</a>.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). *Neural Machine Translation of Rare Words with Subword Units*. <a href="https://arxiv.org/abs/1508.07909" class="external text" rel="nofollow">arXiv:1508.07909</a>.
- Kudo, T.; Richardson, J. (2018). *SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing*. <a href="https://arxiv.org/abs/1808.06226" class="external text" rel="nofollow">arXiv:1808.06226</a>.
- Kudo, T. (2018). *Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates*. <a href="https://arxiv.org/abs/1804.10959" class="external text" rel="nofollow">arXiv:1804.10959</a>.
- Song, X. et al. (2021). *Fast WordPiece Tokenization*. <a href="https://aclanthology.org/2021.emnlp-main.160.pdf" class="external text" rel="nofollow">ACL-Anthology</a>.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). *A Brief History of Open-Vocabulary Modeling and Tokenization in NLP*. <a href="https://arxiv.org/abs/2112.10508" class="external text" rel="nofollow">arXiv:2112.10508</a>.
- Xue, J. et al. (2022). *ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models*. <a href="https://arxiv.org/abs/2105.13626" class="external text" rel="nofollow">arXiv:2105.13626</a>.
- Clark, J. H. et al. (2022). *CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation*. <a href="https://arxiv.org/abs/2103.06874" class="external text" rel="nofollow">arXiv:2103.06874</a>.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). *Tokenization Impacts Multilingual Language Modeling*. <a href="https://arxiv.org/abs/2305.17179" class="external text" rel="nofollow">arXiv:2305.17179</a>.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). *A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT*. <a href="https://arxiv.org/abs/2303.00722" class="external text" rel="nofollow">arXiv:2303.00722</a>.
- Batsuren, K. et al. (2024). *Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge*. <a href="https://arxiv.org/abs/2404.13292" class="external text" rel="nofollow">arXiv:2404.13292</a>.
- Chai, Y. et al. (2024). *Tokenization Falling Short: On Subword Robustness in Large Language Models*. <a href="https://arxiv.org/abs/2406.11687" class="external text" rel="nofollow">arXiv:2406.11687</a>.
