Использование API пользовательских категорий (стандартный)
API пользовательских категорий (стандартный) позволяет создавать собственные категории контента для вашего варианта использования и обучать безопасность содержимого ИИ Azure, чтобы обнаружить их в новом содержимом.
Внимание
Эта функция доступна только в определенных регионах Azure. См . сведения о доступности региона.
Внимание
Примеры данных в этом руководстве могут содержать оскорбительные материалы. Рекомендуется использовать усмотрение пользователя.
Необходимые компоненты
- подписка Azure — создайте бесплатную учетную запись.
- После получения подписки Azure создайте ресурс безопасности содержимого в портал Azure, чтобы получить ключ и конечную точку. Введите уникальное имя ресурса, выберите подписку и выберите группу ресурсов, поддерживаемый регион и поддерживаемую ценовую категорию. Затем выберите Создать.
- Развертывание ресурса занимает несколько минут. После завершения выберите ресурс. В области слева в разделе "Управление ресурсами" выберите "Ключ подписки" и "Конечная точка". Скопируйте конечную точку и любой из ключевых значений в временное расположение для последующего использования.
- Также создайте контейнер хранилища BLOB-объектов Azure, где вы будете хранить файл заметки для обучения.
- Одна из следующих установленных:
- cURL для вызовов REST API.
- Установлен Python 3.x
Подготовка обучающих данных
Чтобы обучить пользовательскую категорию, вам потребуется пример текстовых данных, представляющих категорию, которую вы хотите обнаружить. Выполните следующие действия, чтобы подготовить примеры данных:
Сбор или запись примеров данных:
- Качество примеров данных важно для обучения эффективной модели. Стремится собрать по крайней мере 50 положительных выборок, которые точно представляют содержимое, которое вы хотите определить. Эти примеры должны быть четкими, разнообразными и напрямую связаны с определением категории.
- Отрицательные примеры не требуются, но они могут улучшить способность модели различать релевантный контент от неуместного содержимого. Чтобы повысить производительность, нацелуйтесь на 50 примеров, которые не связаны с положительным определением регистра. Они должны быть разнообразными, но по-прежнему в контексте содержимого, с которым будет сталкиваться ваша модель. Тщательно выбирайте отрицательные выборки, чтобы убедиться, что они непреднамеренно перекрываются с положительной категорией.
- Стремиться к балансу между количеством положительных и отрицательных выборок. Неровный набор данных может предвзять модель, что приводит к тому, что она предпочитает один тип классификации по сравнению с другим, что может привести к более высокой скорости ложных срабатываний или отрицательных значений.
Используйте текстовый редактор для форматирования данных в 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}
Отправьте JSONL-файл в контейнер BLOB-объектов служба хранилища Azure учетной записи. Скопируйте URL-адрес большого двоичного объекта в временное расположение для последующего использования.
Предоставление доступа к хранилищу
Затем необходимо предоставить ресурс безопасности содержимого для чтения из ресурса служба хранилища Azure. Включите управляемое удостоверение, назначаемое системой для экземпляра Безопасности содержимого ИИ Azure, и назначьте роль участника данных BLOB-объектов хранилища, владельца или читателя удостоверения:
Включите управляемое удостоверение для экземпляра безопасности содержимого ИИ Azure.
Назначьте роль участника или владельца данных BLOB-объектов хранилища управляемому удостоверению. Все роли, выделенные ниже, должны работать.
Создание и обучение пользовательской категории
Внимание
Разрешить достаточно времени для обучения модели
Сквозное выполнение обучения пользовательских категорий может занять от пяти часов до десяти часов. Запланируйте конвейер модерации соответствующим образом и выделите время:
- Сбор и подготовка примеров данных
- Учебный процесс
- Оценка и корректировка модели
В приведенных ниже командах замените <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"