Treinar um modelo personalizado usando a ferramenta Etiquetagem de amostra

Este conteúdo aplica-se a: Marca de verificação do Document Intelligence v2.1 v2.1.

Gorjeta

  • Para uma experiência melhorada e uma qualidade de modelo avançada, experimente o Document Intelligence v3.0 Studio.
  • O v3.0 Studio suporta qualquer modelo treinado com dados rotulados v2.1.
  • Você pode consultar o guia de migração de API para obter informações detalhadas sobre a migração da v2.1 para a v3.0.
  • Consulte nossos inícios rápidos da API REST ou C#, Java, JavaScript ou Python SDK para começar a usar a V3.0.

Neste artigo, você usa a API REST do Document Intelligence com a ferramenta Rótulo de exemplo para treinar um modelo personalizado com dados rotulados manualmente.

Pré-requisitos

Você precisa dos seguintes recursos para concluir este projeto:

  • Subscrição do Azure - Criar uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso de Inteligência Documental no portal do Azure para obter sua chave e ponto de extremidade. Depois de implantar, selecione Ir para recurso.
    • Você precisa da chave e do ponto de extremidade do recurso criado para conectar seu aplicativo à API de Document Intelligence. Você cola sua chave e ponto de extremidade no código mais tarde no início rápido.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.
  • Um conjunto de pelo menos seis formas do mesmo tipo. Use esses dados para treinar o modelo e testar um formulário. Você pode usar um conjunto de dados de exemplo (baixar e extrair sample_data.zip) para este início rápido. Carregue os arquivos de treinamento na raiz de um contêiner de armazenamento de blob em uma conta de Armazenamento do Azure de camada de desempenho padrão.

Criar um recurso de Inteligência Documental

Vá para o portal do Azure e crie um novo recurso de Document Intelligence . No painel Criar, forneça as seguintes informações:

Detalhes do projeto Description
Subscrição Selecione a assinatura do Azure à qual foi concedido acesso.
Grupo de recursos O grupo de recursos do Azure que contém seu recurso. Você pode criar um novo grupo ou adicioná-lo a um grupo pré-existente.
Região A localização do seu recurso de serviços de IA do Azure. Locais diferentes podem introduzir latência, mas não têm impacto na disponibilidade de tempo de execução do seu recurso.
Nome Um nome descritivo para o seu recurso. Recomendamos o uso de um nome descritivo, por exemplo , MyNameFormRecognizer.
Escalão de preço O custo do seu recurso depende do nível de preço que escolher e da sua utilização. Para obter mais informações, consulte os detalhes de preços da API.
Rever + criar Selecione o botão Rever + criar para implementar o seu recurso no portal do Azure.

Recuperar a chave e o ponto de extremidade

Quando o recurso Document Intelligence terminar de implantar, localize-o e selecione-o na lista Todos os recursos no portal. Sua chave e ponto de extremidade estarão localizados na página Chave e Ponto Final do recurso, em Gerenciamento de Recursos. Salve ambos em um local temporário antes de avançar.

Experimente

Experimente a ferramenta Document Intelligence Sample Labeling online:

Você precisa de uma assinatura do Azure (crie uma gratuitamente) e um ponto de extremidade e chave de recurso de Document Intelligence para experimentar o serviço Document Intelligence.

Configurar a ferramenta Etiquetagem de Amostra

Nota

Se os dados de armazenamento estiverem protegidos por uma rede virtual ou firewall, você deverá implantar a ferramenta Document Intelligence Sample Labeling por trás da VNet ou firewall e conceder acesso criando uma identidade gerenciada atribuída ao sistema.

Use o mecanismo Docker para executar a ferramenta Etiquetagem de exemplo. Siga estas etapas para configurar o contêiner do Docker. Para um manual de noções básicas do Docker e do contentor, veja a descrição geral do Docker.

Gorjeta

A OCR Form Labeling Tool também está disponível como um projeto de código aberto no GitHub. A ferramenta é uma aplicação web TypeScript construída usando React + Redux. Para saber mais ou contribuir, consulte o repositório OCR Form Labeling Tool . Para experimentar a ferramenta online, acesse o site da ferramenta Document Intelligence Sample Labeling.

  1. Primeiro, instale o Docker em um computador host. Este guia mostra como usar o computador local como host. Se você quiser usar um serviço de hospedagem do Docker no Azure, consulte o guia de instruções Implantar a ferramenta de rotulagem de exemplo.

    O computador host deve atender aos seguintes requisitos de hardware:

    Contentor Mínimo Recomendado
    Ferramenta de etiquetagem de amostra 2 núcleo, 4 GB de memória 4 núcleo, 8 GB de memória

    Instale o Docker em sua máquina seguindo as instruções apropriadas para seu sistema operacional:

  2. Obtenha o contêiner da ferramenta Etiquetagem de Amostra com o docker pull comando.

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. Agora você está pronto para executar o contêiner com docker runo .

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    Este comando disponibiliza a ferramenta de etiquetagem de exemplo através de um navegador da Web. Aceda a http://localhost:3000.

Nota

Você também pode rotular documentos e treinar modelos usando a API REST de inteligência de documentos. Para treinar e analisar com a API REST, consulte Treinar com rótulos usando a API REST e Python.

Configurar dados de entrada

Primeiro, certifique-se de que todos os documentos de treinamento são do mesmo formato. Se tiver formulários em vários formatos, organize-os em subpastas com base no formato comum. Ao treinar, você precisa direcionar a API para uma subpasta.

Configurar compartilhamento de recursos entre domínios (CORS)

Habilite o CORS em sua conta de armazenamento. Selecione sua conta de armazenamento no portal do Azure e escolha a guia CORS no painel esquerdo. Na linha de fundo, preencha os seguintes valores. Selecione Salvar na parte superior.

  • Origens permitidas = *
  • Métodos permitidos = [selecionar todos]
  • Cabeçalhos permitidos = *
  • Cabeçalhos expostos = *
  • Idade máxima = 200

Configuração do CORS no portal do Azure

Conectar-se à ferramenta Etiquetagem de amostra

A ferramenta Etiquetagem de Exemplo liga-se a uma origem (os formulários originais carregados) e a um destino (etiquetas criadas e dados de saída).

As conexões podem ser configuradas e compartilhadas entre projetos. Eles usam um modelo de provedor extensível, para que você possa adicionar facilmente novos provedores de origem/destino.

Para criar uma nova conexão, selecione o ícone Novas conexões (plug), na barra de navegação esquerda.

Preencha os campos com os seguintes valores:

  • Nome para exibição - O nome de exibição da conexão.

  • Descrição - Descrição do seu projeto.

  • URL SAS - A URL de assinatura de acesso compartilhado (SAS) do contêiner de Armazenamento de Blob do Azure. Para recuperar a URL SAS para seus dados de treinamento de modelo personalizado, vá para seu recurso de armazenamento no portal do Azure e selecione a guia Gerenciador de Armazenamento. Navegue até o contêiner, clique com o botão direito do mouse e selecione Obter assinatura de acesso compartilhado. É importante obter o SAS para seu contêiner, não para a conta de armazenamento em si. Verifique se as permissões Ler, Gravar, Excluir e Listar estão marcadas e clique em Criar. Em seguida, copie o valor na seção URL para um local temporário. Deve ter o formato: https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    Recuperação de URL SAS

Configurações de conexão da ferramenta Etiquetagem de amostra.

Criar um novo projeto

Na ferramenta Etiquetagem de Exemplo, os projetos armazenam suas configurações e configurações. Crie um novo projeto e preencha os campos com os seguintes valores:

  • Nome para exibição - o nome para exibição do projeto
  • Token de segurança - Algumas configurações do projeto podem incluir valores confidenciais, como chaves ou outros segredos compartilhados. Cada projeto gera um token de segurança que pode ser usado para criptografar/descriptografar configurações confidenciais do projeto. Você pode encontrar tokens de segurança nas Configurações do aplicativo selecionando o ícone de engrenagem na parte inferior da barra de navegação esquerda.
  • Conexão de origem - A conexão de armazenamento de Blob do Azure que você criou na etapa anterior e que gostaria de usar para este projeto.
  • Caminho da pasta - Opcional - Se os formulários de origem estiverem localizados em uma pasta no contêiner de blob, especifique o nome da pasta aqui
  • Uri do Serviço de Inteligência Documental - URL do ponto de extremidade do Document Intelligence.
  • Chave - A sua chave de Inteligência Documental.
  • Descrição - Opcional - Descrição do projeto

Nova página do projeto na ferramenta Sample Labeling.

Rotule seus formulários

Quando você cria ou abre um projeto, a janela principal do editor de tags é aberta. O editor de tags consiste em três partes:

  • Um painel v3.0 redimensionável que contém uma lista rolável de formulários da conexão de origem.
  • O painel principal do editor que permite aplicar tags.
  • O painel do editor de tags que permite aos usuários modificar, bloquear, reordenar e excluir tags.

Identificar texto e tabelas

Selecione Executar layout em documentos não visitados no painel esquerdo para obter as informações de layout de texto e tabela para cada documento. A ferramenta de etiquetagem desenha caixas delimitadoras em torno de cada elemento de texto.

A ferramenta de etiquetagem também mostra quais tabelas foram extraídas automaticamente. Para ver as tabelas extraídas, selecione o ícone de tabela/grelha no lado esquerdo do documento. Neste início rápido, como o conteúdo da tabela é extraído automaticamente, não rotulamos o conteúdo da tabela, mas confiamos na extração automatizada.

Visualização de tabela na ferramenta Etiquetagem de Exemplo.

Na v2.1, se o documento de treinamento não tiver um valor preenchido, você poderá desenhar uma caixa onde o valor deve estar. Use Desenhar região no canto superior esquerdo da janela para tornar a região marcante.

Aplicar rótulos ao texto

Em seguida, crie tags (rótulos) e aplique-as aos elementos de texto que deseja que o modelo analise.

  1. Primeiro, use o painel do editor de tags para criar as tags que você deseja identificar.
    1. Selecione + para criar uma nova tag.
    2. Introduza o nome da etiqueta.
    3. Selecione Enter para salvar a tag.
  2. No editor principal, selecione palavras dos elementos de texto realçados ou de uma região desenhada.
  3. Selecione a etiqueta que pretende aplicar ou prima a tecla de teclado correspondente. As teclas numéricas são atribuídas como teclas de atalho para as primeiras 10 tags. Você pode reordenar suas tags usando os ícones de seta para cima e para baixo no painel do editor de tags.
  4. Siga estas etapas para rotular pelo menos cinco de seus formulários.

    Gorjeta

    Lembre-se das seguintes dicas ao rotular seus formulários:

    • Você só pode aplicar uma tag a cada elemento de texto selecionado.
    • Cada tag só pode ser aplicada uma vez por página. Se um valor aparecer várias vezes no mesmo formulário, crie tags diferentes para cada instância. Por exemplo: "invoice# 1", "invoice# 2" e assim por diante.
    • As tags não podem se estender pelas páginas.
    • Rotule os valores tal como aparecem no formulário; Não tente dividir um valor em duas partes com duas tags diferentes. Por exemplo, um campo de endereço deve ser rotulado com uma única etiqueta, mesmo que abranja várias linhas.
    • Não inclua chaves nos campos marcados, apenas os valores.
    • Os dados da tabela devem ser detetados automaticamente e estarão disponíveis no arquivo JSON de saída final. No entanto, se o modelo não conseguir detetar todos os dados da tabela, você também poderá marcar manualmente esses campos. Marque cada célula da tabela com um rótulo diferente. Se os formulários tiverem tabelas com números variáveis de linhas, certifique-se de marcar pelo menos um formulário com a maior tabela possível.
    • Use os botões à direita do + para pesquisar, renomear, reordenar e excluir suas tags.
    • Para remover uma etiqueta aplicada sem eliminar a etiqueta em si, selecione o retângulo etiquetado na vista do documento e prima a tecla delete.

Janela principal do editor da ferramenta Sample Labeling.

Especificar tipos de valor de tag

Você pode definir o tipo de dados esperado para cada tag. Abra o menu de contexto à direita de uma tag e selecione um tipo no menu. Esse recurso permite que o algoritmo de deteção faça suposições que melhorem a precisão da deteção de texto. Ele também garante que os valores detetados sejam retornados em um formato padronizado na saída JSON final. As informações de tipo de valor são salvas no arquivo fields.json no mesmo caminho dos arquivos de rótulo.

Seleção de tipo de valor com a ferramenta Etiquetagem de amostra

Os seguintes tipos de valor e variações são atualmente suportados:

  • string

    • por defeito, no-whitespaces, alphanumeric
  • number

    • padrão, currency
    • Formatado como um valor de ponto flutuante.
    • Exemplo: 1234.98 no documento está formatado em 1234.98 na saída
  • date

    • padrão, dmy, mdy, ymd
  • time

  • integer

    • Formatado como um valor inteiro.
    • Exemplo: 1234.98 no documento está formatado em 123498 na saída.
  • selectionMark

Nota

Consulte estas regras para formatação de data:

Você deve especificar um formato (dmy, mdy, ymd) para que a formatação de data funcione.

Os seguintes caracteres podem ser utilizados como delimitadores de data: , - / . \. O espaço em branco não pode ser usado como delimitador. Por exemplo:

  • 01,01,2020
  • 01-01-2020
  • 01/01/2020

Cada dia e mês podem ser escritos com um ou dois dígitos, podendo o ano ser de dois ou quatro dígitos:

  • 1-1-2020
  • 1-01-20

Se uma cadeia de data tiver oito dígitos, o delimitador é opcional:

  • 01012020
  • 01 01 2020

O mês também pode ser escrito com o nome completo ou curto. Se o nome for utilizado, os caracteres delimitadores são opcionais. No entanto, este formato pode ser reconhecido de forma menos precisa que os outros.

  • 01/Jan/2020
  • 01Jan2020
  • 01 Jan 2020

Tabelas de etiquetas (apenas v2.1)

Às vezes, seus dados podem se prestar melhor a serem rotulados como uma tabela em vez de pares chave-valor. Nesse caso, você pode criar uma tag de tabela selecionando Adicionar uma nova tag de tabela. Especifique se a tabela tem um número fixo de linhas ou um número variável de linhas, dependendo do documento, e defina o esquema.

Configurando uma tag de tabela.

Depois de definir a tag da tabela, marque os valores das células.

Rotular uma tabela.

Preparar um modelo personalizado

Para abrir a página Treinamento, escolha o ícone Trem no painel esquerdo. Em seguida, selecione o botão Train para começar a treinar o modelo. Quando o processo de treinamento for concluído, você verá as seguintes informações:

  • ID do modelo - O ID do modelo que foi criado e treinado. Cada chamada de treinamento cria um novo modelo com seu próprio ID. Copie essa cadeia de caracteres para um local seguro; você precisa dele se quiser fazer chamadas de previsão por meio da API REST ou do guia da biblioteca do cliente.
  • Precisão média - A precisão média do modelo. Você pode melhorar a precisão do modelo adicionando e rotulando mais formulários e, em seguida, treinando novamente para criar um novo modelo. Recomendamos começar rotulando cinco formulários e adicionando mais formulários conforme necessário.
  • A lista de tags e a precisão estimada por tag.

Visão de treinamento.

Após o término do treinamento, examine o valor de Precisão Média. Se estiver baixo, você deve adicionar mais documentos de entrada e repetir as etapas de rotulagem. Os documentos já rotulados permanecem no índice do projeto.

Gorjeta

Você também pode executar o processo de treinamento com uma chamada à API REST. Para saber como fazer isso, consulte Treinar com rótulos usando Python.

Compor modelos treinados

Com Model Compose, você pode compor até 200 modelos em um único ID de modelo. Quando você chama Analisar com o composto modelID, o Document Intelligence classifica o formulário enviado, escolhe o melhor modelo correspondente e, em seguida, retorna os resultados desse modelo. Esta operação é útil quando os formulários de entrada podem pertencer a um dos vários modelos.

  • Para compor modelos na ferramenta Etiquetagem de Exemplo, selecione o ícone Composição do Modelo (seta de mesclagem) na barra de navegação.
  • Selecione os modelos que deseja compor juntos. Os modelos com o ícone de setas já são modelos compostos.
  • Escolha o botão Compor. No pop-up, nomeie seu novo modelo composto e selecione Compor.
  • Quando a operação for concluída, o modelo recém-composto deverá aparecer na lista.

Modelo compor visualização UX.

Analisar um formulário

Para testar o seu modelo, selecione o Analyze ícone na barra de navegação. Selecione o arquivo local de origem. Procure um arquivo e selecione um arquivo do conjunto de dados de exemplo que você descompactou na pasta de teste. Em seguida, escolha o botão Executar análise para obter pares de chave/valor, texto e previsões de tabelas para o formulário. A ferramenta aplica tags em caixas delimitadoras e relata a confiança de cada tag.

Captura de tela da janela analyze-a-custom-form

Gorjeta

Você também pode executar a Analyze API com uma chamada REST. Para saber como fazer isso, consulte Treinar com rótulos usando Python.

Melhorar os resultados

Dependendo da precisão relatada, você pode querer fazer treinamento adicional para melhorar o modelo. Depois de concluir uma previsão, examine os valores de confiança para cada uma das tags aplicadas. Se o valor médio do treinamento de precisão for alto, mas as pontuações de confiança forem baixas (ou os resultados forem imprecisos), adicione o arquivo de previsão ao conjunto de treinamento, rotule-o e treine novamente.

A precisão média relatada, os escores de confiança e a precisão real podem ser inconsistentes quando os documentos analisados diferem dos documentos usados no treinamento. Tenha em mente que alguns documentos são semelhantes quando visualizados por pessoas, mas podem parecer distintos do modelo de IA. Por exemplo, você pode treinar com um tipo de formulário que tenha duas variações, onde o conjunto de treinamento consiste em 20% de variação A e 80% de variação B. Durante a previsão, é provável que os escores de confiança para documentos da variação A sejam mais baixos.

Salvar um projeto e retomar mais tarde

Para retomar seu projeto em outro momento ou em outro navegador, você precisa salvar o token de segurança do projeto e inseri-lo novamente mais tarde.

Obter credenciais do projeto

Vá para a página de configurações do projeto (ícone deslizante) e anote o nome do token de segurança. Em seguida, vá para as configurações do aplicativo (ícone de engrenagem), que mostra todos os tokens de segurança na instância atual do navegador. Encontre o token de segurança do seu projeto e copie seu nome e valor de chave para um local seguro.

Restaurar credenciais do projeto

Quando você quiser retomar seu projeto, primeiro você precisa criar uma conexão com o mesmo contêiner de armazenamento de blob. Para fazer isso, repita as etapas. Em seguida, vá para a página de configurações do aplicativo (ícone de engrenagem) e veja se o token de segurança do seu projeto está lá. Se não estiver, adicione um novo token de segurança e copie o nome e a chave do token da etapa anterior. Selecione Salvar para manter suas configurações.

Retomar um projeto

Finalmente, vá para a página principal (ícone da casa) e selecione Open Cloud Project. Em seguida, selecione a conexão de armazenamento de blob e selecione o arquivo do .fott seu projeto. O aplicativo carrega todas as configurações do projeto porque tem o token de segurança.

Próximos passos

Neste guia de início rápido, você aprendeu como usar a ferramenta Document Intelligence Sample Labeling para treinar um modelo com dados rotulados manualmente. Se você quiser criar seu próprio utilitário para rotular dados de treinamento, use as APIs REST que lidam com treinamento de dados rotulados.