Использование API пользовательских категорий (стандартный)

API пользовательских категорий (стандартный) позволяет создавать собственные категории контента для вашего варианта использования и обучать безопасность содержимого ИИ Azure, чтобы обнаружить их в новом содержимом.

Внимание

Эта функция доступна только в определенных регионах Azure. См . сведения о доступности региона.

Внимание

Примеры данных в этом руководстве могут содержать оскорбительные материалы. Рекомендуется использовать усмотрение пользователя.

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион и поддерживаемую ценовую категорию. Затем выберите Создать.
    • Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Скопируйте конечную точку и любой из ключевых значений в временное расположение для последующего использования.
  • Также создайте контейнер хранилища BLOB-объектов Azure, где вы будете хранить файл заметки для обучения.
  • Одна из следующих установленных:

Подготовка обучающих данных

Чтобы обучить пользовательскую категорию, вам потребуется пример текстовых данных, представляющих категорию, которую вы хотите обнаружить. Выполните следующие действия, чтобы подготовить примеры данных:

  1. Сбор или запись примеров данных:

    • Качество примеров данных важно для обучения эффективной модели. Стремится собрать по крайней мере 50 положительных выборок, которые точно представляют содержимое, которое вы хотите определить. Эти примеры должны быть четкими, разнообразными и напрямую связаны с определением категории.
    • Отрицательные примеры не требуются, но они могут улучшить способность модели различать релевантный контент от неуместного содержимого. Чтобы повысить производительность, нацелуйтесь на 50 примеров, которые не связаны с положительным определением регистра. Они должны быть разнообразными, но по-прежнему в контексте содержимого, с которым будет сталкиваться ваша модель. Тщательно выбирайте отрицательные выборки, чтобы убедиться, что они непреднамеренно перекрываются с положительной категорией.
    • Стремиться к балансу между количеством положительных и отрицательных выборок. Неровный набор данных может предвзять модель, что приводит к тому, что она предпочитает один тип классификации по сравнению с другим, что может привести к более высокой скорости ложных срабатываний или отрицательных значений.
  2. Используйте текстовый редактор для форматирования данных в JSONL-файле . Ниже приведен пример соответствующего формата. Примеры категорий должны иметь значение isPositive true. Отрицательные примеры являются необязательными, но могут повысить производительность:

    {"text": "This is the 1st sample.", "isPositive": true}
    {"text": "This is the 2nd sample.", "isPositive": true}
    {"text": "This is the 3rd sample (negative).", "isPositive": false}
    
  3. Отправьте JSONL-файл в контейнер BLOB-объектов служба хранилища Azure учетной записи. Скопируйте URL-адрес большого двоичного объекта в временное расположение для последующего использования.

Предоставление доступа к хранилищу

Затем необходимо предоставить ресурс безопасности содержимого для чтения из ресурса служба хранилища Azure. Включите управляемое удостоверение, назначаемое системой для экземпляра Безопасности содержимого ИИ Azure, и назначьте роль участника данных BLOB-объектов хранилища, владельца или читателя удостоверения:

  1. Включите управляемое удостоверение для экземпляра безопасности содержимого ИИ Azure.

    Снимок экрана: портал Azure включение управляемого удостоверения.

  2. Назначьте роль участника или владельца данных BLOB-объектов хранилища управляемому удостоверению. Все роли, выделенные ниже, должны работать.

    Снимок экрана: экран добавления назначения ролей в портал Azure.

    Снимок экрана: назначенные роли в портал Azure.

    Снимок экрана: роль управляемого удостоверения.

Создание и обучение пользовательской категории

Внимание

Разрешить достаточно времени для обучения модели

Сквозное выполнение обучения пользовательских категорий может занять от пяти часов до десяти часов. Запланируйте конвейер модерации соответствующим образом и выделите время:

  • Сбор и подготовка примеров данных
  • Учебный процесс
  • Оценка и корректировка модели

В приведенных ниже командах замените <your_api_key>и <your_endpoint>другие необходимые параметры собственными значениями. Затем введите каждую команду в окне терминала и запустите ее.

Создание новой версии категории

curl -X PUT "<your_endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"categoryName\": \"<your_category_name>\",
        \"definition\": \"<your_category_definition>\",
        \"sampleBlobUrl\": \"https://example.blob.core.windows.net/example-container/sample.jsonl\"
     }"

Запустите процесс сборки категории:

После получения ответа сохраните идентификатор операции (который называется id) временным. Этот идентификатор необходим для получения состояния сборки с помощью API получения состояния get.

curl -X POST "<your_endpoint>/contentsafety/text/categories/<your_category_name>:build?api-version=2024-02-15-preview&version={version}" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Получите состояние сборки категории:

Чтобы получить состояние, используйте id полученный из предыдущего ответа API и поместите его в путь к API ниже.

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Анализ текста с помощью настраиваемой категории

Выполните следующую команду, чтобы проанализировать текст с помощью настраиваемой категории. Замените <your_category_name> собственным значением:

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
        \"text\": \"Example text to analyze\",
        \"categoryName\": \"<your_category_name>\", 
        \"version\": 1
        }"

Другие пользовательские операции категории

Не забудьте заменить заполнители ниже фактическими значениями ключа API, конечной точки и определенного содержимого (имя категории, определение и т. д.). Эти примеры помогают управлять настраиваемыми категориями в вашей учетной записи.

Получение настраиваемой категории или определенной версии ее

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X GET "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Список категорий последних версий

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X GET "<endpoint>/contentsafety/text/categories?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

Удаление настраиваемой категории или определенной версии ее

Замените заполнители собственными значениями и выполните следующую команду в окне терминала:

curl -X DELETE "<endpoint>/contentsafety/text/categories/<your_category_name>?api-version=2024-02-15-preview&version=1" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"