Оценить размер в токенах
Нейросети работают с текстами, представляя слова и предложения в виде токенов.
Foundation Models использует свой токенизатор для обработки текстов. Чтобы рассчитать размер текста или запроса к модели YandexGPT в токенах, используйте методы Tokenize API генерации текста или Yandex Cloud ML SDK.
Число токенов в одном и том же тексте может отличаться для каждой модели.
Перед началом работы
Чтобы воспользоваться примерами:
-
Создайте сервисный аккаунт и назначьте ему роль
ai.languageModels.user
. -
Получите и сохраните API-ключ сервисного аккаунта.
В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.
-
С помощью менеджера пакетов pip
установите библиотеку ML SDK:pip install yandex-cloud-ml-sdk
Рассчитать размер запроса
В приведенном примере оценивается размер запроса к модели YandexGPT. Контекст запроса задается в переменной messages
.
-
Создайте файл
tokenize.py
и добавьте в него следующий код:#!/usr/bin/env python3 from __future__ import annotations from yandex_cloud_ml_sdk import YCloudML messages = [ {"role": "system", "text": "Найди ошибки в тексте и исправь их"}, {"role": "user", "text": "Ашипки саме сибя ни исрпвят."}, ] def main(): sdk = YCloudML( folder_id="<идентификатор_каталога>", auth="<API-ключ>", ) model = sdk.models.completions("yandexgpt") result = model.tokenize(messages) for token in result: print(token) if __name__ == "__main__": main()
Где:
Примечание
В качестве входных данных для запроса Yandex Cloud ML SDK может принимать строку, словарь, объект класса
TextMessage
или массив, содержащий любое сочетание указанных типов данных. Подробнее см. в разделе Использование Yandex Cloud ML SDK.-
messages
— массив сообщений, которые задают контекст для модели:-
role
— роль отправителя сообщения:user
— предназначена для отправки пользовательских сообщений к модели.system
— позволяет задать контекст запроса и определить поведение модели.assistant
— используется для ответов, которые генерирует модель. При работе в режиме чата ответы модели, помеченные рольюassistant
, включаются в состав сообщения для сохранения контекста беседы. Не передавайте сообщения пользователя с этой ролью.
-
text
— текстовое содержимое сообщения.
-
-
<идентификатор_каталога>
— идентификатор каталога, в котором создан сервисный аккаунт. -
<API-ключ>
— API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.
-
-
Выполните созданный файл:
python3 tokenize.py
Результат выполнения запроса — список полученных токенизатором токенов:
Token(id=1, special=True, text='<s>') Token(id=16861, special=False, text='▁Пользователь') Token(id=125851, special=False, text=':') Token(id=93552, special=False, text='▁Найди') Token(id=14660, special=False, text='▁ошибки') Token(id=273, special=False, text='▁в') Token(id=28802, special=False, text='▁тексте') Token(id=286, special=False, text='▁и') Token(id=16283, special=False, text='▁исправ') Token(id=125839, special=False, text='ь') Token(id=1349, special=False, text='▁их') Token(id=3, special=True, text='[NL]') Token(id=556, special=False, text='▁А') Token(id=500, special=False, text='ши') Token(id=4291, special=False, text='пки') Token(id=680, special=False, text='▁са') Token(id=527, special=False, text='ме') Token(id=822, special=False, text='▁си') Token(id=1377, special=False, text='бя') Token(id=834, special=False, text='▁ни') Token(id=1634, special=False, text='▁ис') Token(id=125813, special=False, text='р') Token(id=125828, special=False, text='п') Token(id=30104, special=False, text='вят') Token(id=125820, special=False, text='.') Token(id=3, special=True, text='[NL]') Token(id=3, special=True, text='[NL]') Token(id=125904, special=False, text='А') Token(id=845, special=False, text='сси') Token(id=57590, special=False, text='стент') Token(id=125851, special=False, text=':') Token(id=4, special=True, text='[SEP]')
См. также
- Токены
- Обзор возможностей генерации текста
- Примеры работы с ML SDK на GitHub