Document AI Workbench: treinamento aprimorado

1. Introdução

A Document AI é uma solução para compreensão de dados não estruturados, como documentos, e-mails e assim por diante, que facilita o entendimento, a análise e o consumo desses dados.

Ao usar o treinamento por meio do Document AI Workbench, é possível alcançar maior acurácia no processamento de documentos, fornecendo exemplos rotulados adicionais para Tipos de documentos especializados e criando uma nova versão de modelo.

Neste laboratório, você vai criar um processador analisador de faturas, configurar o processador para treinamento aprimorado, rotular documentos de exemplo e treinar o processador.

O conjunto de dados do documento usado neste laboratório consiste em faturas geradas aleatoriamente para uma empresa de tubulação fictícia.

Pré-requisitos

Este codelab se baseia no conteúdo apresentado em outros codelabs da Document AI.

Recomendamos que você conclua os codelabs a seguir antes de continuar.

O que você vai aprender

  • Configurar o treinamento aprimorado para um processador do analisador de faturas.
  • Como rotular os dados de treinamento da Document AI usando a ferramenta de anotação.
  • Como treinar uma nova versão do modelo.
  • Como avaliar a acurácia da nova versão do modelo.

O que é necessário

  • Um projeto do Google Cloud
  • Um navegador, como o Chrome ou o Firefox

2. Etapas da configuração

Este codelab parte do princípio de que você concluiu as etapas de configuração da Document AI listadas no Codelab básico.

Conclua as etapas a seguir antes de continuar:

3. Crie um processador

Primeiro, você precisa criar um processador analisador de faturas para usar neste laboratório.

  1. No console, navegue até a página de visão geral da Document AI.

docai-uptraining-codelab-01

  1. Clique em Criar processador, role para baixo até Especializado (ou digite "Analisador de fatura" na barra de pesquisa) e selecione Analisador de fatura.

docai-uptraining-codelab-02

  1. Nomeie como codelab-invoice-uptraining ou de outra maneira, desde que você se lembre. Em seguida, selecione a região mais próxima na lista.

docai-uptraining-codelab-03

  1. Clique em Criar para criar o processador. Assim, você exibe a página de aspectos gerais do processador.

docai-uptraining-codelab-04

4. Crie um conjunto de dados

Para treinar o processador, vamos criar um conjunto de dados de treinamento e teste para ajudar o processador a identificar as entidades que queremos extrair.

Crie um novo bucket no Cloud Storage para armazenar o conjunto de dados. Observação: não deve ser o mesmo bucket em que seus documentos estão armazenados.

  1. Abra o Cloud Shell e execute os comandos a seguir para criar um bucket. Como alternativa, crie um novo bucket no console do Cloud. Salve o nome desse bucket, porque você vai precisar dele depois.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Acesse a guia Conjunto de dados e clique em Criar conjunto de dados.

docai-uptraining-codelab-05

  1. Cole o nome do bucket que você criou na primeira etapa no campo Caminho de destino. (Não use gs://)

docai-uptraining-codelab-06

  1. Aguarde a criação do conjunto de dados para ser direcionado para a página de gerenciamento do conjunto de dados.

docai-uptraining-codelab-07

5. Importe um documento de teste

Agora, vamos importar o PDF de uma fatura de amostra para o conjunto de dados.

  1. Clique em Importar documentos.

docai-uptraining-codelab-08

  1. Há um PDF de amostra para você usar neste laboratório. Copie e cole o link a seguir na caixa Caminho de origem. Deixe a "Divisão de dados" como "Não atribuída" por enquanto. Clique em Importar.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Aguarde a importação do documento. Isso levou menos de 1 minuto nos testes.

docai-uptraining-codelab-10

  1. Quando a importação for concluída, você verá o documento na interface de gerenciamento do conjunto de dados. Clique nele para acessar o console de rotulagem.

docai-uptraining-codelab-11

6. Rotule o documento de teste

Agora vamos identificar elementos do texto e rótulos das entidades que queremos extrair. Esses rótulos são usados para treinar o modelo para analisar essa estrutura de documento específica e identificar os tipos corretos.

  1. Agora você deve estar no console de rotulagem, que será algo parecido com isto.

docai-uptraining-codelab-12

  1. Clique em "Selecionar texto" e destacar o texto "McWilliam Piping International Piping Company" e atribuir o rótulo supplier_name. É possível usar o filtro de texto para pesquisar nomes de rótulos.

docai-uptraining-codelab-13

  1. Destaque o texto "14368 Pipeline Ave Chino, CA 91710". e atribuir o rótulo supplier_address.

docai-uptraining-codelab-14

  1. Destaque o texto "10001". e atribuir o rótulo invoice_id.

docai-uptraining-codelab-15

  1. Destaque o texto "2020-01-02". e atribuir o rótulo due_date.

docai-uptraining-codelab-16

  1. Mude para a "Caixa delimitadora" . Destaque o texto "Acopladores articulados". e atribuir o rótulo line_item/description.

docai-uptraining-codelab-17

  1. Destaque o texto "9". e atribuir o rótulo line_item/quantity.

docai-uptraining-codelab-18

  1. Destaque o texto "74,43". e atribuir o rótulo line_item/unit_price.

docai-uptraining-codelab-19

  1. Destaque o texto "669,87". e atribuir o rótulo line_item/amount.

docai-uptraining-codelab-20

  1. Repita as quatro etapas anteriores para os próximos dois itens de linha. Ele vai ficar assim quando for concluído.

docai-uptraining-codelab-21

  1. Destaque o texto "1.419,57". (ao lado de Subtotal) e atribua o marcador net_amount.

docai-uptraining-codelab-22

  1. Destaque o texto "113,57". (ao lado de Taxa) e atribua o rótulo total_tax_amount.

docai-uptraining-codelab-23

  1. Destaque o texto "1.533,14". (ao lado de Total) e atribua o rótulo total_amount.

docai-uptraining-codelab-24

  1. Destaque um dos "$" caracteres e atribuir o rótulo currency.

docai-uptraining-codelab-25

  1. Quando concluído, o documento rotulado deve ficar assim. Clique na caixa delimitadora do documento ou no nome/valor do rótulo no menu lateral esquerdo para ajustar esses rótulos. Clique em Salvar quando terminar de rotular.

docai-uptraining-codelab-26

  1. Veja a lista completa de rótulos e valores

Nome do rótulo

Texto

supplier_name

McWilliam Piping International Piping Company

supplier_address

14368 Pipeline Ave Chino, CA 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Knuckle Couplers

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669.87

line_item/description

Tubo de PVC 12 polegadas

line_item/quantity

7

line_item/unit_price

15.90

line_item/amount

111.30

line_item/description

Tubo de cobre

line_item/quantity

7

line_item/unit_price

91.20

line_item/amount

638.40

net_amount

1,419.57

total_tax_amount

113.57

total_amount

1,533.14

currency

$

7. Atribua o documento ao conjunto de treinamento

Você está de volta ao console de gerenciamento do conjunto de dados. Observe que o número de documentos com e sem rótulos mudou, bem como o número de rótulos ativos.

docai-uptraining-codelab-27

  1. É preciso atribuir esse documento ao conjunto de treinamento ou teste. Clique no documento.

docai-uptraining-codelab-28

  1. Clique em Atribuir ao conjunto e, em seguida, clique em Treinamento.

docai-uptraining-codelab-29

  1. Observe que os números da Divisão de dados mudaram.

docai-uptraining-codelab-30

8. Importe os dados pré-rotulados

O treinamento do Document AI requer no mínimo 10 documentos nos conjuntos de treinamento e teste, junto com 10 instâncias de cada rótulo em cada conjunto.

Recomendamos que cada conjunto tenha pelo menos 50 documentos e 50 instâncias de cada rótulo, para melhor desempenho. Mais dados de treinamento geralmente significam maior acurácia.

Rotular manualmente 100 documentos vai demorar muito tempo, por isso você pode importar alguns documentos pré-rotulados para este laboratório.

É possível importar arquivos de documentos pré-rotulados no formato Document.json. Eles podem ser resultantes da chamada de um processador e da verificação da acurácia usando Human in the loop (HITL).

  1. Clique em Importar documentos.

docai-uptraining-codelab-30

  1. Copie e cole o caminho do Cloud Storage a seguir e atribua-o ao conjunto de Treinamento.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Clique em Adicionar outro bucket. Depois, copie e cole o caminho do Cloud Storage a seguir e atribua-o ao conjunto de Teste.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. Clique em Importar e aguarde os documentos. Isso vai demorar mais do que da última vez porque há mais documentos para processar. Nos testes, levou cerca de 6 minutos. Você pode sair desta página e continuar mais tarde.

docai-uptraining-codelab-32

  1. Depois de concluído, você vê os documentos na página de gerenciamento do conjunto de dados.

docai-uptraining-codelab-33

9. Editar rótulos

Os documentos que estamos usando neste exemplo não contêm todos os rótulos aceitos pelo analisador de faturas. Antes do treinamento, é necessário marcar os rótulos que não estamos usando como inativos. Você também pode seguir etapas semelhantes para adicionar um rótulo personalizado antes do treinamento.

  1. Clique em Gerenciar rótulos no canto inferior esquerdo.

docai-uptraining-codelab-33

  1. Agora você deve estar no console de gerenciamento de rótulos.

docai-uptraining-codelab-34

  1. Use as caixas de seleção e os botões Desativar/Ativar para marcar APENAS os seguintes marcadores como Ativado.
    • currency
    • due_date
    • invoice_id
    • line_item/amount
    • line_item/description
    • line_item/quantity
    • line_item/unit_price
    • net_amount
    • supplier_address
    • supplier_name
    • total_amount
    • total_tax_amount
  2. O console vai ficar assim quando for concluído. Clique em Salvar quando terminar.

docai-uptraining-codelab-35

  1. Clique na seta para retornar ao console de gerenciamento do conjunto de dados. Observe que os rótulos com 0 instância foram marcados como inativos.

docai-uptraining-codelab-36

10. Opcional: rotule automaticamente documentos recém-importados

Ao importar documentos sem rótulos para um processador com uma versão de processador implantada, é possível usar a rotulação automática para economizar tempo na identificação.

  1. Na página Treinar, clique em Importar documentos.
  2. Copie e cole o caminho a seguir. Esse diretório contém cinco PDFs sem marcador. Na lista suspensa Divisão de dados, selecione Treinamento.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. Na seção Rotulagem automática, marque a caixa de seleção Importar com a rotulagem automática.
  4. Selecione uma versão do processador atual para rotular os documentos.
  • Por exemplo: pretrained-invoice-v1.3-2022-07-15
  1. Clique em Importar e aguarde os documentos. Você pode sair desta página e continuar mais tarde.
  • Depois de importados, os documentos aparecem na página Treinar, na seção Rotulados automaticamente.
  1. Não é possível usar documentos com rótulos automáticos para treinamento ou teste sem marcá-los como rotulados. Acesse a seção Rotulados automaticamente para conferir os documentos com rótulos automáticos.
  2. Selecione o primeiro documento para acessar o console de rotulagem.
  3. Verifique se os rótulos, as caixas delimitadoras e os valores estão corretos. Rotule todos os valores que foram omitidos.
  4. Selecione Marcar como rotulado quando terminar.
  5. Repita a verificação de cada documento com rótulo automático e volte à página Treinar para usar os dados para o treinamento.

11. Treine o modelo

Agora, estamos prontos para começar a treinar nosso analisador de faturas.

  1. Clique em Treinar nova versão

docai-uptraining-codelab-36

  1. Dê à versão um nome que você vai lembrar, como codelab-uptraining-test-1. A versão Base é a versão do modelo em que a nova versão será criada. Se você estiver usando um novo processador, a única opção deve ser Google Pretrained Next with Uptraining

docai-uptraining-codelab-37

  1. (Opcional) Também é possível selecionar Exibir estatísticas de rótulos para conferir métricas sobre os rótulos do conjunto de dados.

docai-uptraining-codelab-38

  1. Clique em Iniciar treinamento para começar o processo de treinamento. Você será redirecionado para a página de gerenciamento do conjunto de dados. Confira o status do treinamento no lado direito. O treinamento leva algumas horas para ser concluído. Você pode sair desta página e continuar mais tarde.

docai-uptraining-codelab-39

  1. Clique no nome da versão para acessar a página Gerenciar versões, que mostra o ID da versão e o status atual do job de treinamento.

docai-uptraining-codelab-40

12. Teste a nova versão do modelo

Após a conclusão do job de treinamento (nos testes, levou cerca de 1 hora), é possível testar a nova versão do modelo e começar a usá-la para previsões.

  1. Acesse a página Gerenciar versões. Aqui é possível conferir o status atual e a pontuação F1.

docai-uptraining-codelab-41

  1. É preciso implantar essa versão do modelo antes que ela possa ser usada. Clique nos pontos verticais do lado direito e selecione Implantar versão.

docai-uptraining-codelab-42

  1. Selecione Implantar na janela pop-up e aguarde a implantação da versão. Esse processo leva alguns minutos. Depois da implantação, é possível definir essa versão como a padrão.

docai-uptraining-codelab-43

  1. Depois da conclusão da implantação, acesse a guia Avaliar. Em seguida, clique no menu suspenso Versão e selecione a versão recém-criada.

docai-uptraining-codelab-44

  1. Nessa página, você pode ver as métricas de avaliação, incluindo a pontuação F1, Precisão e Recall para o documento completo, bem como rótulos individuais. Leia mais sobre essas métricas na documentação do AutoML.
  2. Faça o download do arquivo PDF pelo link abaixo. Este é um documento de amostra que não foi incluído no conjunto de treinamento nem de teste.

  1. Clique em Fazer upload de documento de teste e selecione o arquivo PDF.

docai-uptraining-codelab-45

  1. As entidades extraídas vão ficar assim.

docai-uptraining-codelab-46

13. Conclusão

Parabéns, você usou corretamente a Document AI para treinar um analisador de faturas. Agora você pode usar esse processador para analisar faturas da mesma forma que faria com qualquer processador especializado.

Consulte o Codelab de processadores especializados para analisar como lidar com a resposta de processamento.

Limpeza

Para evitar cobranças dos recursos usados neste tutorial na conta do Google Cloud, siga estas etapas:

  • No console do Cloud, acesse a página Gerenciar recursos.
  • Na lista de projetos, selecione o projeto e clique em "Excluir".
  • Na caixa de diálogo, digite o ID do projeto e clique em "Encerrar" para excluí-lo.

Recursos

Licença

Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.