Modelo de clasificación personalizada de Documento de inteligencia

Importante

  • Las versiones preliminares públicas de Documento de inteligencia proporcionan acceso anticipado a las características que están en desarrollo activo. Antes de la disponibilidad general (GA), las características, los enfoques y los procesos podrían cambiar en función de los comentarios de los usuarios.
  • La versión preliminar pública de las bibliotecas cliente de Documento de inteligencia tiene como valor predeterminado la versión de la API de REST 2024-07-31-preview.
  • La versión preliminar pública 2024-07-31-preview solo está disponible en las siguientes regiones de Azure. Tenga en cuenta que el modelo generativo personalizado (extracción de campos del documento) en AI Studio solo está disponible en la región Centro-norte de EE. UU.:
    • Este de EE. UU.
    • Oeste de EE. UU. 2
    • Oeste de Europa
    • Centro-Norte de EE. UU

Este contenido se aplica a:marca de verificación v4.0 (versión preliminar) | Versión anterior: marca de verificación azul v3.1 (GA)

Este contenido se aplica a: marca de verificación v3.1 (GA) | Versión más reciente: marca de verificación púrpura v4.0 (versión preliminar)

Importante

  • La API de 2024-07-31-preview, el modelo de clasificación personalizado no dividirá los documentos de manera predeterminada durante el proceso de análisis.
  • Debe establecer explícitamente la propiedad splitMode en automática para conservar el comportamiento de las versiones anteriores. El valor predeterminado para splitMode es none.
  • Si el archivo de entrada contiene varios documentos, debe habilitar la división estableciendo splitMode en auto.

Documento de inteligencia de Azure AI es un servicio de Azure AI basado en la nube que permite crear soluciones inteligentes de procesamiento de documentos. Las API de Documento de inteligencia analizan imágenes, Archivo PDF y otros archivos de documento para extraer y detectar varios elementos de contenido, diseño, estilo y semántica.

Los modelos de clasificación personalizados son tipos de modelos de aprendizaje profundo que combinan características de diseño y lenguaje para detectar e identificar con precisión los documentos que se procesan dentro de la aplicación. Los modelos de clasificación personalizados realizan la clasificación de un archivo de entrada una página a la vez para identificar los documentos dentro de y también pueden identificar varios documentos o varias instancias de un único documento dentro de un archivo de entrada.

Funcionalidades del modelo

Nota:

  • A partir de la API de 2024-02-29-preview, los modelos de clasificación personalizados admiten el entrenamiento incremental. Puede agregar nuevos ejemplos a las clases existentes o agregar nuevas clases haciendo referencia a un clasificador existente.

Los modelos de clasificación pueden analizar documentos de uno o varios archivos para identificar si alguno de los tipos de documentos entrenados se encuentra dentro de un archivo de entrada. Estos son los escenarios admitidos actualmente:

  • Un único archivo que contiene un tipo de documento, como un formulario de solicitud de préstamo.

  • Un único archivo que contiene varios tipos de documento. Por ejemplo, un paquete de solicitud de préstamo que contiene un formulario de solicitud de préstamo, un pago y un extracto bancario.

  • Un único archivo que contiene varias instancias del mismo documento. Por ejemplo, una colección de facturas escaneadas.

✔️ El entrenamiento de un clasificador personalizado requiere al menos two clases distintas y un mínimo de five muestras de documentos por clase. La respuesta del modelo contiene los intervalos de página de cada una de las clases de documentos identificados.

✔️ El número máximo permitido de clases es 500. El número máximo permitido de muestras de documentos por clase es 100.

El modelo clasifica cada página del documento de entrada, salvo que se especifique lo contrario, en una de las clases del conjunto de datos etiquetado. También puede especificar los números de página que se van a analizar en el documento de entrada. Para establecer el umbral de la aplicación, use la puntuación de confianza de la respuesta.

Entrenamiento incremental

Con los modelos personalizados, debe mantener el acceso al conjunto de datos de entrenamiento para actualizar el clasificador con nuevos ejemplos para una clase existente o agregar nuevas clases. Los modelos clasificadores ahora admiten el entrenamiento incremental, donde puede hacer referencia a un clasificador existente y anexar nuevos ejemplos para una clase existente o agregar nuevas clases con ejemplos. El entrenamiento incremental permite escenarios en los que la retención de datos es un desafío y el clasificador debe actualizarse para alinearse con las necesidades empresariales cambiantes. El entrenamiento incremental se admite con modelos entrenados con la versión de API 2024-02-29-preview y versiones posteriores.

Importante

El entrenamiento incremental solo se admite con modelos entrenados con la misma versión de API. Si intenta ampliar un modelo, use la versión de API con la que se entrenó el modelo original para ampliar el modelo. El entrenamiento incremental solo se admite con la versión de API 2024-07-31-preview o posterior.

El entrenamiento incremental requiere que proporcione el identificador de modelo original como baseClassifierId. Consulte entrenamiento incremental para obtener más información sobre cómo usar el entrenamiento incremental.

Soporte de tipos de documento de Office

Ahora puede entrenar clasificadores para reconocer tipos de documento en varios formatos, como PDF, imágenes, Word, PowerPoint y Excel. Al ensamblar el conjunto de datos de entrenamiento, puede agregar documentos de cualquiera de los tipos admitidos. El clasificador no requiere que se etiquete explícitamente tipos específicos. Como procedimiento recomendado, asegúrese de que el conjunto de datos de entrenamiento tenga al menos un ejemplo de cada formato para mejorar la precisión general del modelo.

Comparar la clasificación personalizada y los modelos compuestos

Un modelo de clasificación personalizado puede reemplazar a un modelo compuesto en algunos escenarios, pero hay algunas diferencias que se deben tener en cuenta:

Capacidad Proceso del clasificador personalizado Proceso del modelo compuesto
Analizar un único documento de tipo desconocido que pertenezca a uno de los tipos entrenados para el procesamiento del modelo de extracción. ● Requiere varias llamadas.
● Llame al modelo de clasificación basado en la clase de documento. Este paso permite una comprobación basada en la confianza antes de invocar el análisis del modelo de extracción.
● Invoque el modelo de extracción.
● Requiere una sola llamada a un modelo compuesto que contenga el modelo correspondiente al tipo de documento de entrada.
Analizar un único documento de tipo desconocido que pertenezca a varios tipos entrenados para el procesamiento del modelo de extracción. ●Requiere varias llamadas.
● Realice una llamada al clasificador que omita los documentos que no coincidan con un tipo designado para la extracción.
● Invoque el modelo de extracción.
● Requiere una sola llamada a un modelo compuesto. El servicio selecciona un modelo personalizado dentro del modelo compuesto con la coincidencia más alta.
● Un modelo compuesto no puede ignorar los documentos.
Analizar un archivo que contenga varios documentos de tipo conocido o desconocido que pertenezcan a uno de los tipos entrenados para el procesamiento del modelo de extracción. ● Requiere varias llamadas.
● Llame al modelo de extracción para cada documento identificado en el archivo de entrada.
● Invoque el modelo de extracción.
● Requiere una sola llamada a un modelo compuesto.
● El modelo compuesto invoca el modelo de componentes una vez en la primera instancia del documento.
●Los documentos restantes se omiten.

Compatibilidad de idioma

Actualmente, los modelos de clasificación solo admiten documentos en inglés.

Los modelos de clasificación ahora se pueden entrenar en documentos de diferentes idiomas. Consulte idiomas admitidos para obtener una lista completa.

Requisitos de entrada

Formatos de archivos admitidos:

Modelo PDF Imagen:
jpeg/jpg, png, bmp, tiff, heif
Microsoft Office:
Word (docx), Excel (xlxs), PowerPoint (pptx)
Leer
Layout ✔ (2024-02-29-versión preliminar, 2023-10-31-versión preliminar y versiones posteriores)
Documento general
Creada previamente
Extracción personalizada
Clasificación personalizada
  • Para obtener mejores resultados, proporcione cinco fotos claras o exámenes de alta calidad por tipo de documento.

  • Para PDF y TIFF, se pueden procesar hasta 2000 páginas (con una suscripción de nivel gratis, solo se procesan las dos primeras páginas).

  • El tamaño de archivo para analizar documentos es de 500 MB para el nivel de pago (S0) y de 4 MB para el nivel gratuito (F0).

  • Las imágenes deben tener unas dimensiones de entre 50 x 50 píxeles y 10 000 x 10 000 píxeles.

  • Si los archivos PDF están bloqueados con contraseña, debe desbloquearlos antes de enviarlos.

  • La altura mínima del texto que se va a extraer es de 12 píxeles para una imagen de 1024 x 768 píxeles. Esta dimensión corresponde a aproximadamente 8texto de punto a 150 puntos por pulgada (DPI).

  • Para el entrenamiento de modelos personalizados, el número máximo de páginas para los datos de entrenamiento es 500 para el modelo de plantilla personalizada y 50 000 para el modelo neuronal personalizado.

  • Para el entrenamiento de modelos de extracción personalizados, el tamaño total de los datos de entrenamiento es de 50 MB para el modelo de plantilla y 1 G-MB para el modelo neuronal.

  • Para el entrenamiento del modelo de clasificación personalizada, el tamaño total de los datos de entrenamiento es de 1 GB con un máximo de 10 000 páginas.

División de documentos

Cuando tiene más de un documento en un archivo, el clasificador puede identificar los distintos tipos de documento contenidos en el archivo de entrada. La respuesta del clasificador contiene los intervalos de página para cada uno de los tipos de documento identificados contenidos en un archivo. Esta respuesta puede incluir varias instancias del mismo tipo de documento.

La operación analyze ahora incluye una propiedad splitMode que proporciona un control pormenorizado sobre el comportamiento de división.

  • Para tratar todo el archivo de entrada como un único documento para la clasificación, establezca splitMode en none. Al hacerlo, el servicio devuelve solo una clase para todo el archivo de entrada.
  • Para clasificar cada página del archivo de entrada, establezca splitMode en perPage. El servicio intenta clasificar cada página como un documento individual.
  • Establezca splitMode en auto y el servicio identifica los documentos y los intervalos de página asociados.

procedimientos recomendados

Los modelos de clasificación personalizados requieren un mínimo de cinco muestras por clase para entrenarse. Si las clases son similares, agregar muestras de entrenamiento adicionales mejora la precisión del modelo.

El clasificador intenta asignar cada documento a una de las clases, si espera que el modelo vea los tipos de documento que no están en las clases que forman parte del conjunto de datos de entrenamiento, debe planear establecer un umbral en la puntuación de clasificación o agregar algunos ejemplos representativos de los tipos de documento a una clase "other". Agregar una clase "other" garantiza que los documentos innecesarios no afecten a la calidad del clasificador.

Training a model

Los modelos de clasificación personalizados son compatibles con las API v4.0: 2024-02-29-preview, 2024-07-31-preview y v3.1: 2023-07-31 (GA). Documento de inteligencia Studio proporciona una interfaz de usuario sin código para entrenar interactivamente un clasificador personalizado. Siga cómo guiar para empezar.

Al usar la API de REST, si organiza los documentos por carpetas, puede usar la propiedad azureBlobSource de la solicitud para entrenar un modelo de clasificación.


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, si tiene una lista plana de archivos o solo tiene previsto usar algunos archivos seleccionados dentro de cada carpeta para entrenar el modelo, puede usar para ello la propiedad azureBlobFileListSource. Este paso requiere un elemento file list en formato de líneas JSON. Para cada clase, agregue un nuevo archivo con una lista de archivos que se envíen para el entrenamiento.

{
  "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 ejemplo, la lista de archivos car-maint.jsonl contiene los siguientes archivos.

{"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"}

Sobrescritura de un modelo

Nota:

A partir de la API 2024-07-31-preview, los modelos de clasificación personalizados admiten la sobrescritura de un modelo en contexto.

Ahora puede actualizar la clasificación personalizada en contexto. Si se sobrescribe directamente el modelo, se perderá la capacidad de comparar la calidad del modelo antes de decidir reemplazar el modelo existente. Se permite sobrescribir el modelo cuando la propiedad allowOverwrite se especifica explícitamente en el cuerpo de la solicitud. Es imposible recuperar el modelo original sobrescrito una vez realizada esta acción.



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

Copia de un modelo

Nota:

A partir de la API 2024-07-31-preview, los modelos de clasificación personalizados admiten la copia de un modelo hacia y desde cualquiera de las regiones siguientes:

  • Este de EE. UU.
  • Oeste de EE. UU. 2
  • Oeste de Europa

Use la API de REST o Estudio de Documento de inteligencia para copiar un modelo en otra región.

Generación de la solicitud de autorización de copia

La siguiente solicitud HTTP obtiene la autorización de copia del recurso de destino. Debe especificar el punto de conexión y la clave del recurso de destino como encabezados.

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

Cuerpo de la solicitud

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

Obtendrá un código de respuesta 200 con el cuerpo de la respuesta que contiene la carga JSON necesaria para iniciar la copia.

{
  "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"
}

Inicio de la operación de copia

La siguiente solicitud HTTP inicia la operación de copia en el recurso de origen. Debe especificar el punto de conexión y la clave del recurso de origen como URL y encabezado. Observe que la dirección URL de la solicitud contiene el identificador del clasificador de origen que desea copiar.

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

El cuerpo de la solicitud será la respuesta del paso 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"
}

Respuesta del modelo

Analice un archivo de entrada con el modelo de clasificación de documentos.

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

A partir de la API 2024-07-31-preview, puede especificar las páginas para analizar desde el documento de entrada usando el parámetro de consulta pages en la solicitud.

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

La respuesta contiene los documentos identificados con los intervalos de página asociados en la sección de documentos de la respuesta.

{
  ...

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

Pasos siguientes

Aprenda a crear modelos de clasificación personalizados: