Токен
Токен — минимальная единица текста, которую языковая модель обрабатывает за один шаг: как правило, фрагмент слова, целое слово или знак препинания. Размер контекстного окна модели и стоимость API-запросов измеряются именно в токенах.
Токен (token) — атомарная единица обработки текста в языковых моделях. В отличие от символа или слова, токен — это субсловная единица, определяемая алгоритмом токенизации. Один токен в среднем соответствует 4 символам английского текста или примерно 0,75 слова; для русского, арабского и других языков с богатой морфологией одно слово нередко занимает 2–4 токена из-за большего числа уникальных словоформ.
Современные LLM используют алгоритмы BPE (Byte Pair Encoding) или SentencePiece для построения фиксированного словаря токенов. GPT-4 применяет токенизатор cl100k с размером словаря 100 277 токенов; Llama 3 использует расширенный словарь из 128 256 токенов. Алгоритм BPE обучается на корпусе и итеративно объединяет наиболее частые пары байт в единые токены — это позволяет компактно представлять распространённые слова одним токеном и разбирать редкие словоформы через комбинацию подслов.
Понятие токена критично по нескольким причинам. Контекстное окно модели измеряется в токенах: GPT-4 Turbo поддерживает до 128 000 токенов, Claude 3 — до 200 000, Gemini 1.5 Pro — до 1 млн. Стоимость API-запросов также рассчитывается в токенах, причём входные и выходные токены тарифицируются по разным ставкам. Неравномерное покрытие языков означает, что обработка семантически эквивалентного текста на русском обходится в 1,5–2 раза дороже, чем на английском.
С 2023 по 2026 год разработчики моделей последовательно расширяли словари токенизаторов и улучшали многоязычное покрытие: Llama 3 и Gemini 1.5 продемонстрировали заметное улучшение эффективности токенизации кириллических и иероглифических текстов по сравнению с более ранними архитектурами. Параллельно ведутся исследования байтовых и символьных моделей, которые отказываются от токенизации и обрабатывают текст на уровне байт или символов Unicode.