Treinar e avaliar o modelo

A Document AI permite treinar novas versões de processador usando seus próprios dados de treinamento e avaliar a qualidade da versão do processador em relação aos 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 dele para atender às suas necessidades.

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

Document AI

A Document AI permite 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 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 Criar seu próprio processador personalizado.

Aprimoramento do treinamento de um processador

É possível aprimorar o treinamento de novas versões de processador para melhorar a acurácia dos dados, extrair campos personalizados adicionais dos documentos e adicionar suporte a novos idiomas.

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

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

Processadores compatíveis

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

Considerações e recomendações de dados

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

A obtenção de um conjunto de documentos representativos e reais e o fornecimento de rótulos de alta qualidade suficientes costumam ser a parte mais demorada e com maior uso de 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 serão necessários.

Os gráficos a seguir fornecem uma estimativa aproximada do número de documentos 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 de rotulagem de documentos e verifique se você tem recursos suficientes para anotar os documentos no seu conjunto de dados.

Como treinar modelos

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

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

Modelo personalizado IA generativa
Baseado em modelo Com base no modelo
Variação de layout Nenhuma Baixa a média Alta
Quantidade de texto de formato livre (por exemplo, parágrafos em um contrato) Baixa Baixo Alta
Quantidade de dados de treinamento necessários Baixa Alta Baixa
Precisão com dados de treinamento limitados Maior Menor Maior

Aprenda a ajustar um processador com descrições de propriedades.

Quando usar outro processador

Confira algumas instâncias em que você pode considerar opções além da Document AI Document AI Workbench ou adaptar seu fluxo de trabalho.

  • Alguns formatos de entrada baseados em texto (.txt, .html, .docx, .md etc.) não são compatíveis com a Document AI Document AI Workbench. Considere outras ofertas de processamento de linguagem pré-criadas ou personalizadas em Google Cloud, como a API Cloud Natural Language.
  • O esquema do extrator de documentos personalizado oferece suporte a 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 segmentando um subconjunto de entidades.

Como treinar um processador

Supondo que você já tenha criado um processador que ofereça suporte ao treinamento ou aprimoramento do treinamento e rotulado o conjunto de dados, é possível treinar uma nova versão do processador do zero. Ou você pode 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 Google Cloud console do, acesse a guia Treinar do processador.

    Acessar a galeria de processadores

  2. Clique em Editar esquema para abrir a página Gerenciar rótulos. 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 extrairá esse rótulo, mesmo que os documentos estejam rotulados.

  3. Na guia Treinar, clique em Ver estatísticas de rótulos e verifique o conjunto de testes e conjunto de treinamento. Os documentos rotulados automaticamente, não rotulados 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 Document AI Python API documentação de referência.

Para autenticar na Document AI, configure o Application Default Credentials. Se quiser 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 as versões do processador como qualquer outra versão do processador. Para mais informações, consulte Como gerenciar versões de processadores.

Depois de implantado, você pode enviar uma solicitação de processamento para o seu processador personalizado.

Desativar ou excluir um processador

Se você não quiser mais usar um processador, desative ou exclua-o. Se você desativar um processador, poderá reativá-lo. Se você excluir um processador, não poderá 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.

Fazer upgrade de uma versão de processador ajustada

É possível fazer upgrade de versões de processador de extrator personalizado ajustadas para uma versão base mais recente. As configurações da versão base mais recente serão baseadas na versão mais antiga. Ela usará os dados de treinamento do processador que estão nas versões originais.

  1. No Google Google Cloud console, acesse a guia Implantar e usar do processador, e selecione uma caixa de seleção para uma versão de processador compatível para upgrade. Essa será a base da configuração da nova versão do processador.

    processor-training-and-evaluation-overview-5

  2. Selecione o upgrade ativado. Insira o nome e a versão base da nova versão do processador.

    processor-training-and-evaluation-overview-6

  3. Clique em Fazer upgrade e aguarde o treinamento da nova versão do processador.

Usar a API para fazer upgrade

Também é possível usar chamadas de API para fazer upgrade de versões de processador de extrator personalizado ajustadas para uma versão base mais recente.

curl

Este exemplo mostra como migrar um processor ajustado usando o campo FoundationModelTuningOptions no TrainingMethod.

Antes de usar os dados da solicitação, faça as substituições a seguir com as informações na guia Google Cloud console Visão geral do Document AI para seu processador.

  • LOCATION: o local do processador .
  • PROJECT_ID: o ID do projeto.
  • PROCESSOR_ID: o ID do processador.
  • DISPLAY_NAME: o novo nome de exibição do processador.
  • BASE_PROCESSOR_VERSION: o nome da versão do processador do modelo atual
  • PROCESSOR_VERSION: o ID do processador atual a ser atualizado

    curl -X POST -v -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://LOCATION-documentai.googleapis.com/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions:train" \
      -d '{
      "processor_version": {
        "display_name": "DISPLAY_NAME"
      },
      "base_processor_version": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/BASE_PROCESSOR_VERSION",
      "foundation_model_tuning_options": {
      "train_steps": 10,
      "learning_rate_multiplier": 1,
      "previous_fine_tuned_processor_version_name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION",
      }
    }'

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 da 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 subsequentes respeitam o processo descrito em Exclusão de dados em Google Cloud.

Preços

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