Prog Academy
RU UA
ИИ и машинное обучение

Что такое токен в AI (ИИ) и сколько их в одном слове?

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

Разбиение на токены выполняет токенизатор. Короткое английское слово обычно занимает один токен, а длинное или редкое слово разбивается на несколько частей. Для украинского и русского текста токенов, как правило, требуется больше, чем для английского того же смысла.

Токены — это ещё и единица тарификации. Стоимость обращения к API языковой модели считают за тысячу токенов, отдельно за входные и выходные. Поэтому длинные промпты и большие приложенные документы напрямую влияют на цену и скорость ответа.

Где применяется

Токены — это единица счёта в работе с моделями. По ним считается стоимость запроса, причём отдельно за входные и выходные, и по ним же задаётся лимит на длину ответа. Поэтому оценка бюджета любого AI-решения начинается с подсчёта, сколько токенов уходит на типичную операцию.

Знание токенизации объясняет и странности в поведении модели. Слова на украинском и русском разбиваются на большее число токенов, чем английские, — тот же текст обходится дороже. А задачи вроде «посчитай буквы в слове» модель решает плохо именно потому, что видит не буквы, а куски текста.

Пример

Ориентир для оценки: около 1000 токенов — это примерно 700–750 английских слов или чуть больше страницы обычного текста.

import tiktoken

encoder = tiktoken.get_encoding('cl100k_base')

text = 'Привет! Расскажи о курсах программирования.'
tokens = encoder.encode(text)

print(len(tokens))          # сколько токенов уйдёт в запрос
print(tokens[:10])          # сами идентификаторы фрагментов
Подсчёт токенов перед отправкой: так оценивают стоимость запроса и проверяют, поместится ли он в контекст.

Частые вопросы

Сколько токенов в одном слове?

Для английского в среднем около 0,75 слова на токен. Для русского и украинского соотношение хуже: слова часто дробятся на две-три части из-за окончаний и кириллицы. Практический вывод — один и тот же текст на английском обходится дешевле.

Почему за токены берут плату отдельно на входе и выходе?

Потому что генерация ответа требует больше вычислений, чем чтение запроса: каждый новый токен модель предсказывает отдельно. Поэтому выходные токены обычно стоят в несколько раз дороже входных, и длинный ответ дороже длинного вопроса.

Как уменьшить расход токенов?

Убирают лишний контекст: не отправляют весь документ, если нужен один раздел, сокращают историю диалога, просят краткий ответ и задают ограничение по длине. Для повторяющихся запросов помогает кеширование неизменной части промпта.

Почему модель не может посчитать буквы в слове?

Она не видит букв: текст попадает в неё уже разбитым на токены, и слово может быть одним неделимым фрагментом. Поэтому подсчёт символов, перестановка букв и похожие задачи решаются ненадёжно — их лучше выполнять обычным кодом.

Связанные термины