Treinar um modelo personalizado usando a ferramenta de Rotulagem de Exemplo

Este conteúdo se aplica ao:Document Intelligence v2.1 checkmarkv2.1.

Dica

Neste artigo, você usará a API REST da Informação de Documentos com a ferramenta de Rotulagem de Exemplo para treinar um modelo personalizado usando dados rotulados manualmente.

Pré-requisitos

Você precisará dos seguintes recursos para concluir este projeto:

  • Assinatura do Azure – Criar uma gratuitamente
  • Após obter sua assinatura do Azure, crie um recurso de Informação de Documentos no portal do Azure para obter a chave e o ponto de extremidade. Após a implantação, selecione Ir para recurso.
    • Você precisará da chave e do ponto de extremidade do recurso que você criar para conectar seu aplicativo à API de Informação de Documentos. Você vai colar a chave e o ponto de extremidade no código mais adiante no guia de início rápido.
    • Use o tipo de preço gratuito (F0) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.
  • Um conjunto com pelo menos seis formulários do mesmo tipo. Você usará esses dados para treinar o modelo e testar um formulário. Você 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 blobs em uma conta de Armazenamento do Azure de camada de desempenho padrão.

Criar um recurso da Informação de Documentos

Vá até o portal do Azure e criar um novo recurso de Informação de Documentos. No painel Criar, forneça as informações a seguir:

Detalhes do projeto Descrição
Assinatura Selecione a assinatura do Azure à qual o acesso foi concedido.
Grupo de recursos O grupo de recursos que contém seu recurso. Você pode criar um grupo ou adicioná-lo a um grupo pré-existente.
Região O local do recurso de serviços de IA do Azure. Locais diferentes podem introduzir latência, mas não têm impacto sobre a disponibilidade de runtime do seu recurso.
Nome Um nome descritivo para o seu recurso. É recomendável usar um nome descritivo, como, por exemplo, MyNameFormRecognizer.
Tipo de preços O custo do recurso depende de seu uso e do tipo de preço que você escolheu. Para obter mais informações, consulte a API detalhes de preços.
Examinar + criar Selecione o botão Examinar + criar para implantar seu recurso no portal do Azure.

Recuperar a chave e o ponto de extremidade

Quando o recurso de Informação de Documentos concluir a implantação, localize-o e selecione-o na lista Todos os recursos do portal. A chave e o ponto de extremidade estarão localizados na página Chave e Ponto de Extremidade do recurso, em Gerenciamento de Recursos. Salve ambos em um local temporário antes de continuar.

Experimente

Experimente a ferramenta de Rotulagem de Exemplo da Informação de Documentos online:

Você precisa de uma assinatura do Azure (crie uma gratuitamente), um ponto de extremidade e uma chave do recurso da Informação de Documentos para experimentar o serviço de Informação de Documentos.

Configurar a ferramenta de Rotulagem de Exemplo

Observação

Se seus dados de armazenamento estiverem por trás de uma VNet ou firewall, você deve implantar a ferramenta de Rotulagem de Exemplo de Informação de Documentos por trás de sua VNet ou firewall e conceder acesso criando uma identidade gerenciada atribuída pelo sistema.

Você usará o mecanismo do Docker para executar a ferramenta de rotulagem de exemplo. Siga as etapas a seguir para configurar o contêiner do Docker. Para instruções sobre conceitos básicos do Docker e de contêiner, consulte a visão geral do Docker.

Dica

A Ferramenta de Rotulagem de Formulário OCR também está disponível como um projeto de software livre no GitHub. A ferramenta é um aplicativo Web TypeScript criado usando React + Redux. Para saber mais ou contribuir, confira o repositório Ferramenta de Rotulagem de Formulário OCR. Para experimentar a ferramenta online, vá para o site Ferramenta de Rotulagem de Exemplo de Informação de Documentos.

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

    O computador host deve atender aos seguintes requisitos de hardware:

    Contêiner Mínimo Recomendadas
    Ferramenta de rotulagem de exemplos 2 núcleos, 4 GB de memória 4 núcleos, 8 GB de memória

    Instale o Docker em seu computador seguindo as instruções apropriadas para seu sistema operacional:

  2. Obtenha o contêiner de ferramentas de Rotulagem de Exemplo com o comando docker pull.

     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 run.

     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 rotulagem de exemplo por meio de um navegador da Web. Ir para http://localhost:3000.

Observação

Você também pode rotular documentos e treinar modelos usando a API REST da Informação de Documentos. Para treinar e analisar com a API REST, confira Treinar com rótulos usando a API REST e o Python.

Configurar dados de entrada

Primeiro, verifique se todos os documentos de treinamento têm o mesmo formato. Se você tiver formulários em vários formatos, organize-os em subpastas com base no formato comum. Durante o treinamento, você precisará direcionar a API a uma subpasta.

Configurar CORS (compartilhamento de recursos entre domínios)

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 inferior, preencha os valores a seguir. Selecione Salvar na parte superior.

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

CORS setup in the Azure portal

Conectar à ferramenta de Rotulagem de Exemplo

A ferramenta de Rotulagem de Exemplo se conecta a uma origem (os formulários carregados originais) e a um destino (os rótulos criados e os 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 conexão, selecione o ícone Novas Conexões (plugue) na barra de navegação esquerda.

Preencha os campos com os valores a seguir:

  • Nome de Exibição – o nome de exibição da conexão.

  • Descrição – a descrição do seu projeto.

  • URL SAS – a SAS (Assinatura de Acesso Compartilhado) do seu contêiner do Armazenamento de Blobs do Azure. Para recuperar a URL do SAS para os dados de treinamento do modelo personalizado, acesse o 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 o contêiner, não para a conta de armazenamento em si. Verifique se as permissões de Leitura, Gravação, Exclusão e Lista estão marcadas e clique em Criar. Em seguida, copie o valor da seção URL para um local temporário. Deve ter o formato: https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    SAS URL retrieval

Connection settings of Sample Labeling tool.

Criar um novo projeto

Na ferramenta de Rotulagem de Exemplo, os projetos armazenam as configurações e definições. Crie um projeto e preencha os campos com os valores a seguir:

  • Nome de Exibição – o nome de exibição do projeto
  • Token de Segurança – algumas configurações de projeto podem incluir valores confidenciais, como chaves de API ou outros segredos compartilhados. Cada projeto gera um token de segurança que pode ser usado para criptografar/descriptografar configurações de projeto confidenciais. Encontre os tokens de segurança nas Configurações de Aplicativo selecione o ícone de engrenagem na parte inferior da barra de navegação esquerda.
  • Conexão de Origem – a conexão do Armazenamento de Blobs do Azure que você criou na etapa anterior e que deseja 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 Informação de Documentos – URL do ponto de extremidade da Informação de Documentos.
  • Chave - Sua chave da Informação de Documentos.
  • Descrição (opcional) – descrição do projeto

New project page on Sample Labeling tool.

Rotular seus formulários

Quando você cria ou abre um projeto, a janela principal do editor de marcas é aberta. O editor de marcas 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 a você aplicar marcas.
  • O painel do editor de marcas, que permite aos usuários modificar, bloquear, reordenar e excluir marcas.

Identificar texto e tabelas

Selecione Executar Layout nos documentos não visitados no painel à esquerda para obter as informações de layout de tabela e texto de cada documento. A ferramenta de rotulagem desenha caixas delimitadoras ao redor de cada elemento de texto.

Ela também mostra quais tabelas foram extraídas automaticamente. Selecione o ícone de tabela/grade à esquerda do documento para ver a tabela extraída. Neste guia de início rápido, como o conteúdo da tabela é extraído automaticamente, não rotulamos o conteúdo da tabela, pois usamos a extração automatizada.

Table visualization in Sample Labeling tool.

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

Aplicar rótulos ao texto

Depois, você criará marcas (rótulos) e as aplicará aos elementos de texto que o modelo deve analisar.

  1. Primeiro, use o painel editor de marcas para criar as marcas que você deseja identificar.
    1. Selecione + para criar uma marca.
    2. Insira o nome da marca.
    3. Pressione Enter para salvar a marca.
  2. No editor principal, selecione as palavras entre os elementos de texto realçados ou uma região que você desenhou.
  3. Selecione a marca que você deseja aplicar ou pressione a tecla correspondente no teclado. As chaves de número são atribuídas como teclas de atalho para as 10 primeiras marcas. Você pode reordenar suas marcas usando os ícones de seta para cima e para baixo no painel do editor de marcas.
  4. Siga estas etapas para rotular pelo menos cinco de seus formulários.

    Dica

    Lembre-se das dicas a seguir quando estiver rotulando seus formulários:

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

Main editor window of Sample Labeling tool.

Especificar tipos de valor de marca

Você pode definir o tipo de dados esperado para cada marca. Abra o menu de contexto à direita de uma determinada marca e selecione um tipo no menu. Esse recurso permite que o algoritmo de detecção faça suposições que aprimorem a precisão da detecção de texto. Ele também garante que os valores detectados 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 que o dos arquivos de rótulo.

Value type selection with Sample Labeling tool

Os tipos de valor e as variações a seguir são compatíveis no momento:

  • string

    • padrão, no-whitespaces, alphanumeric
  • number

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

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

  • integer

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

Observação

Confira estas regras para a formatação de data:

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

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

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

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

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

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

  • 01012020
  • 01 01 2020

O mês também pode ser escrito como seu nome completo ou abreviado. Se o nome for usado, os caracteres delimitadores são opcionais. No entanto, esse formato pode ser reconhecido com menos precisão do que outros.

  • 01/Jan/2020
  • 01Jan2020
  • 01 de janeiro de 2020

Rotular tabelas (somente v2.1)

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

Configuring a table tag.

Após definir a marca de tabela, marque os valores das células.

Labeling a table.

Treinar um modelo personalizado

Escolha o ícone Treinar no painel esquerdo para abrir a página Treinamento. Selecione o botão Treinar para começar a treinar o modelo. Quando o processo de treinamento for concluído, você verá as seguintes informações:

  • ID do Modelo – a ID do modelo que foi criado e treinado. Cada chamada de treinamento cria um novo modelo com sua própria ID. Copie esta cadeia de caracteres para um local seguro. Você precisará dela se quiser fazer chamadas de previsão por meio da API REST ou do guia da biblioteca de clientes.
  • Precisão Média – a precisão média do modelo. Você pode aprimorar a precisão do modelo adicionando e rotulando mais formulários e treinando novamente para criar outro modelo. É recomendável começar rotulando cinco formulários e adicionando mais formulários conforme necessário.
  • A lista de marcas e a precisão estimada por marca.

Training view.

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

Dica

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

Compor modelos treinados

Com o Model Compose, você pode criar até 200 modelos para cada ID de modelo. Quando você chama a Análise com o modelID composto, a Informação de Documentos classifica o formulário enviado, escolhe o modelo com a melhor correspondência e retorna os resultados dele. Essa operação é útil quando formulários de entrada podem pertencer a um de vários modelos.

  • Para compor modelos na ferramenta de Rotulagem de Amostra, selecione o ícone Compor Modelo (setas se mesclando) na barra de navegação.
  • Selecione os modelos que deseja compor juntos. Modelos com o ícone de setas já são modelos compostos.
  • Escolha o botão Compor. No pop-up, dê um nome ao novo modelo composto e selecione Compor.
  • Quando a operação for concluída, o modelo recém-composto deverá aparecer na lista.

Model compose UX view.

Analisar um formulário

Selecione o ícone Analisar na barra de navegação para testar seu modelo. Selecione o Arquivo local de origem. Procure e selecione um arquivo do conjunto de dados de exemplo que você descompactou na pasta de teste. Clique no botão Executar análise para obter os pares de chave/valor e as previsões de texto e tabelas para o formulário. A ferramenta aplica marcas nas caixas delimitadoras e relata a confiança de cada marca.

Screenshot of analyze-a-custom-form window

Dica

Você também pode executar a API de Análise com uma chamada REST. Para saber como fazer isso, confira treinar com rótulos usando o Python.

Aprimorar os resultados

Dependendo da precisão relatada, talvez você queira realizar mais treinamento para aprimorar o modelo. Depois de fazer uma previsão, examine os valores de confiança para cada uma das marcas aplicadas. Se o valor de treinamento de precisão média 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, as pontuações de confiança e a precisão real podem ser inconsistentes quando os documentos analisados são diferentes daqueles usados no treinamento. Tenha em mente que alguns documentos parecem semelhantes quando vistos por pessoas, mas podem parecer distintos para o modelo de IA. Por exemplo, você pode treinar com um tipo de formulário que tem duas variações, em que o conjunto de treinamento consiste em 20% da variação A e 80% da variação B. Durante a previsão, as pontuações de confiança para documentos da variação A provavelmente serão menores.

Salvar um projeto e retomá-lo mais tarde

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

Obter credenciais do projeto

Vá para a página de configurações do projeto (ícone do controle 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 em sua instância atual do navegador. Localize 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 desejar retomar seu projeto, primeiro você precisará criar uma conexão com o mesmo contêiner de armazenamento de blobs. 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 a chave e o nome do token da etapa anterior. Selecione Salvar para manter suas configurações.

Retomar um projeto

Por fim, vá para a página principal (ícone de casa) e selecione Abrir Projeto de Nuvem. Em seguida, selecione a conexão de armazenamento de blobs e o arquivo .fott do seu projeto. O aplicativo carrega todas as configurações do projeto, porque tem o token de segurança.

Próximas etapas

Neste guia início rápido, você aprendeu a usar a ferramenta de rotulagem de exemplo da Informação de Documentos para treinar um modelo usando dados rotulados manualmente. Se desejar criar o próprio utilitário para rotular dados de treinamento, use as APIs REST para lidar com o treinamento de dados rotulados.