Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, saiba como configurar os requisitos para iniciar o NER personalizado e criar um projeto.
Pré-requisitos
Antes de começar a usar o NER personalizado, você precisa:
- Uma assinatura do Azure – Crie uma gratuitamente.
Criar um Recurso de linguagem
Antes de começar a usar o NER personalizado, você precisa de um recurso do Azure Language in Foundry Tools. Recomendamos que você crie seu recurso de idioma e conecte uma conta de armazenamento a ele no portal do Azure. A criação de um recurso no portal do Azure permite que você crie uma conta de armazenamento do Azure ao mesmo tempo, com todas as permissões necessárias pré-configuradas. Você também pode ler mais no artigo para saber como usar um recurso pré-existente e configurá-lo para trabalhar com o reconhecimento personalizado de entidade nomeada.
Você também precisa de uma conta de armazenamento do Azure onde você carrega seus .txt documentos usados para treinar um modelo para extrair entidades.
Observação
- Você precisa ter uma função de proprietário atribuída no grupo de recursos para criar um recurso de Linguagem.
- Se você conectar uma conta de armazenamento pré-existente, deverá ter uma função de proprietário atribuída.
Criar recurso de Linguagem e conectar conta de armazenamento
Você pode criar um recurso da seguinte maneira:
- O Portal do Azure
- PowerShell
Observação
Você não deve mover a conta de armazenamento para um grupo de recursos ou uma assinatura diferente depois que ela estiver vinculada ao recurso de Linguagem do Azure.
Criar um recurso usando o portal do Azure
Entre no portal do Azure para criar um novo recurso do Azure Language in Foundry Tools.
Na janela que aparece, selecione Classificação de textos personalizada e reconhecimento de entidade nomeada personalizada nos recursos personalizados. Selecione Continuar para criar seu recurso na parte inferior da tela.
Crie um recurso de Linguagem com os detalhes a seguir.
Nome Descrição Subscrição Sua assinatura do Azure. Grupo de recursos Um grupo de recursos que contém seu recurso. É possível usar um grupo existente ou criar um do zero. Região A região para seu recurso de linguagem. Por exemplo, "Oeste dos EUA 2". Nome Um nome para seu recurso. Tipo de preço O tipo de preço do recurso de linguagem. Use a camada Gratuita (F0) para experimentar o serviço. Observação
Se você receber uma mensagem dizendo "sua conta de entrada não é um proprietário do grupo de recursos da conta de armazenamento selecionada", sua conta precisará ter uma função de proprietário atribuída no grupo de recursos antes que você possa criar um recurso de idioma. Entre em contato com o proprietário da assinatura do Azure para obter ajuda.
Na seção Classificação de textos personalizada e reconhecimento de entidade nomeada personalizada, selecione uma conta de armazenamento existente ou Nova conta de armazenamento. Esses valores são para ajudá-lo a começar e não necessariamente os valores da conta de armazenamento que você deseja usar em ambientes de produção. Para evitar a latência durante a criação do projeto, conecte-se a contas de armazenamento na mesma região que o recurso de idioma.
Valor de conta de armazenamento Valor recomendado Nome da conta de armazenamento Qualquer nome Tipo de conta de armazenamento LRS (armazenamento com redundância local) padrão Verifique se a opção Aviso de IA Responsável está marcada. Selecione Examinar + criar na parte inferior da página e depois Criar.
Criar um novo recurso de Linguagem usando o PowerShell
É possível criar um novo recurso e uma conta de armazenamento usando o modelo de CLI e os arquivos de parâmetros a seguir, que estão hospedados no GitHub.
Edite os seguintes valores no arquivo de parâmetros:
| Nome do parâmetro | Descrição do valor |
|---|---|
name |
Nome do recurso do Language |
location |
Região que hospeda o recurso. Para saber mais, confira Limites de serviço. |
sku |
Tipo de preço do recurso. |
storageResourceName |
O nome da conta de armazenamento |
storageLocation |
Região na qual sua conta de armazenamento está hospedada. |
storageSkuType |
SKU da conta de armazenamento. |
storageResourceGroupName |
Grupo de recursos da conta de armazenamento |
Use o comando do PowerShell a seguir para implantar o modelo do ARM (Azure Resource Manager) com os arquivos que você editou.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile <path-to-arm-template> `
-TemplateParameterFile <path-to-parameters-file>
Consulte a documentação do modelo do ARM para saber como implantar modelos e arquivos de parâmetro.
Observação
- O processo de conexão de uma conta de armazenamento ao recurso de idioma é irreversível. Ele não pode ser desconectado mais tarde.
- É possível conectar o recurso de linguagem a apenas uma conta de armazenamento.
Usando um recurso linguístico pré-existente
É possível usar um recurso de Linguagem existente para começar a usar o NER personalizado, desde que ele atenda aos requisitos abaixo:
| Requisito | Descrição |
|---|---|
| Regiões | Verifique se o recurso existente está provisionado em uma das regiões com suporte. Caso contrário, você precisará criar um novo recurso em uma dessas regiões. |
| Tipo de preço | Saiba mais sobre os tipos de preço com suporte. |
| Identidade gerenciada | Habilite a configuração da identidade gerenciada do recurso. Se ela não estiver habilitada, veja a próxima seção. |
Para usar o reconhecimento personalizado de entidade nomeada, você precisará criar uma conta de armazenamento do Azure se ainda não tiver uma.
Habilitar o gerenciamento de identidade para o recurso
O recurso de Linguagem deve ter gerenciamento de identidade, para habilitá-lo usando o portal do Azure:
- Acessar o recurso de Linguagem
- No menu à esquerda, na seção Gerenciamento de Recursos, selecione Identidade
- Na guia Atribuído pelo sistema, defina o Status como Ativado
Habilite o recurso de reconhecimento de entidade nomeada personalizada
Habilite o recurso Classificação de textos personalizada/Reconhecimento de entidade nomeada personalizada no portal do Azure.
- Acesse o recurso de linguagem no portal do Azure.
- No menu do lado esquerdo, na seção Gerenciamento de Recursos, selecione Recursos.
- Habilite o recurso Classificação de textos personalizada / Reconhecimento de entidade nomeada personalizada.
- Conecte-se à conta de armazenamento.
- Escolha Aplicar.
Importante
Verifique se o usuário que está fazendo alterações tenha a função colaborador de dados do blob de armazenamento atribuída a ele.
Adicionar funções necessárias
Use as etapas a seguir para definir as funções necessárias do recurso de Linguagem e a conta de armazenamento.
Funções para o recurso Azure Language in Foundry Tools
Acesse a conta de armazenamento e o recurso de Linguagem no portal do Azure.
Selecione Controle de Acesso (IAM) no painel esquerdo.
Selecione Adicionar para Adicionar Atribuições de Função e escolha a função apropriada para a conta.
Você precisa ter a função de proprietário ou colaborador atribuída no recurso de Linguagem.
Em Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço
Selecione Selecionar membros
Selecione o nome de usuário. É possível pesquisar nomes de usuário no campo Selecionar. Repita isso para todas as funções.
Repita essas etapas para todas as contas de usuário que precisam de acesso a esse recurso.
Funções para sua conta de armazenamento
- Acesse a página da conta de armazenamento no portal do Azure.
- Selecione Controle de Acesso (IAM) no painel esquerdo.
- Selecione Adicionar para Adicionar Atribuições de Função e escolha a função de Colaborador de dados do blob de armazenamento na conta de armazenamento.
- Em Atribuir acesso a, selecione Identidade Gerenciada.
- Selecione Selecionar membros
- Selecione a assinatura e Linguagem como a identidade gerenciada. É possível pesquisar nomes de usuário no campo Selecionar.
Funções para seu usuário
Importante
Se você ignorar esta etapa, receberá um erro 403 ao tentar se conectar ao seu projeto personalizado. É importante que o usuário atual tenha essa função para acessar dados de blob da conta de armazenamento, mesmo que você seja o proprietário da conta de armazenamento.
- Acesse a página da conta de armazenamento no portal do Azure.
- Selecione Controle de Acesso (IAM) no painel esquerdo.
- Selecione Adicionar para Adicionar Atribuições de Função e escolha a função de Colaborador de dados do blob de armazenamento na conta de armazenamento.
- Em Atribuir acesso a, selecione Usuário, grupo ou entidade de serviço.
- Selecione Selecionar membros
- Selecione seu Usuário. É possível pesquisar nomes de usuário no campo Selecionar.
Importante
Se você tiver uma rede virtual ou um ponto de extremidade privado, selecione Permitir que os serviços do Azure na lista de serviços confiáveis acessem essa conta de armazenamento no portal do Azure.
Habilite o CORS para sua conta de armazenamento
Permita os métodos (GET, PUT, DELETE) ao habilitar o CORS (compartilhamento de recursos entre origens).
Defina o campo de origens permitido como https://language.cognitive.azure.com. Permita todo o cabeçalho adicionando * aos valores de cabeçalho permitidos e defina a idade máxima como 500.
Criar um projeto personalizado de reconhecimento de entidade nomeada (API REST)
Depois de configurar o recurso e o contêiner de armazenamento, crie um novo projeto NER personalizado. Um projeto é uma área de trabalho para a criação de modelos de IA personalizados com base em seus dados. Somente você pode acessar seu projeto junto com outras pessoas que têm acesso ao recurso do Azure que está sendo usado. Se você rotulou os dados, poderá usá-los para começar importando um projeto.
Para começar a criar um modelo de reconhecimento de entidade nomeada personalizada, você precisa criar um projeto. A criação de um projeto permite rotular dados, treinar, avaliar, melhorar e implantar seus modelos.
Observação
O nome do projeto diferencia maiúsculas e minúsculas em todas as operações.
Crie uma solicitação PATCH usando a URL, os cabeçalhos e o corpo JSON a seguir para criar seu projeto.
URL de Solicitação
Use a URL a seguir para criar um projeto. Substitua os espaços reservados a seguir pelos seus próprios valores.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Espaço reservado | Valor | Exemplo |
|---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticação de sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado é para a versão mais recente lançada. Para obter mais informações, confiraCiclo de vida do modelo. | 2022-05-01 |
Cabeçalhos da solicitação
Use o cabeçalho a seguir para autenticar sua solicitação.
| Chave | Obrigatório | Tipo | Valor |
|---|---|---|---|
Ocp-Apim-Subscription-Key |
Verdade | cadeia | A chave para o recurso. Usado para autenticação de suas solicitações de API. |
Content-Type |
Verdade | cadeia | application/merge-patch+json |
Corpo da solicitação
Use o JSON a seguir em sua solicitação. Substitua os espaços reservados a seguir pelos seus próprios valores.
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "CustomEntityRecognition",
"description": "Project description",
"multilingual": "True",
"storageInputContainerName": "{CONTAINER-NAME}"
}
| Chave | Espaço reservado | Valor | Exemplo |
|---|---|---|---|
| projectName | {PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
| linguagem | {LANGUAGE-CODE} |
Uma cadeia de caracteres que especifica o código de idioma para os documentos usados no projeto. Se o projeto for um projeto multilíngue, selecione o código para o idioma representado com mais frequência nos documentos. Confira Suporte de idioma para saber mais sobre os códigos de idioma compatíveis. | en-us |
| tipoDeProjeto | CustomEntityRecognition |
O tipo de projeto. | CustomEntityRecognition |
| multilíngue | true |
Um valor booliano que permite ter documentos em vários idiomas no conjunto de dados e, quando o modelo é implantado, é possível consultar o modelo em qualquer idioma com suporte, (não necessariamente incluído nos documentos de treinamento). Confira suporte de idioma para saber mais sobre o suporte multilíngue. | true |
| storageInputContainerName | {CONTAINER-NAME |
O nome do contêiner de armazenamento do Azure no qual seus documentos foram carregados. | myContainer |
Essa solicitação retorna uma resposta 201, o que significa que o projeto foi criado.
Essa solicitação retornará um erro se:
- O recurso selecionado não tem a permissão apropriada para a conta de armazenamento.
Importar projeto (API REST)
Se você já rotulou os dados, pode usá-los para começar a usar o serviço. Verifique se os dados rotulados seguem os formatos de dados aceitos.
Envie uma solicitaçãoPOST usando o URL, os cabeçalhos e o corpo JSON a seguir para importar o arquivo de rótulos. Verifique se o arquivo de rótulos segue o formato de arquivo aceito.
Se já existir um projeto com o mesmo nome, os dados desse projeto serão substituídos.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
| Espaço reservado | Valor | Exemplo |
|---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticação de sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado aqui é para a versão mais recente lançada. Para obter mais informações, consulteo ciclo de vida do modelo. | 2022-05-01 |
headers
Use o cabeçalho a seguir para autenticar sua solicitação.
| Chave | Valor |
|---|---|
Ocp-Apim-Subscription-Key |
A chave para o recurso. Usado para autenticação de suas solicitações de API. |
Corpo
Use o JSON a seguir em sua solicitação. Substitua os valores do espaço reservado pelos seus.
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "{PROJECT-NAME}",
"projectKind": "CustomEntityRecognition",
"description": "Trying out custom NER",
"language": "{LANGUAGE-CODE}",
"multilingual": true,
"storageInputContainerName": "{CONTAINER-NAME}",
"settings": {}
},
"assets": {
"projectKind": "CustomEntityRecognition",
"entities": [
{
"category": "Entity1"
},
{
"category": "Entity2"
}
],
"documents": [
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"entities": [
{
"regionOffset": 0,
"regionLength": 500,
"labels": [
{
"category": "Entity1",
"offset": 25,
"length": 10
},
{
"category": "Entity2",
"offset": 120,
"length": 8
}
]
}
]
},
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"entities": [
{
"regionOffset": 0,
"regionLength": 100,
"labels": [
{
"category": "Entity2",
"offset": 20,
"length": 5
}
]
}
]
}
]
}
}
| Chave | Espaço reservado | Valor | Exemplo |
|---|---|---|---|
api-version |
{API-VERSION} |
A versão da API que você está chamando. A versão usada aqui precisa ser a mesma versão da API na URL. Saiba mais sobre as outras versões de API disponíveis | 2022-03-01-preview |
projectName |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
projectKind |
CustomEntityRecognition |
O tipo de projeto. | CustomEntityRecognition |
language |
{LANGUAGE-CODE} |
Uma cadeia de caracteres que especifica o código de idioma para os documentos usados no projeto. Se o projeto for um projeto multilíngue, escolha o código de idioma da maioria dos documentos. | en-us |
multilingual |
true |
Um valor booliano que permite ter documentos em vários idiomas no conjunto de dados e, quando o modelo é implantado, é possível consultar o modelo em qualquer idioma com suporte, não necessariamente incluído nos documentos de treinamento. Confira suporte de idioma para obter informações sobre suporte multilíngue. | true |
storageInputContainerName |
{NOME DO CONTÊINER} | O nome do contêiner de armazenamento do Azure que contém seus documentos carregados. | myContainer |
entities |
Matriz que contém todos os tipos de entidade que você tem no projeto e extraídos de seus documentos. | ||
documents |
Matriz que contém todos os documentos no projeto e lista das entidades rotuladas em cada documento. | [] | |
location |
{DOCUMENT-NAME} |
O local dos documentos no contêiner de armazenamento. | doc1.txt |
dataset |
{DATASET} |
O conjunto de testes para o qual esse arquivo vai quando dividido antes do treinamento. Para obter mais informações, consulteComo treinar um modelo. Os valores possíveis para esse campo são Train e Test. |
Train |
Depois de enviar sua solicitação de API, você receberá uma 202 resposta indicando que o trabalho foi enviado corretamente. Nos cabeçalhos de resposta, extraia o valor operation-location. Aqui está um exemplo do formato:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} é usado para identificar sua solicitação, pois essa operação é assíncrona. Use esta URL para obter o status da tarefa de importação.
Possíveis cenários de erro para esta solicitação:
- O recurso selecionado não tem as permissões apropriadas para a conta de armazenamento.
- O
storageInputContainerNameespecificado não existe. - Um código de idioma inválido foi usado ou o tipo de código de idioma não é cadeia de caracteres.
-
O valor
multilingualé uma cadeia de caracteres e não um booliano.
Obter detalhes do projeto (API REST)
Use a solicitação GET a seguir para obter os detalhes do projeto. Substitua os valores do espaço reservado pelos seus.
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Espaço reservado | Valor | Exemplo |
|---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticação de sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. Para obter mais informações, consulteo ciclo de vida do modelo. | 2022-05-01 |
headers
Use o cabeçalho a seguir para autenticar sua solicitação.
| Chave | Valor |
|---|---|
Ocp-Apim-Subscription-Key |
A chave para o recurso. Usado para autenticação de suas solicitações de API. |
Corpo da resposta
{
"createdDateTime": "2021-10-19T23:24:41.572Z",
"lastModifiedDateTime": "2021-10-19T23:24:41.572Z",
"lastTrainedDateTime": "2021-10-19T23:24:41.572Z",
"lastDeployedDateTime": "2021-10-19T23:24:41.572Z",
"projectKind": "CustomEntityRecognition",
"storageInputContainerName": "{CONTAINER-NAME}",
"projectName": "{PROJECT-NAME}",
"multilingual": false,
"description": "Project description",
"language": "{LANGUAGE-CODE}"
}
| Valor | Espaço reservado | Descrição | Exemplo |
|---|---|---|---|
projectKind |
CustomEntityRecognition |
O tipo de projeto. | CustomEntityRecognition |
storageInputContainerName |
{CONTAINER-NAME} |
O nome do contêiner de armazenamento do Azure para seus documentos carregados. | myContainer |
projectName |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
multilingual |
true |
Um valor booliano que permite ter documentos em vários idiomas no conjunto de dados e, quando o modelo é implantado, é possível consultar o modelo em qualquer idioma com suporte, não necessariamente incluído nos documentos de treinamento. Para obter mais informações sobre suporte multilíngue, confira Suporte de linguagem. | true |
language |
{LANGUAGE-CODE} |
Uma cadeia de caracteres que especifica o código de idioma para os documentos usados no projeto. Se o projeto for um projeto multilíngue, escolha o código de idioma para a maioria dos documentos. | en-us |
Depois de enviar sua solicitação de API, você receberá uma 200 resposta que indica o êxito e o corpo da resposta JSON com os detalhes do projeto.
Excluir projeto (API REST)
Quando você não precisar mais do seu projeto, poderá excluí-lo com a seguinte solicitação de DELETE. Substitua os valores do espaço reservado pelos seus.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Espaço reservado | Valor | Exemplo |
|---|---|---|
{ENDPOINT} |
O ponto de extremidade para autenticação de sua solicitação de API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
O nome do seu projeto. Esse valor diferencia maiúsculas de minúsculas. | myProject |
{API-VERSION} |
A versão da API que você está chamando. O valor referenciado é para a versão mais recente lançada. Para obter mais informações, consulteo ciclo de vida do modelo. | 2022-05-01 |
headers
Use o cabeçalho a seguir para autenticar sua solicitação.
| Chave | Valor |
|---|---|
| Ocp-Apim-Subscription-Key | A chave para o recurso. Usado para autenticação de suas solicitações de API. |
Depois de enviar sua solicitação de API, você receberá uma 202 resposta indicando êxito, o que significa que seu projeto é excluído. Uma chamada bem-sucedida resulta em um cabeçalho Operation-Location usado para verificar o status do trabalho.
Próximas etapas
Você deve ter uma ideia do esquema de projeto usado para rotular seus dados.
Depois que o projeto for criado, você poderá começar a rotular seus dados. Esse processo informa ao modelo de extração de entidade como interpretar texto e é usado para treinamento e avaliação.