Классификаторы на базе YandexGPT

Yandex AI Studio позволяет классифицировать передаваемые в промптах текстовые запросы. Классификация в моделях на базе YandexGPT реализована в AI Studio Text Classification API.

В AI Studio доступна классификация трех типов:

  • Бинарная классификация относит запрос к одному из двух возможных классов. Например, спам или не спам.
  • Многоклассовая классификация относит запрос к одному (и только к одному) из более чем двух классов. Например, центральный процессор компьютера может относиться только к одному поколению.
  • Классификация с несколькими метками позволяет относить запрос одновременно к нескольким разным классам, которые не являются взаимоисключающими. Например, к одному и тому же посту в социальной сети может относиться одновременно несколько хештегов.

Модели классификации доступны только в синхронном режиме.

Сервис AI Studio предоставляет классификаторы двух видов:

  • по промпту на базе YandexGPT Lite и YandexGPT Pro — доступны бинарная и многоклассовая классификации;
  • дообучаемые классификаторы на базе YandexGPT Lite — доступны все поддерживаемые виды классификации.

Чтобы использовать модели классификаторов Yandex AI Studio, необходима роль ai.languageModels.user или выше на каталог.

Классификаторы по промпту

Классификаторы по промпту AI Studio позволяют выполнять бинарную и многоклассовую классификацию, не требуют дообучения модели и управляются промптом. Метод fewShotClassify Text Classification API позволяет использовать два классификатора по промпту: Zero-shot и Few-shot. В метод fewShotClassify можно передать от двух до двадцати классов.

Совет

Задавайте осмысленные названия для классов labels: это обязательное условие получения корректных результатов классификации. Например: вместо классов хм и фз используйте классы химия и физика.

Классификатор Zero-shot

Классификатор Zero-shot позволяет выполнять бинарную и многоклассовую классификацию, передавая в теле запроса только идентификатор модели, описание задания, текст запроса и массив с именами классов.

Формат тела запроса для классификатора Zero-shot:

{
          "modelUri": "string",
          "taskDescription": "string",
          "labels": [
            "string",
            "string",
            ...
            "string"
          ],
          "text": "string"
        }
        

Где:

  • modelUriидентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud.

  • taskDescription — текстовое описание задания для классификатора.

  • labels — массив классов.

    Задавайте осмысленные названия для классов labels: это обязательное условие получения корректных результатов классификации. Например: вместо классов хм и фз используйте классы химия и физика.

  • text — текстовое содержимое сообщения.

Для запросов к классификаторам Zero-shot используйте эндпоинт https://ai.api.cloud.yandex.net/foundationModels/v1/fewShotTextClassification.

Классификатор Few-shot

Классификатор Few-shot позволяет выполнять бинарную и многоклассовую классификацию, передавая в модель массив с примерами запросов для классов, заданных в поле labels. Примеры запросов передаются в поле samples тела запроса и позволяют улучшить качество результатов, выдаваемых классификатором.

Формат тела запроса для классификатора Few-shot:

{
          "modelUri": "string",
          "taskDescription": "string",
          "labels": [
            "string",
            "string",
            ...
            "string"
          ],
          "text": "string",
          "samples": [
            {
              "text": "string",
              "label": "string"
            },
            {
              "text": "string",
              "label": "string"
            },
            ...
            {
              "text": "string",
              "label": "string"
            }
          ]
        }
        

Где:

  • modelUriидентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud.

  • taskDescription — текстовое описание задания для классификатора.

  • labels — массив классов.

    Задавайте осмысленные названия для классов labels: это обязательное условие получения корректных результатов классификации. Например: вместо классов хм и фз используйте классы химия и физика.

  • text — текстовое содержимое сообщения.

  • samples — массив с примерами запросов для классов, заданных в поле labels. Примеры запросов передаются в виде объектов, каждый из которых содержит один образец текстового запроса и класс, к которому такой запрос следует относить.

Для запросов к классификаторам Few-shot используйте эндпоинт https://ai.api.cloud.yandex.net/foundationModels/v1/fewShotTextClassification.

Важно

Вы можете передавать несколько примеров классификации в одном запросе. Все примеры в запросе не должны превышать 6000 токенов.

Дообучаемые классификаторы

Если качество результатов классификаторов Zero-shot и Few-shot вас не устраивает или вам нужна многоклассовая классификация, дообучите собственный классификатор на базе YandexGPT Lite. Дообучаемые классификаторы могут быть обучены всем поддерживаемым типам классификации.

Чтобы выполнить запрос к дообученному классификатору, используйте метод classify Text Classification API. В этом случае в модель требуется передать только идентификатор модели и текст запроса. Имена классов, по которым модель будет распределять запросы, должны быть заданы в процессе дообучения модели и в запросе не передаются.

Формат тела запроса для дообученного классификатора:

{
          "modelUri": "string",
          "text": "string"
        }
        

Где:

  • modelUriидентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud и идентификатор дообученного классификатора.
  • text — текстовое содержимое сообщения. Суммарное количество токенов на один запрос не должно превышать 8000.

Для запросов к дообучаемым классификаторам используйте эндпоинт https://ai.api.cloud.yandex.net:443/foundationModels/v1/textClassification.

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

Формат ответа

Все типы классификаторов AI Studio возвращают результат в следующем формате:

{
          "predictions": [
            {
              "label": "string",
              "confidence": "number",
            },
            {
              "label": "string",
              "confidence": "number",
            },
            ...
            {
              "label": "string",
              "confidence": "number",
            }
          ],
          "modelVersion": "string"
        }
        

Где:

  • label — имя класса.

  • confidence — значение вероятности отнесения текста запроса к данному классу.

    При многоклассовой классификации сумма значений полей вероятности (confidence) для всех классов всегда равна 1.

    При классификации с несколькими метками значение поля вероятности (confidence) для каждого класса рассчитывается независимо (сумма значений не равна 1).

Примеры использования