Перейти к содержимому

Бесплатный счетчик токенов для GPT-4, ChatGPT и AI-моделей

Точный счетчик токенов с использованием библиотеки tiktoken от OpenAI. Подсчет токенов для моделей GPT-4, ChatGPT и GPT-3. Управление затратами API и мгновенная оптимизация AI-промптов.

Счетчик токенов

Кодировка

Неверный ввод

Калькулятор загрузки...
📚

Документация

Что такое счётчик токенов?

Счётчик токенов измеряет, на какое количество токенов разбивается фрагмент текста при чтении языковой моделью ИИ. Токены — это небольшие фрагменты текста: целые слова, части слов или знаки препинания, которые такие модели, как GPT-4 и ChatGPT, обрабатывают вместо исходных букв. Этот инструмент использует tiktoken — опубликованную OpenAI библиотеку токенизации с открытым исходным кодом, поэтому подсчёт совпадает с результатом, который выдали бы собственные модели и API OpenAI.

Как работает токенизация

Токенизатор не просто считает слова. Он пропускает текст через алгоритм, называемый кодированием пар байт (BPE). Алгоритм начинает с отдельных байтов текста и многократно объединяет наиболее часто встречающиеся соседние пары на основе закономерностей, выявленных при обучении на большом массиве текста. В результате получается фиксированный словарь из десятков тысяч распространённых фрагментов: целых коротких слов, часто встречающихся частей слов и отдельных символов для редких последовательностей.

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

Поддерживаемые этим инструментом кодировки

Tiktoken предлагает несколько кодировок, каждая из которых связана с определённым семейством моделей OpenAI. Этот инструмент поддерживает три:

КодированиеИспользуется моделямиПриблизительный размер словаря
cl100k_baseМодели семейств GPT-3,5 и GPT-4, ChatGPTоколо 100 000 токенов
p50k_baseБолее поздние модели GPT-3около 50 000 токенов
r50k_baseБолее ранние модели GPT-3 и GPT-2около 50 000 токенов

По умолчанию выбирается cl100k_base, поскольку она охватывает семейство моделей, которым сегодня пользуется большинство людей. Один и тот же текст может давать разное количество токенов при использовании разных кодировок, поскольку каждая из них обучалась на разных текстах и по-разному объединяет символы.

Как рассчитать количество токенов

Не существует простой арифметической формулы, позволяющей преобразовать количество символов или слов в количество токенов, поскольку объединение в BPE зависит от конкретного текста и обученного словаря. Единственный точный способ — пропустить текст через сам токенизатор:

  1. Выберите кодировку, соответствующую целевой модели.
  2. Передайте текст токенизатору этой кодировки.
  3. Посчитайте получившийся список идентификаторов токенов. Длина этого списка и есть количество токенов.

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

Разобранный пример

Рассмотрим предложение:

«Токенизация разделяет текст на фрагменты.»

При использовании кодировки cl100k_base tiktoken разбивает его на 7 токенов:

Token, ization, splits, text, into, pieces, .

Обратите внимание: само слово «Tokenization» разбивается на два токена — «Token» и «ization», тогда как все остальные слова остаются целыми. Последняя точка является отдельным токеном. Поэтому предложение длиной 37 символов и состоящее из 5 слов даёт 7 токенов, а не 6.

Почему важно количество токенов

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

Часто задаваемые вопросы

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

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

Считаются ли знаки препинания токенами? Да. Знаки препинания обычно считаются отдельными токенами, но иногда объединяются с соседним символом в зависимости от того, насколько часто такое сочетание встречалось при обучении токенизатора.

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

Насколько точен этот инструмент? Он подсчитывает токены с помощью библиотеки tiktoken, разработанной OpenAI, используя ту же логику кодирования, которую OpenAI применяет внутри своих систем, поэтому результат совпадает с тем, что вернул бы вызов API OpenAI для того же текста и той же кодировки.

Может ли этот инструмент считать токены для моделей не от OpenAI? Он использует кодировки tiktoken, созданные для моделей OpenAI. Другие провайдеры, например Anthropic или Google, используют собственные токенизаторы, которые могут выдавать другое количество токенов для того же текста.

Источники

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico и др. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B. и др. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.