Токен — это базовая единица обработки текста в языковых моделях. Токены могут представлять собой целые слова, части слов, отдельные символы или знаки пунктуации. Процесс разбиения текста на токены называется токенизацией и является первым шагом при обработке текста языковыми моделями.
Токенизация текста
Существует несколько подходов к токенизации:
- Пословная токенизация — каждое слово становится отдельным токеном
- Посимвольная токенизация — каждый символ становится отдельным токеном
- Подсловная токенизация (наиболее распространена) — слова разбиваются на части на основе статистических закономерностей в языке
Современные языковые модели обычно используют подсловную токенизацию с алгоритмами, такими как Byte-Pair Encoding (BPE), WordPiece или SentencePiece.
Примеры токенизации
Рассмотрим, как может быть токенизировано предложение "Искусственный интеллект развивается быстро" с использованием подсловной токенизации:
"Искусственный" → ["Искусс", "твенный"] "интеллект" → ["интел", "лект"] "развивается" → ["раз", "вива", "ется"] "быстро" → ["быстро"]
В результате получается 7 токенов вместо 4 слов. Точное разбиение зависит от конкретного токенизатора и языка.
Контекстная длина в токенах
Контекстная длина (или контекстное окно) — это максимальное количество токенов, которое модель может обрабатывать одновременно. Это важный параметр, определяющий, насколько длинные тексты модель может анализировать и генерировать:
- Ранние модели (GPT-2, BERT) — 512-2048 токенов
- Современные модели (GPT-4, Claude 3) — 8K-128K токенов
Увеличение контекстной длины позволяет модели:
- Анализировать более длинные документы
- Сохранять больше контекста в диалоге
- Лучше понимать сложные взаимосвязи в тексте
Сколько токенов в слове?
- Английский текст: ~1 токен = 3-4 символа.
- Русский текст: ~1 токен = 2-3 символа (из-за сложной морфологии).
Токены и вычислительная сложность
Обработка токенов в трансформерных моделях имеет квадратичную вычислительную сложность относительно длины последовательности из-за механизма самовнимания (self-attention). Это означает, что:
- Удвоение контекстной длины требует в 4 раза больше вычислений
- Увеличение контекстной длины в 10 раз требует в 100 раз больше вычислений
Поэтому увеличение контекстной длины — серьезная техническая задача, требующая оптимизации архитектуры и алгоритмов.
Токены и стоимость использования API
При использовании коммерческих API языковых моделей (например, OpenAI API) стоимость обычно рассчитывается на основе количества обработанных токенов. Понимание того, как текст токенизируется, помогает оценить затраты на использование таких сервисов.
В среднем, в английском языке 1 токен соответствует примерно 4 символам или 0.75 слова. В русском языке из-за более сложной морфологии одно слово может разбиваться на большее количество токенов.