Использовать дообученные классификаторы на базе YandexGPT
Чтобы выполнить запрос к классификатору дообученной в DataSphere модели, используйте метод classify Text Classification 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
-
Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex Foundation Models.
-
Чтобы воспользоваться примерами, установите cURL
.
Отправьте запрос к классификатору
Чтобы отправить запрос к классификатору:
-
Создайте файл
classify.py
и добавьте в него следующий код:#!/usr/bin/env python3 from __future__ import annotations from yandex_cloud_ml_sdk import YCloudML request_text = "Vieta's formulas" def main(): sdk = YCloudML( folder_id="<идентификатор_каталога>", auth="<API-ключ>", ) model = sdk.models.text_classifiers( "cls://<идентификатор_каталога>/<идентификатор_классификатора>" ) # The result will contain predictions within predefined classes # and the most weighty prediction will be "mathematics": 0.92 result = model.run(request_text) for prediction in result: print(prediction) if __name__ == "__main__": main()
Где:
-
request_text
— текстовое содержимое сообщения. Суммарное количество токенов на один запрос не должно превышать 8000.В качестве входных данных для запроса Yandex Cloud ML SDK может принимать строку, словарь, объект класса
TextMessage
или массив, содержащий любое сочетание указанных типов данных. Подробнее см. в разделе Использование Yandex Cloud ML SDK.
-
<идентификатор_каталога>
— идентификатор каталога, в котором создан сервисный аккаунт. -
<API-ключ>
— API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.
model
— идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud и идентификатор дообученной в DataSphere модели.
Имена классов, по которым модель будет распределять запросы, должны быть заданы в процессе дообучения модели, поэтому не передаются в запросе.
-
-
Выполните созданный файл:
python3 classify.py
В ответе сервис вернет результаты классификации с определенными значениями вероятности (
confidence
) принадлежности текста запроса к каждому из классов
Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.
-
Создайте файл с телом запроса (например,
body.json
):{ "modelUri": "cls://<идентификатор_каталога>/<идентификатор_классификатора>", "text": "<текст_запроса>" }
Где:
modelUri
— идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud и идентификатор дообученной в DataSphere модели.text
— текстовое содержимое сообщения. Суммарное количество токенов на один запрос не должно превышать 8000.
Имена классов, по которым модель будет распределять запросы, должны быть заданы в процессе дообучения модели, поэтому не передаются в запросе.
-
Отправьте запрос к классификатору, выполнив команду:
export IAM_TOKEN=<IAM-токен> curl \ --request POST \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data "@<путь_к_файлу_с_телом_запроса>" \ "https://llm.api.cloud.yandex.net:443/foundationModels/v1/textClassification"
Примечание
Эндпоинт
https://llm.api.cloud.yandex.net:443/foundationModels/v1/textClassification
работает только с дообученными классификаторами. Для классификаторов по промту используйтеhttps://llm.api.cloud.yandex.net/foundationModels/v1/fewShotTextClassification
.В ответе сервис вернет результаты классификации с определенными значениями вероятности (
confidence
) принадлежности текста запроса к каждому из классов:{ "predictions": [ { "label": "<название_класса_1>", "confidence": 0.00010150671005249023 }, { "label": "<название_класса_2>", "confidence": 0.000008225440979003906 }, ... { "label": "<название_класса_n>", "confidence": 0.93212890625 } ], "modelVersion": "<версия_модели>" }
При многоклассовой классификации сумма значений полей вероятности (confidence
) для всех классов всегда равна 1
.
При классификации с несколькими метками значение поля вероятности (confidence
) для каждого класса рассчитывается независимо (сумма значений не равна 1
).
См. также
- Классификаторы на базе YandexGPT
- Примеры работы с ML SDK на GitHub