Все статьи
Нейросети · 3 мин

Токен в нейросети — что это простыми словами

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

Олег ЕмельяновДелаю продукты с помощью ИИ

Что это простыми словами

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

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

Есть разные способы такого разбиения — по словам целиком, по частям слов (самый частый подход в современных моделях называется BPE, byte pair encoding) и по отдельным символам. У каждого свои плюсы и свои потери.

Три способа порезать текст на токены — разный словарь и разная длина результата

Способ · Словами · Частями · Буквами · Словарь · Большой · Средний · Малый · Новое слово · Теряет · Делит · Всегда · Длина текста · Короче · Средне · Длиннее

Как это устроено

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

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

Токенизатор считает токены сам — ориентироваться на число слов не стоит

Сколько токенов в фразе «Привет, как дела?» · Точное число считает токенизатор модели — не ориентируйся на количество слов или букв, оно почти всегда другое.

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

Пример из жизни

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

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

С чего начать

Если собираешь продукт с ИИ, токены стоит держать в голове в трёх местах: при выборе модели — у каждой свой лимит контекстного окна, при расчёте стоимости запроса и при формулировке самого промпта. Чем короче и плотнее текст, тем меньше токенов он съедает.

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

как посчитать токены · токен это · Что такое токен в нейросети · словарь · Токенизатор — проверить текст · инструмент · токен это · контекст

Проверить, во сколько токенов превращается конкретный текст, можно в токенизаторе — большинство провайдеров моделей выкладывают такой инструмент в открытом доступе. Это быстрее, чем гадать по числу слов или символов.

Вопросы и ответы

Токен в нейросети — это что

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

Токен это слово или буква

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

Как посчитать токены в тексте

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

Читать ещё