Usar classificadores incrementais de Inteligência de Documentos

Este conteúdo aplica-se a: marca de verificação v4.0 (pré-visualização) marca de verificação

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 do Document Intelligence 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 seus aplicativos. Os modelos de classificação personalizados executam a classificação de arquivos 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.

Os classificadores de documentos do Document Intelligence identificam tipos de documentos conhecidos em arquivos. Ao processar um arquivo de entrada com vários tipos de documento ou quando você não souber o tipo de documento, use um classificador para identificar o documento. Os classificadores devem ser atualizados periodicamente sempre que ocorram as seguintes alterações:

  • Você adiciona novos modelos para uma classe existente.
  • Adicionar novos tipos de documentos para reconhecimento.
  • A confiança do classificador é baixa.

Em alguns cenários, você não pode mais ter o conjunto original de documentos usados para treinar o classificador. Com o treinamento incremental, você pode atualizar o classificador apenas com as novas amostras rotuladas.

Nota

O treinamento incremental só se aplica a modelos de classificadores de documentos e não a modelos personalizados.

O treinamento incremental é útil quando você deseja melhorar a qualidade de um classificador personalizado. Adicionar novas amostras de treinamento para classes existentes melhora a confiança do modelo para tipos de documentos existentes. Por exemplo, se uma nova versão de um formulário existente for adicionada ou se houver um novo tipo de documento. Um exemplo pode ser quando seu aplicativo começa a oferecer suporte a um novo tipo de documento como uma entrada válida.

Introdução ao treinamento incremental

  • O treinamento incremental não introduz novos pontos de extremidade de API.

  • A documentClassifiers:build carga útil da solicitação é modificada para oferecer suporte ao treinamento incremental.

  • O treinamento incremental resulta na criação de um novo modelo de classificador com o classificador existente intocado.

  • O novo classificador tem todas as amostras de documentos e tipos do classificador antigo, juntamente com as amostras recém-fornecidas. Você precisa garantir que seu aplicativo seja atualizado para trabalhar com o classificador recém-treinado.

    Nota

    A operação de cópia para classificadores não está disponível no momento.

Criar uma solicitação de compilação de classificador incremental

A solicitação de compilação do classificador incremental é semelhante à solicitação de compilação, classify document mas inclui a nova baseClassifierId propriedade. O baseClassifierId é definido como o classificador existente que você deseja estender. Você também precisa fornecer o docTypes para os diferentes tipos de documentos no conjunto de exemplos. Ao fornecer um docType que existe no baseClassifier, as amostras fornecidas na solicitação são adicionadas às amostras fornecidas quando o classificador base foi treinado. Novos docType valores agregados no treinamento incremental são apenas adicionados ao novo classificador. O processo para especificar as amostras permanece inalterado. Para obter mais informações, consulte Treinamento de um modelo de classificador.

Exemplo de solicitação POST

Exemplo POST de solicitação para criar um classificador de documentos incremental

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

{
  "classifierId": "myAdaptedClassifier",
  "description": "Classifier description",
  "baseClassifierId": "myOriginalClassifier",
  "docTypes": {
    "formA": {
      "azureBlobSource": {
        "containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
        "prefix": "formADocs/"
      }
    },
    "formB": {
      "azureBlobFileListSource": {
        "containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
        "fileList": "formB.jsonl"
      }
    }
  }
}

Resposta POST

Todas as APIs do Document Intelligence são assíncronas, a sondagem do local da operação retornada fornece um status na operação de compilação. Os classificadores são rápidos de treinar e o seu classificador pode estar pronto a utilizar dentro de um ou dois minutos.

Após a conclusão bem-sucedida:

  • O método bem-sucedido POST retorna um código de 202 OK resposta indicando que o serviço criou a solicitação.
  • Os documentos traduzidos estão localizados no contêiner de destino.
  • A POST solicitação também retorna cabeçalhos de resposta, incluindo Operation-Location. O valor desse cabeçalho contém um resultId que pode ser consultado para obter o status da operação assíncrona e recuperar os resultados usando uma GET solicitação com a mesma chave de assinatura de recurso.

Exemplo de solicitação GET

Solicitação de exemplo GET para recuperar o resultado de um classificador de documento incremental

GET {your-endpoint}/documentintelligence/documentClassifiers/{classifierId}/analyzeResults/{resultId}?api-version=2024-02-29-preview


{
  "classifierId": "myAdaptedClassifier",
  "description": "Classifier description",
  "createdDateTime": "2022-07-30T00:00:00Z",
  "expirationDateTime": "2023-01-01T00:00:00Z",
  "apiVersion": "2024-02-29-preview",

  "baseClassifierId": "myOriginalClassifier",

  "docTypes": {
    "formA": {
      "azureBlobSource": {
        "containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer",
        "prefix": "formADocs/"
      }
    },
    "formB": {
      "azureBlobFileListSource": {
        "containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer",
        "fileList": "formB.jsonl"
      }
    }
  }
}

OBTER resposta

A GET resposta de um classificador treinado incrementalmente difere da resposta do classificador GET padrão. O classificador treinado incrementalmente não retorna todos os tipos de documentos suportados. Ele retorna os tipos de documento adicionados ou atualizados na etapa de treinamento incremental e no classificador base estendido. Para obter uma lista completa dos tipos de documentos, o classificador base deve ser listado. A exclusão de um classificador base não afeta o uso de um classificador treinado incrementalmente.

Limites

  • O treinamento incremental só funciona quando o classificador base e o classificador treinado incrementalmente são treinados na mesma versão da API. Como resultado, o classificador treinado incrementalmente tem o mesmo ciclo de vida do modelo que o classificador base.

  • Os limites de tamanho do conjunto de dados de treinamento para o classificador incremental são os mesmos que para outro modelo de classificador. Consulte os limites de serviço para obter uma lista completa dos limites aplicáveis.

Próximos passos