Tokenization
Токенизация в контексте больших языковых моделей (LLM) — это фундаментальный процесс предварительной обработки, который заключается в разбиении последовательности текста на более мелкие, управляемые единицы, называемые токенами. Эти токены затем преобразуются в числовые идентификаторы, которые модель может обрабатывать. Токенизация является критически важным первым шагом, поскольку она напрямую влияет на производительность, эффективность, справедливость и качество понимания языка моделью.
Основные концепции
Токен
Токен — это дискретная единица текста, которую обрабатывает языковая модель. В зависимости от выбранного метода токенизации, токен может представлять собой:
- Слово целиком (например, «кошка»).
- Часть слова или подслово (например, «недо-», «-смотр-», «-ел»).
- Отдельный символ (например, «а», «б», «в»).
- Байт (в случае byte-level токенизации).
Каждому уникальному токену присваивается специфический индексный номер из словаря токенизатора.
Словарь токенизатора
Словарь (или вокабуляр) — это полный набор всех возможных токенов, которые модель может распознать. Размер словаря является важным гиперпараметром:
- Большой словарь позволяет представлять больше слов целиком, что улучшает понимание и сокращает длину последовательностей, но увеличивает размер модели и сложность обучения.
- Маленький словарь более компактен, но требует разбиения редких или сложных слов на большее количество подслов, что может удлинять последовательности и затруднять улавливание семантики.
Размер словаря сильно варьируется между моделями: от ~50 000 токенов в GPT-2 до более 100 000 в современных моделях, таких как GPT-4 (100 277) и LLaMA-3 (128 000).
Основные методы токенизации
Существует три основных уровня гранулярности токенизации.
1. Токенизация на уровне слов (Word-level)
- Принцип: Текст разделяется на отдельные слова на основе разделителей (пробелы, знаки препинания).
- Преимущества: Интуитивно понятен; последовательности токенов короче, что снижает вычислительную нагрузку.
- Недостатки:
- Проблема неизвестных слов (Out-of-Vocabulary, OOV): Модель не может обработать слова, которых не было в обучающем словаре, а также опечатки и новые слова.
- Большой размер словаря: Требуется хранить все уникальные слова, что особенно проблематично для языков с богатой морфологией.
2. Токенизация на уровне символов (Character-level)
- Принцип: Текст разбивается на отдельные символы.
- Преимущества:
- Нет проблемы OOV: Любое слово можно представить как последовательность символов.
- Маленький словарь: Ограничен размером алфавита и специальных символов.
- Недостатки:
- Длинные последовательности: Текст преобразуется в очень длинные последовательности токенов, что значительно увеличивает вычислительные затраты.
- Потеря семантики: Модели сложнее уловить смысл, так как она оперирует отдельными символами, а не целыми словами.
3. Подсловная токенизация (Subword Tokenization)
Это промежуточный и наиболее популярный сегодня подход, который сочетает преимущества предыдущих методов.
- Принцип: Часто используемые слова остаются целыми токенами, а редкие или неизвестные слова разбиваются на более мелкие, значимые части (подслова).
- Преимущества:
- Эффективно обрабатывает OOV-слова и морфологические вариации.
- Контролируемый размер словаря.
- Захватывает морфологическую структуру слов.
- Основные алгоритмы:
- Byte Pair Encoding (BPE): Итеративный алгоритм, который начинает с набора символов и последовательно объединяет наиболее часто встречающиеся пары в новые токены. Используется в моделях GPT. Byte-level BPE, используемый в GPT-2 и RoBERTa, рассматривает слова как последовательности байтов, что полностью решает проблему OOV.
- WordPiece: Алгоритм, похожий на BPE, но для слияния пар он выбирает те, которые максимизируют правдоподобие обучающих данных. Используется в моделях BERT.
- Unigram LM: В отличие от BPE/WordPiece, этот метод начинает с большого набора подслов и постепенно сокращает его, удаляя те токены, которые меньше всего влияют на общую вероятность корпуса. Это позволяет создавать несколько вероятных токенизаций для одного слова (субсловная регуляризация).
- Инструментарий SentencePiece: Библиотека от Google, которая реализует BPE и Unigram LM и обрабатывает текст как непрерывный поток символов, что делает её универсальной для языков без явных разделителей слов (например, китайского). Используется в моделях LLaMA и T5.
Токенизация в мультимодальных LLM
В мультимодальных моделях, работающих не только с текстом, токенизация распространяется и на другие типы данных:
- Визуальная токенизация: Изображения разбиваются на небольшие патчи (например, 16x16 пикселей), которые затем преобразуются в векторы-токены, аналогично текстовым.
- Аудио токенизация: Непрерывные аудиосигналы преобразуются в последовательность дискретных токенов, которые представляют собой короткие фрагменты звука.
- Единый подход (TEAL): Концепция, где данные любой модальности сначала токенизируются с помощью соответствующего токенизатора, а затем их эмбеддинги обрабатываются в едином совместном пространстве.
Проблемы и ограничения
Токенизация, несмотря на свою важность, является источником многих проблем в работе LLM:
- Непоследовательность и чувствительность: Небольшие изменения во входных данных (опечатка, регистр, пробел в конце) могут кардинально изменить токенизацию, что приводит к непредсказуемому поведению модели.
- Многоязычные проблемы: Единый словарь для многих языков часто оказывается неэффективным для низкоресурсных или морфологически богатых языков, приводя к слишком длинным последовательностям токенов.
- Влияние на рассуждения: Нелогичное разбиение чисел (например, «25,000» на «25», «,», «000») или символов затрудняет выполнение арифметических и символьных задач.
- Глитч-токены (Glitch Tokens): Аномальные или редкие токены из обучающих данных (например, имена пользователей с Reddit), которые могут вызывать непредсказуемое или вредоносное поведение модели.
Развивающийся ландшафт и будущие направления
Исследования в области токенизации активно ведутся в следующих направлениях:
- Модели без токенизатора: Разработка моделей (CANINE, ByT5), работающих непосредственно на уровне байтов или символов, чтобы полностью устранить этап явной токенизации и связанные с ним проблемы.
- Адаптивная и обучаемая токенизация: Создание токенизаторов, которые могут динамически адаптироваться к языку, домену или даже конкретному входному тексту, или обучаются совместно с основной моделью.
- Когнитивно-ориентированные подходы: Разработка методов, вдохновленных когнитивной наукой о человеческой обработке языка (например, «Принцип наименьшего усилия»), для создания более семантически осмысленных токенизаций.
Ссылки
Литература
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- 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.
- Song, X. et al. (2021). Fast WordPiece Tokenization. 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.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. 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.