Treinar e avaliar o modelo

Com a Document AI, você pode treinar novas versões do processador usando seus próprios dados de treinamento e avaliar a qualidade da versão do processador em comparação com seus dados de teste.

Isso é útil quando você quer usar um processador personalizado. Há um processador da Document AI para seu tipo de documento, mas você pode treinar uma versão personalizada para atender às suas necessidades.

O treinamento e a avaliação geralmente são realizados em conjunto para iterar em direção a uma versão de processador utilizável e de alta qualidade.

Document AI

Com a Document AI, você pode criar seu próprio extrator personalizado, que extrai entidades de documentos de um tipo específico, por exemplo, os itens de um menu ou o nome e dados de contato de um currículo.

Ao contrário de outros processadores, os personalizados não vêm com versões de processador pré-treinadas e, portanto, não podem processar documentos até que você treine uma versão do zero.

Para começar a usar a Document AI, consulte Crie seu próprio processador personalizado.

Aprimorar o treinamento de um processador

É possível atualizar novas versões do processador para melhorar a precisão dos dados, extrair outros campos personalizados dos documentos e adicionar suporte a novos idiomas.

O treinamento avançado funciona aplicando o aprendizado por transferência em versões de processador pré-treinadas do Google e geralmente requer menos dados do que o treinamento do zero.

Para começar, consulte Aprimorar um processador pré-treinado.

Processadores compatíveis

Nem todos os processadores especializados oferecem suporte ao treinamento. Estes são os processadores que oferecem suporte ao treinamento.

Considerações e recomendações sobre dados

A qualidade e a quantidade dos seus dados determinam a qualidade do treinamento, do treinamento avançado e da avaliação.

Conseguir um conjunto de documentos reais e representativos e fornecer etiquetas de alta qualidade geralmente é a parte mais demorada e que consome mais recursos do processo.

Número de documentos

Se todos os documentos tiverem um formato semelhante (por exemplo, um formulário fixo com variação muito baixa), menos documentos serão necessários para alcançar a precisão. Quanto maior a variação, mais documentos são necessários.

Os gráficos a seguir fornecem uma estimativa aproximada do número de documentos que são necessários para que um Extrator de documentos personalizado alcance uma pontuação de qualidade específica.

Variação baixa Variação alta
processor-training-and-evaluation-overview-1 processor-training-and-evaluation-overview-2

Rotulagem de dados

Considere suas opções para rotular documentos e verifique se você tem recursos suficientes para anotar os documentos no seu conjunto de dados.

Como treinar modelos

Os processadores de extração personalizados podem usar diferentes tipos de modelo, dependendo do caso de uso específico e dos dados de treinamento disponíveis.

  • Modelo personalizado: modelo que usa dados de treinamento rotulados.
    • Baseado em modelo: documentos com um layout fixo.
    • Com base em modelo: documentos com alguma variação de layout.
  • Modelo de IA generativa: baseado em modelos de base pré-treinados que exigem um treinamento mínimo adicional.

A tabela a seguir ilustra quais casos de uso correspondem a cada tipo de modelo.

Modelo personalizado IA generativa
Com base em modelo Com base no modelo
Variação de layout Nenhum Baixo a médio Alta
Quantidade de texto em formato livre (por exemplo, parágrafos em um contrato) Baixo Baixo Alta
Quantidade de dados de treinamento necessários Baixo Alta Baixo
Acurácia com dados de treinamento limitados Alto Baixo Alto

Saiba como ajustar um processador com descrições de propriedade.

Quando usar outro processador

Confira alguns casos em que você pode considerar opções além do Document AI Workbench ou adaptar seu fluxo de trabalho.

  • Alguns formatos de entrada baseados em texto (.txt, .html, .docx, .md e assim por diante) não são compatíveis com o Document AI Workbench. Considere outras ofertas de processamento de linguagem predefinidas ou personalizadas no Google Cloud, como a API Cloud Natural Language.
  • O esquema do Custom Document Extractor aceita até 150 rótulos de entidade. Se a lógica de negócios exigir mais de 150 entidades na definição do esquema, considere treinar vários processadores, cada um com um subconjunto de entidades.

Como treinar um processador

Supondo que você já tenha criado um processador compatível com o treinamento ou aprimoramento e rotulado seu conjunto de dados, é possível treinar uma nova versão do processador do zero. Também é possível aprimorar o treinamento de uma nova versão do processador com base em uma versão atual.

Treinar a versão do processador

IU da Web

  1. No console do Google Cloud, acesse a guia Treinar do processador.

    Acessar a Galeria de processadores

  2. Clique em Editar esquema para abrir a página Gerenciar marcadores. Verifique os rótulos do processador.

    Os rótulos ativados no momento do treinamento determinam as entidades que a nova versão do processador extrai. Se um rótulo estiver inativo no esquema, a versão do processador não vai extrair esse rótulo, mesmo que os documentos estejam rotulados.

  3. Na guia Treinar, clique em Conferir estatísticas do marcador e verifique o conjunto de teste e de treinamento. Os documentos rotulados automaticamente, sem rótulo ou não atribuídos são excluídos do treinamento e da avaliação.

  4. Clique em Treinar nova versão.

    O nome da versão define o campo name do processorVersion.

    processor-training-and-evaluation-overview-3

  5. Clique em Iniciar treinamento e aguarde a nova versão do processador ser treinada e avaliada.

    É possível monitorar o progresso do treinamento na guia Gerenciar versões:

    processor-training-and-evaluation-overview-4

  6. Clique na guia Avaliar e testar para conferir o desempenho da nova versão do processador no conjunto de testes. Para mais informações, consulte Avaliar a versão do processador.

Python

Para mais informações, consulte a documentação de referência da API Document AI Python.

Para autenticar na Document AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


from typing import Optional

from google.api_core.client_options import ClientOptions
from google.cloud import documentai  # type: ignore

# TODO(developer): Uncomment these variables before running the sample.
# project_id = 'YOUR_PROJECT_ID'
# location = 'YOUR_PROCESSOR_LOCATION' # Format is 'us' or 'eu'
# processor_id = 'YOUR_PROCESSOR_ID'
# processor_version_display_name = 'new-processor-version'
# train_data_uri = 'gs://bucket/directory/' # (Optional)
# test_data_uri = 'gs://bucket/directory/' # (Optional)


def train_processor_version_sample(
    project_id: str,
    location: str,
    processor_id: str,
    processor_version_display_name: str,
    train_data_uri: Optional[str] = None,
    test_data_uri: Optional[str] = None,
) -> None:
    # You must set the api_endpoint if you use a location other than 'us', e.g.:
    opts = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com")

    client = documentai.DocumentProcessorServiceClient(client_options=opts)

    # The full resource name of the processor
    # e.g. `projects/{project_id}/locations/{location}/processors/{processor_id}
    parent = client.processor_path(project_id, location, processor_id)

    processor_version = documentai.ProcessorVersion(
        display_name=processor_version_display_name
    )

    # If train/test data is not supplied, the default sets in the Cloud Console will be used
    input_data = documentai.TrainProcessorVersionRequest.InputData(
        training_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=train_data_uri)
        ),
        test_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=test_data_uri)
        ),
    )

    request = documentai.TrainProcessorVersionRequest(
        parent=parent, processor_version=processor_version, input_data=input_data
    )

    operation = client.train_processor_version(request=request)
    # Print operation details
    print(operation.operation.name)
    # Wait for operation to complete
    response = documentai.TrainProcessorVersionResponse(operation.result())

    metadata = documentai.TrainProcessorVersionMetadata(operation.metadata)

    print(f"New Processor Version:{response.processor_version}")
    print(f"Training Set Validation: {metadata.training_dataset_validation}")
    print(f"Test Set Validation: {metadata.test_dataset_validation}")

Implantar e usar a versão do processador

É possível implantar e gerenciar suas versões de processador como qualquer outra versão de processador. Para mais informações, consulte Como gerenciar versões de processadores.

Depois de implantado, envie uma solicitação de processamento para o processador personalizado.

Desativar ou excluir um processador

Se você não quiser mais usar um processador, poderá desativá-lo ou excluí-lo. Se você desativar um processador, poderá reativá-lo. Se você excluir um processador, não será possível recuperá-lo.

  1. No painel Document AI à esquerda, clique em Meus processadores.

  2. Clique nos pontos verticais à direita do nome do processador. Clique em Desativar processador ou Excluir processador.

Para mais informações, consulte Como gerenciar versões de processadores.

Criptografia de dados de treinamento

Os dados de treinamento da Document AI são salvos no Cloud Storage e podem ser criptografados com chaves de criptografia gerenciadas pelo cliente se necessário.

Exclusão de dados de treinamento

Depois que um job de treinamento do Document AI é concluído, todos os dados de treinamento salvos no Cloud Storage expiram após um período de armazenamento de dois dias. As atividades de exclusão de dados posteriores respeitam o processo descrito em Exclusão de dados no Google Cloud.

Preços

Não há custo para treinamento ou reciclagem. Você paga pela hospedagem e previsão. Para mais informações, consulte Preços da Document AI.