Как работает токенизация
Перед обработкой текста языковой моделью он проходит через токенизатор — специальный алгоритм, который разбивает входные данные на отдельные единицы и сопоставляет им числовые идентификаторы.
Этот процесс называется токенизацией (tokenization). Модель работает с последовательностью полученных идентификаторов, преобразуя их во внутренние числовые представления.
Разные языковые модели могут использовать разные токенизаторы. Поэтому один и тот же текст не обязательно будет разбит на одинаковые токены в GPT, Qwen и других LLM.
Токенизация применяется и к тексту, который модель генерирует: она последовательно предсказывает следующие токены, а токенизатор преобразует полученную последовательность обратно в читаемый текст.
Чем токен отличается от слова и символа
Токен не равен одному слову или одному символу. В зависимости от словаря и алгоритма токенизации:
- распространенное слово может соответствовать одному токену;
- длинное или редкое слово может разделяться на несколько токенов;
- знаки препинания и пробелы могут входить в отдельные токены либо объединяться с другими фрагментами;
- числа, элементы программного кода и специальные символы также могут разбиваться на несколько частей.
Например, слова «программа» и «программирование» не обязательно будут обрабатываться как две неделимые единицы. Токенизатор может выделить в них повторяющиеся фрагменты.
Конкретное разбиение зависит от модели. Поэтому универсального коэффициента перевода слов или символов в токены не существует.
Почему количество токенов важно
В современных LLM количество токенов используется для измерения объема входных и выходных данных.
Входные токены — это данные, переданные модели: пользовательский запрос, системные инструкции, история переписки, документы и другой контекст.
Выходные токены — это последовательность, которую модель генерирует в ответ.
С количеством токенов связаны несколько практических ограничений:
- Размер контекстного окна. Модель может одновременно обрабатывать ограниченное количество токенов. Если доступный контекст заполнен, приложению приходится сокращать историю, удалять часть данных или применять другие способы управления контекстом.
- Длина ответа. Для генерации может существовать отдельный предел выходных токенов.
- Стоимость использования. В API языковых моделей тарификация часто зависит от количества обработанных входных и сгенерированных выходных токенов. Их стоимость может различаться.
- Вычислительные ресурсы. Обработка длинных последовательностей требует ресурсов и может влиять на задержку ответа.