Partilhar via


Usar a API de categorias personalizadas (padrão) (visualização)

A API de categorias personalizadas (padrão) permite criar suas próprias categorias de conteúdo para seu caso de uso e treinar a Segurança de Conteúdo do Azure AI para detetá-las em novos conteúdos.

Importante

Esse recurso só está disponível em determinadas regiões do Azure. Consulte Disponibilidade da região.

Atenção

Os dados de exemplo neste guia podem conter conteúdo ofensivo. Aconselha-se a discrição do utilizador.

Pré-requisitos

  • Uma assinatura do Azure - Crie uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso de Segurança de Conteúdo no portal do Azure para obter sua chave e ponto de extremidade. Introduza um nome exclusivo para o seu recurso, selecione a sua subscrição e selecione um grupo de recursos, uma região suportada e um escalão de preços suportado. Depois, selecione Criar.
    • O recurso leva alguns minutos para ser implantado. Depois que terminar, selecione ir para recurso. No painel esquerdo, em Gerenciamento de Recursos, selecione Chave de Assinatura e Ponto de Extremidade. Copie o ponto de extremidade e qualquer um dos valores-chave para um local temporário para uso posterior.
  • Crie também um contêiner de armazenamento de blob do Azure onde você manterá seu arquivo de anotação de treinamento.
  • Um dos seguintes instalados:

Prepare seus dados de treinamento

Para treinar uma categoria personalizada, você precisa de dados de texto de exemplo que representem a categoria que você deseja detetar. Siga estas etapas para preparar seus dados de exemplo:

  1. Colete ou escreva seus dados de exemplo:

    • A qualidade dos seus dados de amostra é importante para treinar um modelo eficaz. Procure coletar pelo menos 50 amostras positivas que representem com precisão o conteúdo que você deseja identificar. Estas amostras devem ser claras, variadas e diretamente relacionadas com a definição da categoria.
    • Amostras negativas não são necessárias, mas podem melhorar a capacidade do modelo de distinguir conteúdo relevante de conteúdo irrelevante. Para melhorar o desempenho, procure 50 amostras que não estejam relacionadas com a definição de caso positivo. Estes devem ser variados, mas ainda dentro do contexto do conteúdo que seu modelo encontrará. Escolha cuidadosamente as amostras negativas para garantir que não se sobrepõem inadvertidamente à categoria positiva.
    • Procurar um equilíbrio entre o número de amostras positivas e negativas. Um conjunto de dados desigual pode enviesar o modelo, fazendo com que ele favoreça um tipo de classificação em detrimento de outro, o que pode levar a uma maior taxa de falsos positivos ou negativos.
  2. Use um editor de texto para formatar seus dados em um arquivo .jsonl . Abaixo está um exemplo do formato apropriado. Os exemplos de categoria devem ser definidos isPositive como true. Os exemplos negativos são opcionais, mas podem melhorar o desempenho:

    {"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. Carregue o arquivo .jsonl em um contêiner de blob da conta de Armazenamento do Azure. Copie o URL do blob para um local temporário para uso posterior.

Conceder acesso ao armazenamento

Em seguida, você precisa conceder ao seu recurso de Segurança de Conteúdo acesso para ler o recurso de Armazenamento do Azure. Habilite a identidade gerenciada atribuída pelo sistema para a instância de Segurança de Conteúdo do Azure AI e atribua a função de Contribuidor/Proprietário de Dados de Blob de Armazenamento à identidade:

Importante

Somente o Contribuidor de Dados de Blob de Armazenamento ou o Proprietário de Dados de Blob de Armazenamento são funções válidas a serem prosseguidas.

  1. Habilite a identidade gerenciada para a instância de Segurança de Conteúdo do Azure AI.

    Captura de ecrã do portal do Azure que permite a identidade gerida.

  2. Atribua a função de Contribuidor/Proprietário de Dados de Blob de Armazenamento à identidade Gerenciada. Quaisquer funções destacadas abaixo devem funcionar.

    Captura de ecrã do ecrã Adicionar atribuição de função no portal do Azure.

    Captura de ecrã das funções atribuídas no portal do Azure.

    Captura de ecrã da função de identidade gerida.

Criar e treinar uma categoria personalizada

Importante

Dê tempo suficiente para o treinamento do modelo

A execução de ponta a ponta do treinamento de categoria personalizada pode levar de cerca de cinco horas a dez horas. Planeje seu pipeline de moderação de acordo e aloque tempo para:

  • Coletando e preparando seus dados de amostra
  • O processo de formação
  • Avaliação e ajustes do modelo

Nos comandos abaixo, substitua <your_api_key>, <your_endpoint>e outros parâmetros necessários pelos seus próprios valores. Em seguida, digite cada comando em uma janela do terminal e execute-o.

Criar nova versão de categoria

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\"
     }"

Inicie o processo de construção da categoria:

Depois de receber a resposta, armazene o ID da operação (referido como id) de forma temporária. Você precisa dessa ID para recuperar o status da compilação usando a API Get status .

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"

Obtenha o status de compilação da categoria:

Para recuperar o status, utilize o id obtido da resposta anterior da API e coloque-o no caminho da API abaixo.

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"

Analisar texto com uma categoria personalizada

Execute o seguinte comando para analisar o texto com sua categoria personalizada. Substitua <your_category_name> pelo seu próprio valor:

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
        }"

Outras operações de categorias personalizadas

Lembre-se de substituir os espaços reservados abaixo por seus valores reais para a chave da API, o ponto de extremidade e o conteúdo específico (nome da categoria, definição e assim por diante). Estes exemplos ajudam-no a gerir as categorias personalizadas na sua conta.

Obter uma categoria personalizada ou uma versão específica da mesma

Substitua os espaços reservados por seus próprios valores e execute o seguinte comando em uma janela do terminal:

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"

Listar categorias de suas versões mais recentes

Substitua os espaços reservados por seus próprios valores e execute o seguinte comando em uma janela do terminal:

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"

Excluir uma categoria personalizada ou uma versão específica dela

Substitua os espaços reservados por seus próprios valores e execute o seguinte comando em uma janela do terminal:

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"