most-AI.com
Войти

Токены простыми словами: почему русский текст длиннее для модели

Денис Коростелёв8 мин

Токен — это единица, в которой нейросеть читает и пишет текст. Не буква и не слово, а кусочек: иногда целое короткое слово, иногда его часть, иногда запятая вместе с пробелом. Все ограничения текстовых моделей — сколько текста поместится в запрос, насколько длинным будет ответ, сколько стоит обработка — считаются именно в токенах. А русский текст в среднем режется на больше кусочков, чем английский, поэтому одна и та же мысль по-русски «весит» для модели больше. Ниже разберём, почему так выходит и что с этим делать на практике.

Что такое токен на пальцах

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

Этот словарь и правила нарезки называются токенизатором. У каждого семейства моделей он свой, поэтому одна и та же фраза у разных моделей превращается в разное число токенов. Точные цифры для конкретного текста знает только сама модель, и снаружи их можно лишь прикинуть.

Как модель видит фразу

Условный пример, чтобы почувствовать механику. Возьмём фразу «Нейросеть переписала конспект». Токенизатор может разрезать её примерно так:

  • «Ней» + «рос» + «еть» — слово не самое частое, собирается из трёх кусков;
  • « пере» + «пис» + «ала» — приставка, корень и окончание по отдельности;
  • « кон» + «спект» — два куска.

Это иллюстрация, а не реальная нарезка какой-то конкретной модели: у каждой разбиение своё. Но принцип такой: пробел часто приклеивается к началу следующего слова, частые приставки и окончания становятся отдельными токенами, а длинные редкие слова разваливаются на несколько частей.

Английская фраза того же смысла чаще состоит из слов, которые целиком есть в словаре, и нарезается крупнее. Отсюда и главный эффект.

Почему русский текст «длиннее»

Причин несколько, и все они про то, как устроен словарь токенизатора.

Словарь собирают по частоте. Кусочки, которые чаще встречаются в обучающих текстах, получают собственный токен. В интернете и в обучающих данных английского традиционно больше, чем русского, поэтому английским словам чаще достаётся «целый кубик», а русским приходится собираться из частей.

У русского богатая грамматика. Одно слово «конспект» живёт в десятке форм: конспекта, конспекту, конспектом, конспектами. Для словаря это разные строки. Держать все формы всех слов целиком невозможно, поэтому токенизатор режет по корням и окончаниям, и одно русское слово превращается в два-три токена.

Кириллица кодируется длиннее. Внутри компьютера русская буква занимает больше места, чем латинская. На самых редких словах, которые режутся почти по буквам, это тоже добавляет токенов.

Насколько велика разница, зависит от модели. У старых поколений токенизаторов русский текст мог выходить в разы «тяжелее» английского. Новые модели учились на более многоязычных данных, и разрыв заметно сократился, но обычно не исчез совсем. Называть единый множитель для всех моделей было бы нечестно: он зависит и от токенизатора, и от самого текста. Разговорная речь режется иначе, чем юридический документ с редкими терминами.

На что влияют токены

Для пользователя токены важны в трёх местах: объём, скорость и цена.

Лимит контекста

Контекст — это всё, что модель «видит» за один раз: ваш текущий вопрос, прикреплённые файлы, вся предыдущая переписка в чате и её собственный ответ. У каждой модели есть потолок этого объёма, и он указан в токенах, а не в страницах.

Отсюда практическое следствие: если в описании модели указано, что контекст вмещает условные «сто тысяч токенов», русского текста туда поместится меньше, чем английского того же количества слов. Когда объём заканчивается, модель начинает хуже помнить начало разговора или не принимает документ целиком. Подробно про то, сколько текста реально удерживает модель и как работать с длинными файлами, мы разбирали в статье «Сколько текста нейросеть удержит».

Скорость ответа

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

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

Цена запроса

У текстовых моделей в целом стоимость привязана к объёму текста на входе и на выходе, то есть к тем же токенам. Причём выходные токены у многих моделей дороже входных. Сколько стоит конкретная модель в Most AI, смотрите на странице прайсинга: там актуальные условия, а цены в статьях быстро устаревают. Для тренировки и бытовых вопросов есть ChatGPT в чате — он бесплатный и без лимита по количеству запросов.

Как прикинуть объём без калькулятора

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

  • Считайте по страницам, а не по словам. Обычный учебный текст на одну страницу — это немного по меркам современных моделей. Проблемы начинаются с десятков страниц плюс длинного диалога.
  • Добавляйте историю. Если вы сорок сообщений обсуждали курсовую, всё это тоже лежит в контексте и расходуется при каждом новом вопросе.
  • Не забывайте про ответ. Если просите «подробный разбор на пять страниц», под него тоже нужен запас.

Если модель начала путаться в деталях, которые вы давали в начале, это частый признак, что разговор разросся и старые части уже «вытесняются».

Как сократить лишнее в запросе

Экономить токены стоит не ради копеек, а ради качества: чем меньше в контексте шума, тем точнее модель держится за то, что действительно важно.

Давайте выдержку, а не весь документ

Если вопрос про одну главу, вставьте одну главу. Методичка на сотню страниц ради одного параграфа — это лишний объём, в котором модели придётся искать нужное.

Уберите повторы и обёртки

Длинное вступление вроде «здравствуйте, у меня к вам такой вопрос, не могли бы вы, пожалуйста» на качество не работает. Вежливость не вредит, но пересказ одного и того же условия три раза разными словами только размывает задачу. Сравните:

Здравствуйте! Я студент второго курса, у меня есть задание по истории,
его нужно сдать в пятницу, и я не очень понимаю, как его сделать.
Нужно сделать про реформы, реформы Александра II, их было несколько,
и надо рассказать про них, но не слишком длинно, потому что
преподаватель не любит длинные тексты, лучше коротко.
Задача: краткий обзор реформ Александра II для студента 2 курса.
Формат: 5 пунктов, по 2-3 предложения на реформу.
Для каждой: суть, год, главное последствие.

Второй вариант вдвое короче и при этом точнее говорит модели, что нужно.

Просите нужную длину ответа

Ответ тоже состоит из токенов, и по умолчанию модели склонны к развёрнутым текстам. Если вам нужен список из пяти пунктов, так и скажите в запросе. Это ускоряет ответ и уменьшает объём, который придётся читать и проверять.

Начинайте новый чат при смене темы

Закончили с рефератом и перешли к задачам по статистике — откройте новый диалог. Иначе вся переписка про реферат продолжит ехать в контексте и отвлекать модель.

Сжимайте длинный диалог

Если разговор важный и начинать с нуля жалко, попросите модель саму сделать выжимку, а потом перенесите её в новый чат.

Сделай сжатую выжимку нашего диалога для продолжения в новом чате.
Включи: тему работы, принятые решения, требования преподавателя,
что уже готово и что осталось сделать.
Без пересказа обсуждений, только итоги. Не больше 15 строк.

Английский промт — только когда это оправдано

Иногда советуют писать запросы по-английски, чтобы сэкономить токены. Экономия есть, но для учёбы и бытовых задач она обычно не стоит усилий: теряются нюансы формулировки, а ответ всё равно нужен на русском. Смысл в этом появляется, когда вы изо дня в день гоняете одну и ту же длинную инструкцию-шаблон и хотите её ужать. В остальных случаях пишите на том языке, на котором думаете.

Что тратит токены Что сделать
Документ целиком ради одного вопроса Вставить только нужный фрагмент
Повторы условия разными словами Сформулировать задачу один раз, по пунктам
Длинная история чата на другую тему Открыть новый диалог
Развёрнутый ответ, когда нужен список Указать формат и длину ответа

Если в словах вроде «контекст», «промт» или «модель» ещё путаетесь, загляните в словарь терминов для новичка — там основные понятия собраны на одной странице.

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

Один токен — это одно слово?

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

Почему одна и та же фраза у разных моделей занимает разное число токенов?

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

Русский текст всегда обходится дороже английского?

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

Что будет, если текст не поместится в контекст?

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

Влияет ли вежливость в запросе на расход токенов?

Формально да, каждое слово стоит токенов, но пара вежливых фраз — ничтожная доля запроса. Гораздо больше тратят повторы условия, лишние вложения и долгая история чата. Убирать стоит именно их.

Нужно ли новичку считать токены вручную?

Нет. Достаточно понимать, что объём ограничен и что в него входят и ваш текст, и история, и ответ. Если модель начала терять детали или отвечает медленно, первое, что стоит сделать, — сократить вложения или начать новый чат.

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

Повторите на своём материале

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

Открыть кабинетРегистрация занимает минуту

Денис Коростелёв

Продуктовый аналитик

Сравнивает модели на одинаковых промтах и считает себестоимость результата. Не верит сравнениям без методики — включая собственные.