Extrator personalizado com IA generativa

O treinamento e a extração de IA generativa permitem:

  • Use a tecnologia de zero-shot e few-shot para ter um modelo de alto desempenho com poucos ou nenhum dado de treinamento usando o modelo de base.
  • Use o ajuste fino para aumentar ainda mais a precisão à medida que você fornece mais dados de treinamento.

Métodos de treinamento de IA generativa

O método de treinamento escolhido depende da quantidade de documentos disponíveis e do esforço que você pode dedicar ao treinamento do modelo. Há três maneiras de treinar um modelo de IA generativa:

Método de treinamento Zero-shot Few-shot Ajuste de detalhes
Precisão Médio Média alta Alta
Esforço Baixo Baixo Médio
Número recomendado de documentos de treinamento 0 5 a 10 De 10 a 50 ou mais

Versões personalizadas do modelo do extrator

Os seguintes modelos estão disponíveis para o extrator personalizado. Para mudar as versões do modelo, consulte Gerenciar versões do processador.

As versões 1.0 e 1.3 oferecem suporte a pontuações de confiança, enquanto as versões 1.1 e 1.2 não.

Versão do modelo Descrição Estável Processamento de ML nos EUA/UE Ajustes nos EUA/UE Data de lançamento
pretrained-foundation-model-v1.0-2023-08-22

Candidato pronto para Production especializado em casos de uso de documentos com modelos de visão e de base especializados.

Sim Não Somente nos EUA (GA) 9 de janeiro de 2024
pretrained-foundation-model-v1.1-2024-03-12

Versão candidata com o LLM Gemini 1.0 Pro e tecnologias recém- desenvolvidas, incluindo modelos de visão e linguagem especializados.

Esta versão e as versões mais recentes incluem recursos avançados de OCR, como a detecção de caixas de seleção. Recomendado para usar os limites de token aumentados ou experimentar modelos mais recentes.

Não Sim EUA, UE (pré-lançamento) 3 de maio de 2024
pretrained-foundation-model-v1.2-2024-05-10

Candidato pronto para Production com o LLM Gemini 1.5 Pro e tecnologias recém- desenvolvidas, incluindo modelos de linguagem e visão especializados.

Recomendado para melhor qualidade, usando os limites de token mais altos, empregando a melhor qualidade na identificação de entidades ou experimentando modelos mais recentes.

Sim Sim EUA, UE (pré-lançamento) 27 de maio de 2024
pretrained-foundation-model-v1.3-2024-08-31 Candidato pronto para Production com o LLM do Gemini 1.5 Flash. Recomendado para quem quer a menor latência. Sim Sim EUA, UE (pré-lançamento) 23 de agosto de 2024

Para mudar a versão do processador no seu projeto, consulte Como gerenciar versões de processadores.

Antes de começar

Se ainda não tiver feito isso, ative o faturamento e as APIs Document AI.

Criar e avaliar um modelo de IA generativa

  1. Crie um processador e defina os campos que você quer extrair seguindo as práticas recomendadas, o que é importante porque afeta a qualidade da extração.

    • Acesse Workbench > Extrator personalizado > Criar processador > Atribuir um nome.

    processor-version-genai-1

    • Acesse Começar > Criar novo campo.

    processor-version-genai-2

  2. Importar documentos

    • Importe documentos com rotulagem automática e atribua documentos ao conjunto de treinamento e teste.
    • Para a visão geral, apenas o esquema é necessário. Para avaliar a precisão do modelo, é necessário apenas um conjunto de testes.
    • Para o modo de poucos exemplos, recomendamos cinco documentos de treinamento.
    • O número de documentos de teste necessários depende do caso de uso. Em geral, quanto mais documentos de teste, melhor.
    • Confirme ou edite os rótulos no documento.
  3. Treinar o modelo:

    • Selecione Build e Criar nova versão.
    • Digite um nome e selecione Criar.

    processor-version-genai-12

  1. Avaliação:

    • Acesse Avaliar e testar, selecione a versão que você acabou de treinar e clique em Ver avaliação completa.

    processor-version-genai-13

    • Agora você vai encontrar métricas como f1, precisão e recall para o documento inteiro e cada campo.
    • Avalie se a performance atende às suas metas de produção. Se não, reavalie os conjuntos de treinamento e teste.
  2. Definir uma nova versão como padrão:

    • Navegue até Gerenciar versões.
    • Selecione para expandir as opções e, em seguida, selecione Definir como padrão.

    processor-version-genai-14

    Seu modelo foi implantado. Os documentos enviados para esse processador usam sua versão personalizada. É possível avaliar a performance do modelo para verificar se ele precisa de mais treinamento.

Referência de avaliação

O mecanismo de avaliação pode fazer correspondências exatas ou inexactas. Para uma correspondência exata, o valor extraído precisa corresponder exatamente à informação empírica ou será contabilizado como uma falha.

As extrações de correspondência aproximada que tinham pequenas diferenças, como diferenças de maiúsculas e minúsculas, ainda são consideradas uma correspondência. Isso pode ser alterado na tela Avaliação.

processor-version-genai-15

Ajuste de detalhes

Com o ajuste fino, você usa centenas ou milhares de documentos para o treinamento.

  1. Crie um processador e defina os campos que você quer extrair seguindo as práticas recomendadas, o que é importante porque afeta a qualidade da extração.

  2. Importe documentos com rotulagem automática e atribua-os ao conjunto de treinamento e teste.

  3. Confirme ou edite os rótulos no documento.

  4. Treinar o modelo.

    • Selecione a guia Build e clique em Criar nova versão.
    • Teste os parâmetros ou valores de treinamento padrão fornecidos. Se os resultados não forem satisfatórios, teste estas opções avançadas:

    • Etapas de treinamento (entre 100 e 400): controla a frequência com que os pesos são otimizados em um lote de dados durante o ajuste.

      • Um valor muito baixo indica um risco de o treinamento terminar antes da convergência (ajuste insuficiente).
      • Se o valor for muito alto, o modelo poderá encontrar o mesmo lote de dados várias vezes durante o treinamento, o que pode levar a um overfitting.
      • Menos etapas significam um tempo de treinamento mais rápido. Contagens mais altas podem ajudar em documentos com pouca variação de modelo (e menores para aqueles com mais variação).
    • Multiplicador da taxa de aprendizado (entre 0,1 e 10): controla a rapidez com que os parâmetros do modelo são otimizados nos dados de treinamento. Ele corresponde aproximadamente ao tamanho de cada etapa de treinamento.

      • Taxas baixas significam pequenas mudanças nos pesos do modelo em cada etapa de treinamento. Se for muito baixo, o modelo pode não convergir para uma solução estável.
      • Taxas altas indicam grandes mudanças, e taxas muito altas podem significar que o modelo está pulando a solução ideal e convergindo para uma solução subótima.
      • O tempo de treinamento não é afetado pela escolha da taxa de aprendizado.
    • Dê um nome, selecione a versão do processador de base necessária e clique em Criar.

    processor-version-genai-21

  5. Avaliação: acesse Avaliar e testar, selecione a versão que você acabou de treinar e clique em Ver avaliação completa.

    processor-version-genai-13

    • Agora você vai encontrar métricas como f1, precisão e recall para todo o documento e cada campo.
    • Decida se a performance atende às suas metas de produção. Caso contrário, talvez seja necessário mais documentos de treinamento.
  6. Definir uma nova versão como padrão:

    • Navegue até Gerenciar versões.
    • Selecione para expandir as opções e clique em Definir como padrão.

    processor-version-genai-14

    Seu modelo foi implantado, e os documentos enviados a esse processador agora usam sua versão personalizada. Você quer avaliar a performance do modelo para verificar se ele precisa de mais treinamento.

Rotulagem automática com o modelo de base

O modelo de base extrai campos com precisão para diversos tipos de documentos, mas também é possível fornecer mais dados de treinamento para melhorar a acurácia do modelo em estruturas de documentos específicas.

O Document AI usa os nomes dos rótulos que você define e as anotações anteriores para facilitar e agilizar a identificação de documentos em grande escala com a rotulagem automática.

  1. Depois de criar um processador personalizado, acesse a guia Começar.
  2. Selecione Criar novo campo.
  3. Dê um nome descritivo e distinto ao rótulo. Isso vai melhorar a precisão e o desempenho do modelo de base.

    processor-version-genai-17

  4. Para melhorar a precisão e o desempenho da extração, adicione uma descrição (como contexto, insights e conhecimento prévio para cada entidade) para os tipos de entidades que ela precisa extrair.

processor-version-genai-23

  1. Navegue até a guia Criar e selecione Importar documentos.

    processor-version-genai-18

  2. Selecione o caminho dos documentos e o conjunto em que eles serão importados. Marque a opção de rotulagem automática e selecione o modelo de fundação.

  3. Na guia Build, selecione Gerenciar conjunto de dados.

  4. Quando os documentos importados aparecerem, selecione um deles.

    processor-version-genai-19

As previsões do modelo agora são mostradas em destaque em roxo.

  1. Revise cada rótulo previsto pelo modelo e verifique se ele está correto.
  2. Se houver campos ausentes, adicione-os também.

    processor-version-genai-20

  3. Quando o documento for revisado, selecione Marcar como rotulado. O documento está pronto para ser usado pelo modelo.

  4. Verifique se o documento está no conjunto de teste ou de treinamento.

Aninhamento de três níveis

O extrator personalizado agora oferece três níveis de aninhamento. Esse recurso oferece uma extração melhor para tabelas complexas.

É possível determinar o tipo de modelo usando as seguintes chamadas de API:

A resposta é um ProcessorVersion, que contém o campo modelType na prévia da v1beta3.

Procedimento e exemplo

Estamos usando este exemplo:

processor-version-genai-3

  1. Selecione Começar e crie um campo:

    • Crie o nível superior.
    • Neste exemplo, o officer_appointments é usado.
    • Selecione Este é um rótulo pai.
    • Selecione Ocorrência: Optional multiple.

    processor-version-genai-4 processor-version-genai-5 processor-version-genai-6

  2. Selecione Adicionar campo filho. Agora, o rótulo de segundo nível pode ser criado:

    • Para esse rótulo de nível, crie officer.
    • Selecione Este é um rótulo pai.
    • Selecione Ocorrência: Optional multiple.

    processor-version-genai-7 processor-version-genai-8

  3. Selecione Adicionar campo filho no segundo nível officer. Crie rótulos filhos para o terceiro nível de aninhamento. processor-version-genai-9

  4. Quando o esquema estiver definido, você poderá receber previsões de documentos com três níveis de aninhamento usando a rotulagem automática.

    processor-version-genai-10 processor-version-genai-11

Configuração do conjunto de dados

Um conjunto de dados de documentos é necessário para treinar, aprimorar o treinamento ou avaliar uma versão do processador. Os processadores da Document AI aprendem com exemplos, assim como os humanos. O conjunto de dados aumenta a estabilidade do processador em termos de desempenho.

Treinar conjunto de dados

Para melhorar o modelo e a precisão dele, treine um conjunto de dados nos seus documentos. O modelo é formado por documentos com informações empíricas.
  • Para fazer ajustes, você precisa de pelo menos 10 documentos para treinar um novo modelo com a versão pretrained-foundation-model-v1.0-2023-08-22, 16 para a versão pretrained-foundation-model-v1.1-2024-03-12 e um documento para pretrained-foundation-model-v1.2-2024-05-10 e pretrained-foundation-model-v1.3-2024-08-31.
  • Para poucas imagens, recomendamos cinco documentos.
  • Para o zero-shot, apenas um esquema é necessário.

Conjunto de dados de teste

O conjunto de dados de teste é o que o modelo usa para gerar uma pontuação F1 (precisão). Ele é formado por documentos com informações empíricas. Para saber com que frequência o modelo está certo, as informações empíricas são usadas para comparar as previsões do modelo (campos extraídos do modelo) com as respostas corretas. O conjunto de dados de teste precisa ter pelo menos 10 documentos para ajustar a versão pretrained-foundation-model-v1.0-2023-08-22, 16 para a versão pretrained-foundation-model-v1.1-2024-03-12 e um documento para pretrained-foundation-model-v1.2-2024-05-10 e pretrained-foundation-model-v1.3-2024-08-31.

Extrator personalizado com descrições de propriedades

Com as descrições de propriedade, é possível treinar um modelo descrevendo como são os campos rotulados. Você pode fornecer mais contexto e insights para cada entidade. Isso permite que o modelo seja treinado com campos que correspondem à descrição fornecida e melhora a precisão da extração. As descrições de propriedade podem ser especificadas para entidades principais e filhas.

Bons exemplos de descrições de propriedades incluem informações de local e padrões de texto dos valores da propriedade, que ajudam a eliminar possíveis fontes de confusões no documento. Descrições de propriedades claras e precisas orientam o modelo com regras que garantem extrações mais confiáveis e consistentes, independentemente da estrutura do documento ou das variações de conteúdo.

Atualizar o esquema de documento de um processador

Para saber como definir as descrições de propriedade, consulte Atualizar o esquema do documento.

Enviar uma solicitação de processamento com descrições da propriedade

Se o esquema de documento já tiver descrições definidas, envie uma solicitação de processamento com as instruções em Enviar uma solicitação de processamento.

Ajustar um processador com descrições de propriedade

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: o local do processador, por exemplo:
    • us - Estados Unidos
    • eu - União Europeia
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • PROCESSOR_ID: o ID do processador personalizado.
  • DISPLAY_NAME: nome de exibição do processador.
  • PRETRAINED_PROCESSOR_VERSION: o identificador da versão do processador. Consulte Selecionar uma versão do processador para mais informações. Por exemplo:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • TRAIN_STEPS: etapas de treinamento para ajustar o modelo.
  • LEARN_RATE_MULTIPLIER: multiplicador da taxa de aprendizado para o ajuste fino do modelo.
  • DOCUMENT_SCHEMA: esquema do processador. Consulte Representação do DocumentSchema.

Método HTTP e URL:

POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process

Corpo JSON da solicitação:

{
  "rawDocument": {
      "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID",
         "processor_version": {
             "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME",
             "display_name": "DISPLAY_NAME",
             "model_type": "MODEL_TYPE_GENERATIVE",
         },
         "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION",
         "foundation_model_tuning_options": {
             "train_steps": TRAIN_STEPS,
             "learning_rate_multiplier": LEARN_RATE_MULTIPLIER,
         }
         "document_schema": DOCUMENT_SCHEMA
      }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content

A seguir

Aprimorar o treinamento de um processador especializado