Entrenamiento de un modelo personalizado mediante la herramienta de etiquetado de ejemplo

Este contenido se aplica a:Document Intelligence v2.1 checkmarkv2.1.

Sugerencia

  • Para obtener una experiencia mejorada y una calidad avanzada del modelo, pruebe Studio de Documento de inteligencia v3.0.
  • La versión 3.0 de Studio admite cualquier modelo entrenado con datos etiquetados de la versión 2.1.
  • Puede consultar la guía de migración de API para obtener información detallada sobre la migración de la versión 2.1 a la 3.0.
  • Consulte nuestras guías de inicio rápido sobre la API de REST o C#, Java, JavaScript o el SDK de Python para comenzar a trabajar con la versión v3.0.

En este artículo, se usa la API de REST de Document Intelligence con la herramienta Sample Labeling para entrenar un modelo personalizado con datos etiquetados manualmente.

Requisitos previos

Para completar este proyecto, necesita los siguientes recursos:

  • Una suscripción a Azure: cree una cuenta gratuita
  • Una vez que tenga su suscripción de Azure, crear un recurso de Documento de inteligencia en Azure Portal para obtener su clave y punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que ha creado para conectar la aplicación a la API de Document Intelligence. En una sección posterior de este mismo inicio rápido, va a pegar la clave y el punto de conexión en el código.
    • Puede usar el plan de tarifa gratis (F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Un conjunto de al menos seis formularios del mismo tipo. Use estos datos para entrenar el modelo y probar un formulario. En este inicio rápido, puede usar un conjunto de datos de ejemplo (descargue y extraiga sample_data.zip). Cargue los archivos de entrenamiento en la raíz de un contenedor de almacenamiento de blobs de una cuenta de Azure Storage de nivel de rendimiento estándar.

Creación de un recurso de Documento de inteligencia

Vaya a Azure Portal y cree un nuevo recurso de Documento de inteligencia . En el panel Crear, proporcione la siguiente información:

Detalles del proyecto Descripción
Suscripción Seleccione la suscripción de Azure a la que se le ha concedido acceso.
Grupos de recursos El grupo de recursos de Azure que contiene el recurso. Puede crear un nuevo grupo o agregarlo a uno ya existente.
Región Ubicación del recurso de servicios de Azure AI. Las diferentes ubicaciones pueden crear latencias, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso.
Nombre Un nombre descriptivo para su recurso. Se recomienda usar un nombre descriptivo, como MyNameFormRecognizer.
Plan de tarifa El costo del recurso depende el plan de tarifa elegido y del uso. Para obtener más información, consulte los detalles de los precios.
Revisar y crear Seleccione el botón Revisar y crear para implementar este recurso en Azure Portal.

Recuperación de la clave y el punto de conexión

Cuando el recurso de Documento de inteligencia termine la implementación, búsquelo y selecciónelo en la lista Todos los recursos del portal. Encontrará la clave y el punto de conexión en la página Key and Endpoint (Clave y punto de conexión) del recurso, en Administración de recursos. Guarde ambos en una ubicación temporal antes de continuar.

Prueba

Pruebe en línea la Herramienta de etiquetado de muestras de Document Intelligence:

Necesita una suscripción de Azure (cree una de forma gratuita) y un punto de conexión de Recursos de Document Intelligence y una clave para probar el servicio Document Intelligence.

Configuración de la herramienta de etiquetado de ejemplo

Nota:

Si sus datos de almacenamiento están detrás de una VNet o firewall, debe desplegar la Herramienta Document Intelligence Sample Labeling detrás de su VNet o firewall y conceder acceso a través de la creación de una identidad administrada asignada por el sistema de recursos administrados de Azure.

Use el motor de Docker para ejecutar la herramienta de etiquetado de ejemplo. Siga estos pasos para configurar el contenedor de Docker. Para conocer los principios básicos de Docker y de los contenedores, consulte Introducción a Docker.

Sugerencia

OCR Form Labeling Tool también está disponible como proyecto de código abierto en GitHub. La herramienta es una aplicación web en TypeScript compilada mediante React + Redux. Para más información o para realizar una contribución, consulte el repositorio OCR Form Labeling Tool. Para probar la herramienta en línea, vaya aSitio web de la herramienta de etiquetado de ejemplos de Document Intelligence.

  1. En primer lugar, instale Docker en un equipo host. Esta guía le muestra cómo usar un equipo local como un host. Si quiere usar un servicio de hospedaje de Docker en Azure, vea la guía paso a paso Implementación de la herramienta de etiquetado de ejemplo.

    El equipo host debe cumplir los siguientes requisitos de hardware:

    Contenedor Mínima Recomendado
    Herramienta de etiquetado de muestras 2 núcleos, 4 GB de memoria 4 núcleos, 8 GB de memoria

    Instale Docker en la máquina siguiendo las instrucciones adecuadas para su sistema operativo:

  2. Obtenga el contenedor de la herramienta de etiquetado de ejemplo con el comando docker pull.

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. Ahora ya está listo para ejecutar el contenedor con docker run.

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    Este comando hace que la herramienta de etiquetado de ejemplo esté disponible mediante un explorador web. Ir a http://localhost:3000.

Nota:

También puede etiquetar documentos y entrenar modelos usando la API de REST de Document Intelligence. Para entrenar y analizar con la API REST, consulte Entrenamiento con etiquetas mediante la API REST y Python.

Configuración de datos de entrada

En primer lugar, asegúrese de que todos los documentos de entrenamiento tienen el mismo formato. Si tiene formularios en varios formatos, organícelos en subcarpetas basadas en un formato común. Al entrenar, debe dirigir la API a una subcarpeta.

Configuración del uso compartido de recursos entre dominios (CORS)

Habilite CORS en la cuenta de almacenamiento. Seleccione la cuenta de almacenamiento en Azure Portal y elija la pestaña CORS del panel izquierdo. En la línea inferior, rellene los valores siguientes. Seleccione Guardar en la parte superior.

  • Orígenes permitidos = *
  • Métodos permitidos = [seleccionar todos]
  • Encabezados permitidos = *
  • Encabezados expuestos = *
  • Antigüedad máxima = 200

CORS setup in the Azure portal

Conexión a la herramienta de etiquetado de ejemplo

La herramienta de etiquetado de ejemplo se conecta a un origen (los formularios originales cargados) y a un destino (las etiquetas creadas y los datos de salida).

Las conexiones se pueden configurar y compartir entre proyectos. Usan un modelo extensible de proveedores, por lo que puede agregar fácilmente nuevos proveedores de origen y destino.

Para crear una conexión, seleccione el icono New Connections (Nuevas conexiones) (un enchufe) en la barra de navegación izquierda.

Rellene los campos con los siguientes valores:

  • Nombre para mostrar: el nombre para mostrar de la conexión.

  • Descripción: la descripción del proyecto.

  • Dirección URL de SAS: la dirección URL de la firma de acceso compartido (SAS) del contenedor de Azure Blob Storage. Para recuperar la dirección URL de la firma de acceso compartido para los datos de entrenamiento del modelo personalizado, vaya al recurso de almacenamiento en Azure Portal y seleccione la pestaña Explorador de Storage. Vaya al contenedor, haga clic con el botón derecho y seleccione Obtener firma de acceso compartido. Es importante obtener la firma de acceso compartido para el contenedor, no para la propia cuenta de almacenamiento. Asegúrese de que están seleccionados los permisos de lectura, escritura, eliminación y enumeración y haga clic en Crear. A continuación, copie el valor de la sección URL en una ubicación temporal. Debe tener el formato https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    SAS URL retrieval

Connection settings of Sample Labeling tool.

Creación de un nuevo proyecto

En la herramienta de etiquetado de ejemplo, los proyectos almacenan las configuraciones y los valores. Cree un nuevo proyecto y rellene los campos con los siguientes valores:

  • Nombre para mostrar: el nombre para mostrar del proyecto
  • Token de seguridad: algunos valores de configuración del proyecto pueden incluir valores confidenciales, como claves u otros secretos compartidos. Cada proyecto genera un token de seguridad que se puede usar para cifrar o descifrar los valores de configuración confidenciales del proyecto. Puede buscar los tokens de seguridad en la configuración de la aplicación. Para ello, seleccione el icono de engranaje situado en la esquina inferior de la barra de navegación izquierda.
  • Conexión de origen: la conexión de Azure Blob Storage que creó en el paso anterior que le gustaría usar para este proyecto.
  • Ruta de acceso a la carpeta (opcional): si los formularios de origen se encuentran en una carpeta en el contenedor de blobs, especifique aquí el nombre de la carpeta.
  • Uri del servicio Documento de inteligencia: dirección URL del punto de conexión de Documento de inteligencia.
  • Clave: su clave de Document Intelligence.
  • Descripción (opcional): descripción del proyecto.

New project page on Sample Labeling tool.

Etiquetado de formularios

Al crear o abrir un proyecto, se abrirá la ventana principal del editor de etiquetas. El editor de etiquetas consta de tres partes:

  • Un panel de versión 3.0 de tamaño variable que contiene una lista desplazable de formularios de la conexión de origen.
  • El panel principal del editor que permite aplicar etiquetas.
  • El panel del editor de etiquetas que permite a los usuarios modificar, bloquear, reordenar y eliminar etiquetas.

Identificación de textos y tablas

Seleccione el elemento Ejecutar Diseño en todos los archivos, ubicado en el panel izquierdo, para obtener la información de diseño del texto y las tablas de cada documento. La herramienta de etiquetado dibuja los cuadros de límite alrededor de cada elemento de texto.

También muestra las tablas que se hayan extraído automáticamente. Seleccione el icono de tabla o cuadrícula en la parte izquierda del documento para ver la tabla extraída. En este inicio rápido, como el contenido de la tabla se extrae automáticamente, no se etiqueta, sino que se usa en la extracción automatizada.

Table visualization in Sample Labeling tool.

En la versión 2.1, si el documento de entrenamiento no tiene un valor rellenado, puede dibujar un cuadro para este. Use Draw region (Dibujar región) en la esquina superior izquierda de la ventana para hacer que la región se pueda etiquetar.

Aplicación de etiquetas a texto

A continuación, cree etiquetas y aplíquelas a los elementos de texto que desea que analice el modelo.

  1. Primero, use el panel del editor de etiquetas para crear las etiquetas que le gustaría identificar.
    1. Seleccione + para crear una etiqueta.
    2. Escriba el nombre de la etiqueta.
    3. Presione Entrar para guardar la etiqueta.
  2. En el editor principal, seleccione las palabras de los elementos de texto resaltados o una región en la que dibujara.
  3. Seleccione la etiqueta que desea aplicar o presione la tecla correspondiente del teclado. Las teclas numéricas se asignan como teclas de acceso rápido para las diez primeras etiquetas. Puede volver a ordenar las etiquetas con los iconos de flecha arriba y abajo del panel del editor de etiquetas.
  4. Siga estos pasos para etiquetar al menos cinco de sus formularios.

    Sugerencia

    Tenga en cuenta las siguientes sugerencias cuando vaya a etiquetar los formularios:

    • Solo se puede aplicar una etiqueta a cada elemento de texto seleccionado.
    • Cada etiqueta solo se puede aplicar una vez por página. Si un valor aparece varias veces en el mismo formulario, cree etiquetas diferentes para cada instancia. Por ejemplo, "factura n.º 1", "factura n.º 2", etc.
    • Las etiquetas no pueden abarcar varias páginas.
    • Etiquete los valores tal como aparecen en el formulario; no intente dividir un valor en dos partes con dos etiquetas diferentes. Por ejemplo, un campo de dirección debe etiquetarse con una sola etiqueta incluso si abarca varias líneas.
    • No incluya claves en los campos etiquetados, solo los valores.
    • Los datos de la tabla se deben detectar automáticamente y estarán disponibles en el archivo JSON de salida final. Sin embargo, si el modelo no detecta todos los datos de la tabla, también puede etiquetar manualmente estos campos. Etiquete cada celda de la tabla con una etiqueta diferente. Si los formularios tienen tablas con un número variable de filas, asegúrese de etiquetar al menos un formulario con la tabla más grande posible.
    • Use los botones situados a la derecha de + para buscar, reordenar y eliminar las etiquetas, así como cambiarles el nombre.
    • Para quitar una etiqueta aplicada sin eliminar la etiqueta en sí, seleccione el rectángulo etiquetado en la vista de documento y presione la tecla Supr.

Main editor window of Sample Labeling tool.

Especificación de los tipos de valores de etiqueta

Puede establecer el tipo de datos esperado para cada etiqueta. Abra el menú contextual a la derecha de una etiqueta y seleccione un tipo del menú. Esta característica permite que el algoritmo de detección realice suposiciones para mejorar la precisión de la detección de texto. También garantiza que los valores detectados se devuelvan en un formato estandarizado en la salida JSON final. La información del tipo de valor se guarda en el archivo fields.json en la misma ruta de acceso que los archivos de etiqueta.

Value type selection with Sample Labeling tool

Actualmente se admiten los siguientes tipos de valor y variaciones:

  • string

    • predeterminado, no-whitespaces, alphanumeric
  • number

    • predeterminado, currency
    • Con formato de valor de número de punto flotante.
    • Ejemplo: 1234,98 en el documento tiene el formato 1234,98 en la salida
  • date

    • predeterminado, dmy, mdy, ymd
  • time

  • integer

    • Con el formato de valor entero.
    • Ejemplo: 1234,98 en el documento se tiene el formato 123498 en la salida.
  • selectionMark

Nota

Consulte estas reglas para el formato de fecha:

Para que el formato de fecha funcione, debe especificar un formato (dmy, mdy, ymd).

Los siguientes caracteres se pueden usar como delimitadores de fecha: , - / . \. No se puede usar un espacio en blanco como delimitador. Por ejemplo:

  • 01,01,2020
  • 01-01-2020
  • 01/01/2020

El día y el mes pueden escribirse cada uno con uno o dos dígitos, y el año puede tener dos o cuatro dígitos:

  • 1-1-2020
  • 1-01-20

Si una cadena de fecha tiene ocho dígitos, el delimitador es opcional:

  • 01012020
  • 01 01 2020

El mes también se puede escribir como su nombre completo o abreviado. Si se utiliza el nombre, los caracteres delimitadores son opcionales. Sin embargo, este formato puede reconocerse con menos precisión que otros.

  • 01/Ene/2020
  • 01ene2020
  • 01 de enero de 2020

Tablas de etiquetas (solo v. 2.1)

A veces los datos se prestan mejor a ser etiquetados como tabla en lugar de como pares clave-valor. En este caso, puede crear una etiqueta de tabla; y para ello debe seleccionar Agregar una nueva etiqueta de tabla. Especifique si la tabla tiene un número fijo o variable de filas según el documento, y defina el esquema.

Configuring a table tag.

Una vez definida la etiqueta de tabla, etiquete los valores de las celdas.

Labeling a table.

Entrenamiento de un modelo personalizado

Elija el icono Train (Entrenar) en el panel izquierdo para abrir la página de entrenamiento. A continuación, seleccione el botón Train (Entrenar) para empezar a entrenar el modelo. Una vez completado el proceso de entrenamiento, verá la siguiente información:

  • Id. del modelo: el identificador del modelo que se ha creado y entrenado. Cada llamada de entrenamiento crea un nuevo modelo con su propio identificador. Copie esta cadena en una ubicación segura; la necesita si desea realizar llamadas de predicción mediante la API REST o la guía de la biblioteca cliente.
  • Precisión media: el promedio de precisión del modelo. Para mejorar la precisión del modelo, agregue y etiquete más formularios y, después, vuelve a realizar el entrenamiento para crear otro modelo. Se recomienda empezar por etiquetar cinco formularios y agregar más formularios según sea necesario.
  • La lista de etiquetas y la precisión estimada por etiqueta.

Training view.

Una vez finalizado el entrenamiento, examine el valor de Precisión media. Si es bajo, debe agregar más documentos de entrada y repetir los pasos de etiquetado. Los documentos que ya ha etiquetado permanecen en el índice del proyecto.

Sugerencia

También puede ejecutar el proceso de entrenamiento con una llamada a la API REST. Para aprender a hacerlo, consulte Entrenamiento con etiquetas mediante Python.

Creación de modelos entrenados

Con el modelo Compose, puede crear hasta 200 modelos en un único identificador de modelo. Cuando llame a Analyze con el compuestomodelID, Document Intelligence clasificará el formulario enviado, elegirá el modelo que mejor coincida y luego devolverá los resultados de ese modelo. Esta operación resulta útil cuando los formularios de entrada pueden pertenecer a una de varias plantillas.

  • Para hacer una composición de modelos en la herramienta de etiquetado de muestras, seleccione el icono de composición de modelos (flecha combinada) en la barra de navegación.
  • Seleccione los modelos con los que desea hacer una composición. Los modelos con el icono de flechas ya son modelos compuestos.
  • Elija el botón Compose (Componer). En el elemento emergente, asígnele un nombre al nuevo modelo compuesto y seleccione Compose (Componer).
  • Una vez finalizada la operación, el modelo recién compuesto debe aparecer en la lista.

Model compose UX view.

Análisis de un formulario

Seleccione el icono Analizar en la barra de navegación para probar el modelo. Seleccione el archivo local de origen. Busque un archivo en el conjunto de datos de ejemplo que descomprimió en la carpeta de prueba y selecciónelo. A continuación, elija el botón Ejecutar análisis para obtener las predicciones de pares clave-valor, texto y tablas del formulario. La herramienta aplica etiquetas en los cuadros de límite e informa de la confianza de cada etiqueta.

Screenshot of analyze-a-custom-form window

Sugerencia

También puede ejecutar la API de análisis con una llamada a REST. Para aprender a hacerlo, consulte Entrenamiento con etiquetas mediante Python.

Mejora de los resultados

Según la precisión notificada, puede que desee realizar un entrenamiento adicional para mejorar el modelo. Después de haber realizado una predicción, examine los valores de confianza de cada una de las etiquetas aplicadas. Si el valor de precisión media del entrenamiento es alto, pero las puntuaciones de confianza son bajas (o los resultados son inexactos), agregue el archivo de la predicción al conjunto de entrenamiento, etiquételo y vuelva a realizar el entrenamiento.

La precisión media notificada, las puntuaciones de confianza y la precisión real pueden ser incoherentes cuando los documentos que se analizan son diferentes de los usados en el entrenamiento. Tenga en cuenta que algunos documentos tienen un aspecto similar cuando los ven los usuarios, pero pueden parecer distintos para el modelo de IA. Por ejemplo, puede realizar el entrenamiento con un tipo de formulario que tiene dos variantes, en el que el conjunto de entrenamiento consta de un 20 % perteneciente a la variante A y un 80 % a la variante B. Durante la predicción, es probable que las puntuaciones de confianza de los documentos de la variante A sean menores.

Guardar un proyecto y reanudarlo más tarde

Para reanudar el proyecto en otro momento o en otro explorador, debe guardar el token de seguridad del proyecto y volver a escribirlo más tarde.

Obtención de las credenciales del proyecto

Vaya a la página de configuración del proyecto (icono de control deslizante) y anote el nombre del token de seguridad. A continuación, vaya a la configuración de la aplicación (icono de engranaje), que muestra todos los tokens de seguridad de la instancia actual del explorador. Busque el token de seguridad del proyecto y copie su nombre y valor de clave en una ubicación segura.

Restauración de las credenciales del proyecto

Si desea reanudar el proyecto, primero debe crear una conexión al mismo contenedor de almacenamiento de blobs. Para ello, repita los pasos. A continuación, vaya a la página de configuración de la aplicación (icono de engranaje) y compruebe si el token de seguridad del proyecto está allí. Si no es así, agregue un nuevo token de seguridad y copie el nombre y la clave del token del paso anterior. Seleccione Guardar para guardar la configuración.

Reanudación de un proyecto

Por último, vaya a la página principal (icono de la casa) y seleccione Open Cloud Project (Abrir proyecto en la nube). Después, seleccione la conexión al almacenamiento de blobs y seleccione el archivo .fott del proyecto. La aplicación carga todos los valores del proyecto ya que tiene el token de seguridad.

Pasos siguientes

En esta guía rápida, ha aprendido a utilizar la herramienta de etiquetado de muestras de Document Intelligence para entrenar un modelo con datos etiquetados manualmente. Si quiere crear su propia utilidad para etiquetar los datos de entrenamiento, use las API de REST que se ocupan del entrenamiento con datos etiquetados.