Что такое токен в ИИ и языковых моделях?

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

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

Как работают токены

Токены создаются токенизатором — отдельной программой, которая находится между вашим текстом и моделью. Наиболее распространённые схемы — это byte-pair encoding (BPE) и WordPiece: они начинают с отдельных символов и многократно объединяют самые частые соседние пары в более длинные единицы. В результате получается фиксированный словарь — обычно от 30 000 до 200 000 записей, — который сочетает короткие частые слова с многократно используемыми подсловами. Частое слово вроде the обычно превращается в один токен, а редкое или выдуманное слово вроде unbelievableness разбивается на несколько: un, believ, able, ness.

Поскольку средняя длина английского слова — около четырёх символов, грубое эмпирическое правило таково: 100 токенов ≈ 75 английских слов, хотя эта цифра зависит от токенизатора и языка. Стоимость, ограничения контекста и скорость генерации измеряются в токенах, а не в словах или символах. Модель с контекстным окном в 200 000 токенов может вместить в одном запросе примерно длинный роман плюс несколько научных статей.

Почему это важно

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

Ключевые понятия о токенах

  • Токенизация: алгоритм, который разбивает текст на токены, обычно с помощью BPE, WordPiece или Unigram.
  • Словарь: фиксированный список токенов, известных модели, с уникальным числовым идентификатором для каждой записи.
  • Специальные токены: зарезервированные символы, такие как <BOS>, <EOS> и маркеры заполнения, которые обозначают границы и структуру, а не содержание.
  • Контекстное окно: максимальное количество токенов, которое модель может обработать в одном запросе, включая вход и сгенерированный ответ.
  • Лимиты токенов: жёсткие ограничения, устанавливаемые поставщиками на количество токенов в запросе, часто разделённые на лимиты входа и выхода.

Для более глубокого погружения в byte-pair encoding практической отправной точкой будет разбор minbpe от Андрея Карпатого, а оригинальная статья Neural Machine Translation of Rare Words with Subword Units представила подход, на котором до сих пор строятся большинство современных токенизаторов.

You might also like

Похожие статьи