Modelo de classificação personalizada da Informação de Documentos
Importante
- As versões preliminares públicas da Informação de Documentos oferecem acesso antecipado a recursos que estão em desenvolvimento ativo. Recursos, abordagens e processos podem ser alterados, antes da Disponibilidade Geral (GA), com base nos comentários do usuário.
- A versão de visualização pública das bibliotecas de clientes da Informação de Documentos usa como padrão a versão da API REST 2024-07-31-preview.
- Atualmente, a versão de visualização pública 2024-07-31-preview só está disponível nas regiões do Azure a seguir. Observe que o modelo generativo personalizado (extração de campos do documento) no Estúdio de IA está disponível somente na região Centro-Norte dos EUA:
- Leste dos EUA
- Oeste dos EUA 2
- Oeste da Europa
- Centro-Norte dos EUA
Esse conteúdo se aplica a: v4.0 (versão prévia) | Versão prévia: v3.1 (GA)
Este conteúdo se aplica a: v3.1 (GA) | Versão mais recente: v4.0 (versão prévia)
Importante
- A API
2024-07-31-preview
, o modelo de classificação personalizado não dividirá documentos por padrão durante o processo de análise. - Você precisa definir explicitamente a propriedade
splitMode
para preservar automaticamente o comportamento de versões anteriores. O padrão parasplitMode
énone
. - Se o arquivo de entrada contiver vários documentos, você precisará habilitar a divisão definindo o
splitMode
comoauto
.
A IA do Azure para Informação de Documentos é um Serviço de IA do Azure que permite que você crie soluções inteligentes de processamento de documentos. As APIs da Informação de Documentos analisam imagens, PDFs e outros arquivos de documento para extrair e detectar vários elementos de conteúdo, layout, estilo e semântica.
Os modelos de classificação personalizados são tipos de modelos de aprendizagem profunda que combinam recursos de layout e linguagem para detectar e identificar com precisão os documentos que você processa no seu aplicativo. Os modelos de classificação personalizada podem classificar uma página por vez de arquivos de entrada para identificar os documentos e pode identificar vários documentos ou várias instâncias de um só documento em um arquivo de entrada.
Funcionalidades de modelo
Observação
- A partir da API
2024-02-29-preview
, os modelos de classificação personalizados dão suporte ao 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 os documentos de um ou vários arquivos para identificar se algum dos tipos de documentos treinados está contido em um arquivo de entrada. Aqui temos os cenários com suporte no momento:
Um único arquivo que contém um tipo de documento, como um formulário de solicitação de empréstimo.
Um único arquivo que contém vários tipos de documentos. Por exemplo, um pacote de solicitação de empréstimo contendo um formulário de solicitação de empréstimo, um contracheque e extrato bancário.
Um único arquivo que contém várias instâncias do mesmo documento. Por exemplo, uma coleção de faturas digitalizadas.
✔️ O treinamento de um classificador personalizado exige pelo menos two
classes distintas e um mínimo de five
amostras de documentos por classe. A resposta do modelo contém os intervalos de página para cada uma das classes de documentos identificadas.
✔️ O número máximo permitido de classes é 500
. O número máximo permitido de amostras de documento 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.
Treinamento incremental
Com modelos personalizados, você precisa manter o acesso ao conjunto de dados de treinamento para atualizar o classificador com novos exemplos para uma classe existente ou adicionar novas classes. Os modelos de classificador agora dão suporte ao treinamento incremental em que você pode referenciar um classificador existente e acrescentar novos exemplos para uma classe existente ou adicionar novas classes com exemplos. 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. Há suporte para treinamento incremental com modelos treinados com a versão da API 2024-02-29-preview
e posteriores.
Importante
Só há suporte para treinamento incremental 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. Só há suporte para treinamento incremental com a versão da API 2024-07-31-preview ou posterior.
O treinamento incremental requer que você forneça a ID do modelo original como o baseClassifierId
. Consulte treinamento incremental para saber mais sobre como usar o treinamento incremental.
Suporte ao tipo de documento do Office
Agora você pode treinar classificadores para reconhecer tipos de documento 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 com suporte. O classificador não exige que você rotule explicitamente tipos específicos. Como melhor prática, verifique se o conjunto de dados de treinamento tem pelo menos um exemplo de cada formato para melhorar a precisão geral do modelo.
Compare a classificação personalizada e os 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 classificador personalizado | Processo de modelo composto |
---|---|---|
Analise um único documento de tipo desconhecido que pertence a um dos tipos treinados para processamento de modelo de extração. | ● Requer várias chamadas. ● Chame o modelo de classificação com base na classe do documento. Essa 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 que contém o modelo correspondente ao tipo de documento de entrada. |
Analise um único documento de tipo desconhecido que pertence a vários tipos treinados para processamento de modelo 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 que contém vários documentos de tipo conhecido ou desconhecido que pertencem a um dos tipos treinados para processamento de modelo 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 documentos restantes são ignorados. |
Suporte ao idioma
Atualmente, os modelos de classificação suportam apenas documentos em inglês.
Os modelos de classificação agora podem ser treinados em documentos de diferentes idiomas. Consulte idiomas com suporte para obter uma lista completa.
Requisitos de entrada
Formatos de arquivo com suporte:
Modelar | Imagem:jpeg/jpg , png , bmp , tiff , heif |
Microsoft Office: Word (docx), Excel (xlxs), PowerPoint (pptx) |
|
---|---|---|---|
Ler | ✔ | ✔ | ✔ |
Layout | ✔ | ✔ | ✔ (2024-02-29-preview, 2023-10-31-preview e posterior) |
Documento geral | ✔ | ✔ | |
Predefinida | ✔ | ✔ | |
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 camada gratuita, apenas as duas primeiras páginas são processadas).
O tamanho do arquivo para análise de documentos é 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 PDFs estiverem com bloqueio de senha, você deverá remover o bloqueio antes do envio.
A altura mínima do texto a ser extraído é de 12 pixels para uma imagem de 1.024 x 768 pixels. Essa dimensão corresponde a cerca de
8
pontos de texto em 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 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 há mais de um documento em um arquivo, o classificador pode identificar os diferentes tipos de documentos 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 operação analyze
agora inclui uma propriedade splitMode
que lhe dá controle granular sobre o comportamento da divisão.
- Para tratar o arquivo de entrada inteiro como um único documento para classificação, defina o 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 o splitMode como
perPage
. O serviço tenta classificar cada página como um documento individual. - Defina o splitMode como
auto
e o serviço identificará os documentos e os intervalos de páginas associados.
Práticas recomendadas
Os modelos de classificação personalizados exigem um mínimo de cinco amostras por classe para serem treinados. Se as classes forem semelhantes, adicionar amostras de treinamento adicionais melhorará a precisão do modelo.
O classificador tenta atribuir cada documento a uma das classes. Se você espera que o modelo veja tipos de documentos que não estão nas classes que fazem parte do conjunto de dados de treinamento, deve planejar definir um limite para a pontuação de classificação ou adicionar algumas amostras representativas dos tipos de documentos a uma classe "other"
. A adição de uma classe "other"
garante que documentos desnecessários não afetem a qualidade do classificador.
Treinando um modelo
Os modelos de classificação personalizados são compatíveis com as APIs v4.0: 2024-02-29-preview, 2024-07-31-preview e v3.1: 2023-07-31 (disponibilidade geral). O Estúdio de Informação de Documentos fornece uma interface do usuário sem código para treinar um classificador personalizado interativamente. Siga o guia como fazer para começar.
Ao usar a API REST, caso organize seus documentos por pastas, poderá usar a propriedade azureBlobSource
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 plana de arquivos ou apenas planeja usar alguns arquivos selecionados em cada pasta para treinar o modelo, poderá usar a propriedade azureBlobFileListSource
para treinar o modelo. Essa etapa requer um file list
no formato Linhas JSON. Para cada classe, 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 de arquivos car-maint.jsonl
contém os seguintes arquivos.
{"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
Observação
A partir da API 2024-07-31-preview
, os modelos de classificação personalizados dão suporte à substituição de um modelo in-loco.
Agora, você pode atualizar a classificação personalizada in-loco. A substituição direta do modelo faria com que você perdesse a capacidade de comparar a qualidade do modelo antes de decidir substituir o modelo existente. A substituição de modelo é permitida quando a propriedade allowOverwrite
é especificada explicitamente no corpo da solicitação. É impossível recuperar o modelo original sobrescrito depois que essa ação é executada.
{
"classifierId": "existingClassifierName",
"allowOverwrite": true, // Default=false
...
}
Copiar um modelo
Observação
Começando com a API 2024-07-31-preview
, os modelos de classificação personalizados dão suporte à cópia de um modelo de e para qualquer uma das seguintes regiões:
- Leste dos EUA
- Oeste dos EUA 2
- Oeste da Europa
Utilize a API REST ou o Estúdio de Informação de Documentos 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 a autorização de cópia do recurso de destino. Você precisa inserir o ponto de extremidade e a chave do seu 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 da solicitação
{
"classifierId": "targetClassifier",
"description": "Target classifier description"
}
Você recebe um código de resposta 200
com corpo de resposta que contém o conteúdo JSON necessário 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 o URL e cabeçalho. Observe que a URL da solicitação contém a ID do classificador de origem que você quer copiar.
POST {endpoint}/documentintelligence/documentClassifiers/{classifierId}:copyTo?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}
O corpo da solicitação é a resposta da etapa 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"
}
Resposta do modelo
Analisar 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 API 2024-07-31-preview
, você pode especificar páginas a serem analisadas do documento de entrada usando o parâmetro de consulta pages
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ágina associados na seção 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óximas etapas
Saiba como criar modelos de classificação personalizados: