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 aprimoramento do treinamento no Document AI Workbench, é possível aumentar a acurácia do processamento de documentos fornecendo mais exemplos rotulados para tipos de documentos especializados e criando uma nova versão do modelo.

Neste laboratório, você vai criar um processador do analisador de faturas, configurar o processador para aprimoramento, rotular documentos de exemplo e aprimorar o processador.

O conjunto de dados de documentos usado neste laboratório consiste em faturas geradas aleatoriamente para uma empresa fictícia de encanamento.

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

  • Configure o treinamento incremental 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, crie um processador de análise 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 faturas" na barra de pesquisa) e selecione Analisador de faturas.

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 que o processador seja criado. 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, importe um PDF de 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 é concluída, você vê 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ê está no console de rotulagem, que vai ser parecido com isto.

docai-uptraining-codelab-12

  1. Clique na ferramenta "Selecionar texto", destaque o texto "McWilliam Piping International Piping Company" e atribua 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 atribua o rótulo supplier_address.

docai-uptraining-codelab-14

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

docai-uptraining-codelab-15

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

docai-uptraining-codelab-16

  1. Mude para a ferramenta "Caixa delimitadora". Destaque o texto "Knuckle Couplers" e atribua o rótulo line_item/description.

docai-uptraining-codelab-17

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

docai-uptraining-codelab-18

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

docai-uptraining-codelab-19

  1. Destaque o texto "669.87" e atribua 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 concluído.

docai-uptraining-codelab-21

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

docai-uptraining-codelab-22

  1. Destaque o texto "113,57" (ao lado de "Tributo") 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 atribua 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. Confira 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, assim 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 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, então 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 de exemplo que estamos usando neste exemplo não contêm todos os rótulos compatíveis com o analisador de faturas. É necessário marcar como inativos os rótulos que não serão usados antes do treinamento. 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 Ativados.
    • 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 zero instâncias 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. Aprimorar o treinamento do modelo

Agora está tudo pronto para treinar o 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 de 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 será Google Pretrained Next com treinamento contínuo.

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. É um documento de exemplo 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 a Document AI para aprimorar o treinamento de um analisador de faturas. Agora você pode usar esse processador para analisar faturas da mesma maneira 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.