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: v4.0 (pré-visualização) | Versão anterior: v3.1 (GA)
Este conteúdo aplica-se a: v3.1 (GA) | Última versão: 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 parasplitMode
é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 | 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
8
de -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: