Что такое токен в нейросети
Токен — кусочек текста, с которым работает языковая модель. Модель читает и пишет не буквами и не словами, а токенами. Частое слово может быть одним токеном, редкое делится на несколько частей, а иногда токен — это одна буква, цифра, знак препинания или пробел вместе с началом слова.
Как текст делится на токены
Деление задаёт токенизатор — часть модели, которую составляют до обучения: в словарь токенов попадают самые частые кусочки текста из обучающих данных. Поэтому у разных моделей разное деление, и одна и та же фраза у них занимает разное число токенов.
Условный пример, как может разделиться слово:
нейросеть → ней | рос | еть
программа → программаУ конкретной модели деление будет своим: точно его показывают только инструменты самого разработчика модели.
Сколько токенов в тексте
Для английского текста часто называют такую оценку: один токен — примерно 4 символа, или около трёх четвертей слова. Русский текст у многих моделей делится мельче, и тот же смысл занимает больше токенов, чем по-английски: словари токенов составлены по данным, где английского больше. Точное число зависит от модели.
Почему это важно
- Контекстное окно — сколько текста модель видит за раз — измеряется в токенах. В него входят и ваши сообщения, и ответы модели (справка Что такое контекстное окно).
- Лимит ответа. Длину ответа ограничивают числом токенов — в API (доступе к модели из своих программ) это настройка вроде
max_tokens. Ответ, упёршийся в лимит, обрывается на полуслове. - Цена. Платные API обычно считают оплату за токены — отдельно за входящие (запрос) и исходящие (ответ), часто за миллион токенов.
- Скорость. Модель пишет ответ токен за токеном, поэтому скорость указывают в токенах в секунду.
Подводный камень: подсчёт букв
Модель не видит отдельных букв внутри токена. Поэтому вопросы вроде «сколько букв "р" в слове» или «напишите слово задом наперёд» для неё сложнее, чем кажется, и она может ошибаться там, где ребёнок не ошибётся.
Как токены превращаются в ответ — в уроке Как работает языковая модель.