НЕЙРОВЫЗОВ

Токены, из-за которых нейросеть считает слова по-своему

16 октября, 14:42

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

Фото: benketaro, CC BY 2.0, Flickr

Что такое токен

Токен это единица, с которой работает языковая модель. Он может быть целым коротким словом, частью длинного слова, знаком препинания или пробелом вместе с буквой. Например, простое слово «дом» нередко остаётся одним токеном, а редкое длинное слово распадается на несколько фрагментов.

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

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

Почему русский язык дороже английского

Токенизаторы создавались в основном на английских данных, и английский текст они сжимают эффективнее. Слова на английском чаще умещаются в один-два токена. Русское слово из-за падежей, окончаний и суффиксов нередко разбивается на несколько частей.

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

Российские разработчики, такие как Сбер и Яндекс, обучают токенизаторы с учётом русского языка, поэтому для GigaChat и YandexGPT это различие меньше. Длинные и редкие слова, термины, фамилии и слова с опечатками всё равно распадаются на большее число фрагментов и обходятся дороже коротких привычных.

Что такое контекстное окно и лимиты

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

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

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

Как токены превращаются в деньги

Компании, предоставляющие доступ к моделям через программный интерфейс, обычно считают плату за токены. Отдельно оцениваются входные, то есть то, что отправили модели, и выходные, то есть то, что она написала. Выходные токены, как правило, стоят дороже входных. Цены указывают за определённое количество токенов, например за миллион.

Для обычного пользователя в чат-приложении это скрыто: он платит подпиской или пользуется бесплатным тарифом с ограничением по числу сообщений. Но лимиты в подписках тоже, по сути, привязаны к потреблению вычислений. Именно поэтому длинные документы и сложные задачи быстрее исчерпывают квоту.

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

Как экономить токены

Несколько практичных приёмов помогают тратить меньше и получать более точные ответы:

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

Есть и обратная сторона. Слишком сжатый запрос без деталей даёт расплывчатый ответ, и в итоге приходится переспрашивать, то есть тратить больше. Баланс в том, чтобы указать цель, нужный формат и существенные ограничения, но не писать лишнего.

Почему токены влияют на странные ошибки

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

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

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