Modelo de classificação personalizado do Document Intelligence

Importante

  • As versões de visualização pública do Document Intelligence fornecem acesso antecipado a recursos que estão em desenvolvimento ativo. Recursos, abordagens e processos podem mudar, antes da Disponibilidade Geral (GA), com base nos comentários dos usuários.
  • A versão de visualização pública das bibliotecas de cliente do Document Intelligence usa como padrão a API REST versão 2024-07-31-preview.
  • A versão de pré-visualização pública 2024-07-31-preview está atualmente disponível apenas nas seguintes regiões do Azure. Observe que o modelo generativo personalizado (extração de campo de documento) no AI Studio só está disponível na região Centro-Norte dos EUA:
    • E.U.A. Leste
    • Oeste dos EUA2
    • Europa Ocidental
    • Centro-Norte dos EUA

Este conteúdo aplica-se a:marca de verificação v4.0 (pré-visualização) | Versão anterior: Marca de verificação azul v3.1 (GA)

Este conteúdo aplica-se a: marca de verificação v3.1 (GA) | Última versão: marca de verificação roxa v4.0 (pré-visualização)

Importante

  • O 2024-07-31-preview modelo de classificação personalizado da API não dividirá documentos por padrão durante o processo de análise.
  • Você precisa definir explicitamente a splitMode propriedade como auto para preservar o comportamento de versões anteriores. O padrão para splitMode é none.
  • Se o arquivo de entrada contiver vários documentos, você precisará habilitar a divisão definindo como splitMode auto.

O Azure AI Document Intelligence é um serviço de IA do Azure baseado na nuvem que lhe permite criar soluções inteligentes de processamento de documentos. As APIs de inteligência de documentos analisam imagens, PDFs e outros arquivos de documentos para extrair e detetar vários elementos semânticos, de layout, de estilo e de conteúdo.

Os modelos de classificação personalizados são tipos de modelo de aprendizagem profunda que combinam recursos de layout e linguagem para detetar e identificar com precisão os documentos que você processa em seu aplicativo. Os modelos de classificação personalizados executam a classificação de um arquivo de entrada uma página de cada vez para identificar os documentos dentro e também podem identificar vários documentos ou várias instâncias de um único documento dentro de um arquivo de entrada.

Capacidades do modelo

Nota

  • Começando com a API, os 2024-02-29-preview modelos de clasificação personalizados suportam treinamento incremental. Você pode adicionar novos exemplos a classes existentes ou adicionar novas classes fazendo referência a um classificador existente.

Os modelos de classificação personalizados podem analisar documentos de um ou vários arquivos para identificar se algum dos tipos de documentos treinados está contido em um arquivo de entrada. Aqui estão os cenários suportados atualmente:

  • Um único ficheiro que contém um tipo de documento, como um formulário de pedido de empréstimo.

  • Um único arquivo contendo vários tipos de documentos. Por exemplo, um pacote de pedido de empréstimo que contém um formulário de pedido de empréstimo, recibo de pagamento e extrato bancário.

  • Um único arquivo contendo várias instâncias do mesmo documento. Por exemplo, uma coleção de faturas digitalizadas.

✔️ O treinamento de um classificador personalizado requer pelo menos two classes distintas e um mínimo de amostras de five documentos por classe. A resposta do modelo contém os intervalos de páginas para cada uma das classes de documentos identificados.

✔️ O número máximo permitido de aulas é 500. O número máximo permitido de amostras de documentos por classe é 100.

O modelo classifica cada página do documento de entrada, a menos que especificado, para uma das classes no conjunto de dados rotulado. Você também pode especificar os números de página a serem analisados no documento de entrada. Para definir o limite para seu aplicativo, use a pontuação de confiança da resposta.

Formação incremental

Com modelos personalizados, você precisa manter o acesso ao conjunto de dados de treinamento para atualizar seu classificador com novas amostras para uma classe existente ou adicionar novas classes. Os modelos de classificadores agora oferecem suporte a treinamento incremental, onde você pode fazer referência a um classificador existente e acrescentar novas amostras para uma classe existente ou adicionar novas classes com amostras. O treinamento incremental permite cenários em que a retenção de dados é um desafio e o classificador precisa ser atualizado para se alinhar às necessidades de negócios em constante mudança. O treinamento incremental é suportado com modelos treinados com a versão 2024-02-29-preview da API e posterior.

Importante

O treinamento incremental só é suportado com modelos treinados com a mesma versão da API. Se você estiver tentando estender um modelo, use a versão da API com a qual o modelo original foi treinado para estender o modelo. O treinamento incremental só é suportado com a API versão 2024-07-31-preview ou posterior.

O treinamento incremental requer que você forneça a ID do modelo original como o baseClassifierId. Consulte o treinamento incremental para saber mais sobre como usar o treinamento incremental.

Suporte a tipo de documento do Office

Agora você pode treinar classificadores para reconhecer tipos de documentos em vários formatos, incluindo PDF, imagens, Word, PowerPoint e Excel. Ao montar seu conjunto de dados de treinamento, você pode adicionar documentos de qualquer um dos tipos suportados. O classificador não exige que você rotule explicitamente tipos específicos. Como prática recomendada, certifique-se de que seu conjunto de dados de treinamento tenha pelo menos uma amostra de cada formato para melhorar a precisão geral do modelo.

Comparar classificação personalizada e modelos compostos

Um modelo de classificação personalizado pode substituir um modelo composto em alguns cenários, mas há algumas diferenças a serem observadas:

Funcionalidade Processo de classificação personalizado Processo de modelo composto
Analise um único documento de tipo desconhecido pertencente a um dos tipos treinados para processamento de modelos de extração. ● Requer várias chamadas.
● Chame o modelo de classificação com base na classe do documento. Esta etapa permite uma verificação baseada em confiança antes de invocar a análise do modelo de extração.
● Invoque o modelo de extração.
● Requer uma única chamada para um modelo composto contendo o modelo correspondente ao tipo de documento de entrada.
Analise um único documento de tipo desconhecido pertencente a vários tipos treinados para processamento de modelos de extração. ●Requer várias chamadas.
● Faça uma chamada para o classificador que ignora documentos que não correspondem a um tipo designado para extração.
● Invoque o modelo de extração.
● Requer uma única chamada para um modelo composto. O serviço seleciona um modelo personalizado dentro do modelo composto com a correspondência mais alta.
● Um modelo composto não pode ignorar documentos.
Analise um arquivo contendo vários documentos de tipo conhecido ou desconhecido pertencentes a um dos tipos treinados para processamento de modelos de extração. ● Requer várias chamadas.
● Chame o modelo de extração para cada documento identificado no arquivo de entrada.
● Invoque o modelo de extração.
● Requer uma única chamada para um modelo composto.
● O modelo composto invoca o modelo de componente uma vez na primeira instância do documento.
●Os restantes documentos são ignorados.

Suporte de idiomas

Atualmente, os modelos de classificação suportam apenas documentos em inglês.

Os modelos de classificação podem agora ser formados em documentos de diferentes línguas. Consulte os idiomas suportados para obter uma lista completa.

Requisitos de entrada

Formatos de ficheiro suportados:

Modelo PDF Imagem:
jpeg/jpg, png, bmp, tiff, heif
Microsoft Office:
Word (docx), Excel (xlxs), PowerPoint (pptx)
Lida
Esquema ✔ (2024-02-29-preview, 2023-10-31-preview, e posterior)
Documento Geral
Pré-criado
Extração personalizada
Classificação personalizada
  • Para obter melhores resultados, forneça cinco fotos nítidas ou digitalizações de alta qualidade por tipo de documento.

  • Para PDF e TIFF, até 2.000 páginas podem ser processadas (com uma assinatura de nível gratuito, apenas as duas primeiras páginas são processadas).

  • O tamanho do arquivo para analisar documentos é de 500 MB para a camada paga (S0) e 4 MB para a camada gratuita (F0).

  • As dimensões da imagem devem estar entre 50 x 50 pixels e 10.000 px x 10.000 pixels.

  • Se os seus PDFs forem bloqueados por uma palavra-passe, terá de remover o bloqueio antes da submetê-los.

  • A altura mínima do texto a ser extraído é de 12 pixels para uma imagem de 1024 x 768 pixels. Esta dimensão corresponde a um texto de cerca 8de -ponto a 150 pontos por polegada (DPI).

  • Para treinamento de modelo personalizado, o número máximo de páginas para dados de treinamento é 500 para o modelo de modelo personalizado e 50.000 para o modelo neural personalizado.

  • Para treinamento de modelo de extração personalizado, o tamanho total dos dados de treinamento é de 50 MB para o modelo de modelo e 1G-MB para o modelo neural.

  • Para treinamento de modelo de classificação personalizado, o tamanho total dos dados de treinamento é de 1 GB com um máximo de 10.000 páginas.

Divisão de documentos

Quando você tem mais de um documento em um arquivo, o classificador pode identificar os diferentes tipos de documento contidos no arquivo de entrada. A resposta do classificador contém os intervalos de páginas para cada um dos tipos de documentos identificados contidos em um arquivo. Essa resposta pode incluir várias instâncias do mesmo tipo de documento.

A analyze operação agora inclui uma splitMode propriedade que lhe dá controle granular sobre o comportamento de divisão.

  • Para tratar todo o arquivo de entrada como um único documento para classificação, defina splitMode como none. Quando você faz isso, o serviço retorna apenas uma classe para todo o arquivo de entrada.
  • Para classificar cada página do arquivo de entrada, defina splitMode como perPage. O serviço tenta classificar cada página como um documento individual.
  • Defina o splitMode como auto e o serviço identifica os documentos e os intervalos de páginas associados.

Melhores práticas

Os modelos de classificação personalizados exigem um mínimo de cinco amostras por classe para treinar. Se as classes forem semelhantes, adicionar amostras de treinamento extras melhora a precisão do modelo.

O classificador tenta atribuir cada documento a uma das classes, se você espera que o modelo veja tipos de documento que não estão nas classes que fazem parte do conjunto de dados de treinamento, você deve planejar definir um limite na pontuação de classificação ou adicionar algumas amostras representativas dos tipos de documento a uma "other" classe. Adicionar uma "other" classe garante que documentos desnecessários não afetem a qualidade do classificador.

Formar um modelo

Os modelos de classificação personalizados são suportados pelas APIs v4.0: 2024-02-29-preview, 2024-07-31-preview e v3.1: 2023-07-31 (GA). O Document Intelligence Studio fornece uma interface de usuário sem código para treinar interativamente um classificador personalizado. Siga o guia de como começar.

Ao usar a API REST, se você organizar seus documentos por pastas, poderá usar a azureBlobSource propriedade da solicitação para treinar um modelo de classificação.


https://{endpoint}/documentintelligence/documentClassifiers:build?api-version=2024-02-29-preview

{
  "classifierId": "demo2.1",
  "description": "",
  "docTypes": {
    "car-maint": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/car-maint/"
            }
    },
    "cc-auth": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/cc-auth/"
            }
    },
    "deed-of-trust": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "sample1/deed-of-trust/"
            }
    }
  }
}

https://{endpoint}/formrecognizer/documentClassifiers:build?api-version=2023-07-31

{
  "classifierId": "demo2.1",
  "description": "",
  "docTypes": {
    "car-maint": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/car-maint/"
            }
    },
    "cc-auth": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/cc-auth/"
            }
    },
    "deed-of-trust": {
        "azureBlobSource": {
            "containerUrl": "SAS URL to container",
            "prefix": "{path to dataset root}/deed-of-trust/"
            }
    }
  }
}

Como alternativa, se você tiver uma lista simples de arquivos ou planeja usar apenas alguns arquivos selecionados dentro de cada pasta para treinar o modelo, poderá usar a azureBlobFileListSource propriedade para treinar o modelo. Esta etapa requer um file list formato de linhas JSON. Para cada aula, adicione um novo arquivo com uma lista de arquivos a serem enviados para treinamento.

{
  "classifierId": "demo2",
  "description": "",
  "docTypes": {
    "car-maint": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/car-maint.jsonl"
      }
    },
    "cc-auth": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/cc-auth.jsonl"
      }
    },
    "deed-of-trust": {
      "azureBlobFileListSource": {
        "containerUrl": "SAS URL to container",
        "fileList": "{path to dataset root}/deed-of-trust.jsonl"
      }
    }
  }
}

Por exemplo, a lista car-maint.jsonl de ficheiros contém os seguintes ficheiros.

{"file":"classifier/car-maint/Commercial Motor Vehicle - Adatum.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Fincher.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Lamna.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Liberty.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Trey.pdf"}

Substituir um modelo

Nota

Começando com a API, os modelos de classificação personalizados suportam a 2024-07-31-preview substituição de um modelo in-loco.

Agora você pode atualizar a classificação personalizada in-loco. Substituir diretamente o modelo perderia a capacidade de comparar a qualidade do modelo antes de decidir substituir o modelo existente. A substituição de modelo é permitida quando a allowOverwrite propriedade é especificada explicitamente no corpo da solicitação. É impossível recuperar o modelo original substituído uma vez que essa ação é executada.



{
  "classifierId": "existingClassifierName",
  "allowOverwrite": true,  // Default=false
  ...
}

Copiar um modelo

Nota

A partir da API, os modelos de classificação personalizados suportam a 2024-07-31-preview cópia de um modelo de e para qualquer uma das seguintes regiões:

  • E.U.A. Leste
  • Oeste dos EUA2
  • Europa Ocidental

Use a API REST ou o Document Intelligence Studio para copiar um modelo para outra região.

Gerar solicitação de autorização de cópia

A solicitação HTTP a seguir obtém autorização de cópia do recurso de destino. Você precisa inserir o ponto de extremidade e a chave do recurso de destino como cabeçalhos.

POST https://myendpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers:authorizeCopy?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}

Corpo do pedido

{
  "classifierId": "targetClassifier",
  "description": "Target classifier description"
}

Você recebe um código de 200 resposta com o corpo da resposta que contém a carga JSON necessária para iniciar a cópia.

{
  "targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
  "targetResourceRegion": "targetResourceRegion",
  "targetClassifierId": "targetClassifier",
  "targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
  "accessToken": "accessToken",
  "expirationDateTime": "timestamp"
}

Iniciar operação de cópia

A solicitação HTTP a seguir inicia a operação de cópia no recurso de origem. Você precisa inserir o ponto de extremidade e a chave do seu recurso de origem como url e cabeçalho. Observe que a URL da solicitação contém a ID do classificador do classificador de origem que você deseja copiar.

POST {endpoint}/documentintelligence/documentClassifiers/{classifierId}:copyTo?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}

O corpo do seu pedido é a resposta do passo anterior.

{
  "targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
  "targetResourceRegion": "targetResourceRegion",
  "targetClassifierId": "targetClassifier",
  "targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
  "accessToken": "accessToken",
  "expirationDateTime": "timestamp"
}

Modelo de resposta

Analise um arquivo de entrada com o modelo de classificação de documentos.

https://{endpoint}/documentintelligence/documentClassifiers/{classifier}:analyze?api-version=2024-02-29-preview

Começando com a 2024-07-31-preview API, você pode especificar páginas para analisar a partir do documento de entrada usando o pages parâmetro query na solicitação.

https://{service-endpoint}/formrecognizer/documentClassifiers/{classifier}:analyze?api-version=2023-07-31

A resposta contém os documentos identificados com os intervalos de páginas associados na secção de documentos da resposta.

{
  ...

    "documents": [
      {
        "docType": "formA",
        "boundingRegions": [
          { "pageNumber": 1, "polygon": [...] },
          { "pageNumber": 2, "polygon": [...] }
        ],
        "confidence": 0.97,
        "spans": []
      },
      {
        "docType": "formB",
        "boundingRegions": [
          { "pageNumber": 3, "polygon": [...] }
        ],
        "confidence": 0.97,
        "spans": []
      }, ...
    ]
  }

Próximos passos

Aprenda a criar modelos de classificação personalizados: