Document AI Workbench: Enriquecimiento

Document AI Workbench:
Enriquecimiento

Acerca de este codelab

subjectÚltima actualización: abr 3, 2023
account_circleEscrito por Holt Skinner

1. Introducción

Document AI es una solución de comprensión de documentos que toma datos no estructurados, como documentos y correos electrónicos, entre otros, y permite que los datos sean más fáciles de comprender, analizar y consumir.

Con el enriquecimiento a través de Document AI Workbench, puedes lograr una mayor exactitud en el procesamiento de los documentos si proporcionas ejemplos etiquetados adicionales para los tipos de documentos especializados y creas una nueva versión del modelo.

En este lab, crearás un procesador de análisis de facturas, configurarás el procesador para el enriquecimiento, etiquetarás documentos de ejemplo y entrenarás el procesador.

El conjunto de datos de documentos que se usa en este lab consta de facturas generadas aleatoriamente para una empresa de canalización ficticia.

Requisitos previos

Este codelab se basa en contenido presentado en otros codelabs de Document AI.

Recomendamos que completes los siguientes codelabs antes de continuar.

Qué aprenderás

  • Configura el enriquecimiento para un procesador de analizador de facturas.
  • Cómo etiquetar datos de entrenamiento de Document AI con la herramienta de anotación
  • Cómo entrenar una nueva versión de un modelo
  • Cómo evaluar la precisión de la nueva versión del modelo

Requisitos

  • Un proyecto de Google Cloud
  • Un navegador, como Chrome o Firefox

2. Cómo prepararte

En este codelab, se supone que ya completaste los pasos de configuración de Document AI que se indican en el codelab de introducción.

Completa estos pasos antes de continuar:

3. Crea un procesador

Primero, debes crear un procesador de análisis de facturas para usarlo en este lab.

  1. En la consola, navega a la página Descripción general de Document AI.

docai-uptraining-codelab-01

  1. Haz clic en Crear procesador, desplázate hacia abajo hasta Especializado (o escribe "Analizador de facturas" en la barra de búsqueda) y selecciona Analizador de facturas.

docai-uptraining-codelab-02

  1. Asígnale el nombre codelab-invoice-uptraining (o un nombre que no vayas a olvidar) y selecciona la región más cercana de la lista.

docai-uptraining-codelab-03

  1. Haz clic en Crear (Create) para crear tu procesador. Deberías poder ver la página de resumen del procesador.

docai-uptraining-codelab-04

4. Crea un conjunto de datos

Para entrenar tu procesador, debes crear un conjunto de datos con datos de entrenamiento y pruebas para ayudar al procesador a identificar las entidades que quieres extraer.

Tendrás que crear un nuevo bucket en Cloud Storage para almacenar el conjunto de datos. Nota: Este no debería ser el mismo bucket en el que están almacenados tus documentos actualmente.

  1. Abre Cloud Shell y ejecuta los siguientes comandos para crear un bucket. O bien crea un nuevo bucket en la consola de Cloud. Recuerda el nombre de este bucket, ya que lo necesitarás más tarde.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb
-p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Dirígete a la pestaña Conjunto de datos y haz clic en Crear conjunto de datos

docai-uptraining-codelab-05

  1. Pega el nombre del bucket que creaste en el primer paso en el campo Ruta de destino (no incluyas gs://).

docai-uptraining-codelab-06

  1. Espera a que se cree el conjunto de datos. Luego, se te debería dirigir a la página de administración del conjunto de datos.

docai-uptraining-codelab-07

5. Importa un documento de prueba

Ahora, importemos un PDF de factura de muestra en nuestro conjunto de datos.

  1. Haz clic en Importar documentos (Import Documents).

docai-uptraining-codelab-08

  1. Tenemos un PDF de muestra para que lo uses en este lab. Copia y pega el siguiente vínculo en la casilla Ruta de acceso del origen. Deja “División de datos” como “Sin asignar” por ahora. Haz clic en Importar (Import).
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Espera a que se importe el documento. Es probable que tarde menos de 1 minuto.

docai-uptraining-codelab-10

  1. Cuando se complete la importación, deberías ver el documento en la IU de administración del conjunto de datos. Haz clic en él para ingresar a la consola de etiquetado.

docai-uptraining-codelab-11

6. Etiqueta el documento de prueba

A continuación, vas a identificar elementos de texto y etiquetas para las entidades que te gustaría extraer. Estas etiquetas se usarán para entrenar al modelo para que analice la estructura de este documento específico y también identifique los tipos correctos.

  1. Ahora deberías estar en la consola de etiquetado, que se verá de la siguiente manera.

docai-uptraining-codelab-12

  1. Haz clic en "Seleccionar texto" Herramienta y, luego, destaca el texto “McWilliam Piping International Piping Company” y asigna la etiqueta supplier_name. Puedes usar el filtro de texto para buscar nombres de etiquetas.

docai-uptraining-codelab-13

  1. Destaca el texto “14368 Pipeline Ave Chino, CA 91710”. y asigna la etiqueta supplier_address.

docai-uptraining-codelab-14

  1. Destaca el texto "10001". y asigna la etiqueta invoice_id.

docai-uptraining-codelab-15

  1. Destaca el texto "2020-01-02". y asigna la etiqueta due_date.

docai-uptraining-codelab-16

  1. Cambia al “Cuadro delimitador” herramienta. Destaca el texto "Acopladores de nudillos". y asigna la etiqueta line_item/description.

docai-uptraining-codelab-17

  1. Destacar el texto "9" y asigna la etiqueta line_item/quantity.

docai-uptraining-codelab-18

  1. Destaca el texto "74.43". y asigna la etiqueta line_item/unit_price.

docai-uptraining-codelab-19

  1. Destaca el texto "669.87" y asigna la etiqueta line_item/amount.

docai-uptraining-codelab-20

  1. Repite los 4 pasos anteriores para las siguientes dos líneas de pedido. Debería verse así cuando se complete el proceso.

docai-uptraining-codelab-21

  1. Destaca el texto "1,419.57". (junto a Subtotal) y asigna la etiqueta net_amount.

docai-uptraining-codelab-22

  1. Destaca el texto "113.57" (junto a Impuestos) y asigna la etiqueta total_tax_amount.

docai-uptraining-codelab-23

  1. Destaca el texto "1,533.14". (junto a Total) y asigna la etiqueta total_amount.

docai-uptraining-codelab-24

  1. Destaca uno de los "$". caracteres y asigna la etiqueta currency.

docai-uptraining-codelab-25

  1. El documento etiquetado debería verse así cuando se complete el proceso. Ten en cuenta que puedes editar estas etiquetas haciendo clic en el cuadro delimitador del documento o en el valor o nombre de la etiqueta en el menú lateral izquierdo. Haz clic en Guardar cuando termines de etiquetar.

docai-uptraining-codelab-26

  1. Esta es la lista completa de etiquetas y valores

Nombre de la etiqueta

Texto

supplier_name

McWilliam Piping International Piping Company

supplier_address

14368 Pipeline Ave Chino, CA 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Knuckle Couplers

line_item/quantity

9

line_item/unit_price

74.43

line_item/amount

669.87

line_item/description

PVC Pipe 12 Inch

line_item/quantity

7

line_item/unit_price

15.90

line_item/amount

111.30

line_item/description

Copper Pipe

line_item/quantity

7

line_item/unit_price

91.20

line_item/amount

638.40

net_amount

1,419.57

total_tax_amount

113.57

total_amount

1,533.14

currency

$

7. Asigna el documento al conjunto de entrenamiento

Deberías haber regresado a la consola de administración del conjunto de datos. Observa que la cantidad de documentos etiquetados y no etiquetados cambió, así como la cantidad de etiquetas activas.

docai-uptraining-codelab-27

  1. Debes asignar este documento al conjunto “Entrenamiento” o “Prueba”. Haz clic en el documento.

docai-uptraining-codelab-28

  1. Haz clic en Asignar al conjunto y, luego, en Entrenamiento.

docai-uptraining-codelab-29

  1. Observa que los números de la división de datos cambiaron.

docai-uptraining-codelab-30

8. Importa datos etiquetados previamente

El entrenamiento previo de Document AI requiere un mínimo de 10 documentos en los conjuntos de entrenamiento y de prueba, junto con 10 instancias de cada etiqueta en cada conjunto.

Se recomienda tener al menos 50 documentos en cada conjunto, con 50 instancias de cada etiqueta, para obtener el mejor rendimiento. Por lo general, con más datos de entrenamiento se consiguen resultados más precisos.

Llevará mucho tiempo etiquetar de forma manual 100 documentos, así que contamos con algunos documentos etiquetados previamente que puedes importar para este lab.

Puedes importar archivos de documentos etiquetados previamente en formato Document.json. Estos pueden ser resultados de llamar a un procesador y verificar la precisión mediante el modelo Con interacción humana (HITL).

  1. Haz clic en Importar documentos (Import Documents).

docai-uptraining-codelab-30

  1. Copia y pega la siguiente ruta de acceso de Cloud Storage y asígnala al conjunto de Entrenamiento.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Haz clic en Agregar otro bucket (Add Another Bucket). Luego, copia y pega la siguiente ruta de acceso de Cloud Storage y asígnala al conjunto de Prueba.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. Haz clic en Importar y espera a que los documentos se importen. Esto tardará más que la vez anterior porque hay más documentos que procesar. Debería tardar alrededor de 6 minutos según nuestras pruebas. Puedes salir de esta página y volver más tarde.

docai-uptraining-codelab-32

  1. Cuando el proceso se complete, deberías ver los documentos en la página de administración del conjunto de datos.

docai-uptraining-codelab-33

9. Edita etiquetas

Los documentos de muestra que usamos para este ejemplo no contienen todas las etiquetas admitidas por el Analizador de facturas. Tendremos que marcar las etiquetas que no estamos usando como inactivas antes del entrenamiento. También puedes seguir pasos similares para agregar una etiqueta personalizada antes del entrenamiento.

  1. Haz clic en Administrar etiquetas (Manage Labels) en la esquina inferior izquierda.

docai-uptraining-codelab-33

  1. Ahora deberías estar en la consola de Administración de etiquetas.

docai-uptraining-codelab-34

  1. Usa las casillas de verificación y los botones Inhabilitar/Habilitar para marcar SOLO las siguientes etiquetas como Habilitadas.
    • currency
    • due_date
    • invoice_id
    • line_item/amount
    • line_item/description
    • line_item/quantity
    • line_item/unit_price
    • net_amount
    • supplier_address
    • supplier_name
    • total_amount
    • total_tax_amount
  2. La consola debería verse así cuando se complete el proceso. Cuando termine, haz clic en Guardar (Save).

docai-uptraining-codelab-35

  1. Haz clic en la flecha hacia atrás para volver a la consola de administración del conjunto de datos. Observa que las etiquetas con 0 instancias se marcaron como inactivas.

docai-uptraining-codelab-36

10. Etiqueta de forma automática los documentos importados recientemente (opcional)

Cuando importas documentos sin etiquetar para un procesador con una versión de procesador implementada existente, puedes usar el etiquetado automático a fin de ahorrar tiempo.

  1. En la página Entrenar, haz clic en Importar documentos.
  2. Copia y pega la siguiente ruta de acceso . Este directorio contiene 5 PDF de facturas sin etiquetar. En la lista desplegable División de datos, selecciona Entrenamiento.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
  3. En la sección Etiquetado automático, selecciona la casilla de verificación Importar con etiquetado automático.
  4. Selecciona una versión existente del procesador para etiquetar los documentos.
  • Por ejemplo: pretrained-invoice-v1.3-2022-07-15
  1. Haz clic en Importar y espera a que los documentos se importen. Puedes salir de esta página y volver más tarde.
  • Cuando se complete el proceso, los documentos aparecerán en la página Entrenar en la sección Etiquetado automáticamente.
  1. No puedes usar documentos etiquetados automáticamente para entrenamiento ni pruebas sin marcarlos como etiquetados. Dirígete a la sección Etiquetado automáticamente para ver los documentos etiquetados automáticamente.
  2. Selecciona el primer documento para ingresar a la consola de etiquetado.
  3. Verifica las etiquetas, los cuadros delimitadores y los valores para asegurarte de que sean correctos. Etiqueta cualquier valor que se haya omitido.
  4. Cuando termines, selecciona Marcar como etiquetado.
  5. Repite la verificación de etiquetas en cada documento etiquetado automáticamente y, luego, vuelve a la página Entrenar para usar los datos para entrenamientos.

11. Entrenar el modelo

Ya estamos listos para comenzar a entrenar nuestro analizador de facturas.

  1. Haz clic en Entrenar una versión nueva (Train New Version).

docai-uptraining-codelab-36

  1. Asígnale a la versión un nombre que no vayas a olvidar, por ejemplo, codelab-uptraining-test-1. La versión base es la versión del modelo con la que se compilará esta nueva versión. Si usas un procesador nuevo, la única opción debería ser Google Pretrained Next con reentrenamiento.

docai-uptraining-codelab-37

  1. También puedes seleccionar Ver estadísticas de etiquetas (View Label Stats) para ver métricas de las etiquetas de tu conjunto de datos (opcional).

docai-uptraining-codelab-38

  1. Haz clic en Comenzar el entrenamiento para comenzar el proceso de enriquecimiento. Se te debería redireccionar a la página de administración del conjunto de datos. Podrás ver el estado del entrenamiento en el lado derecho. El entrenamiento tardará unas horas en completarse. Puedes salir de esta página y volver más tarde.

docai-uptraining-codelab-39

  1. Si haces clic en el nombre de la versión, se te dirigirá a la página Administra versiones (Manage Versions) en la que aparece el ID de la versión y el estado actual del trabajo de entrenamiento.

docai-uptraining-codelab-40

12. Prueba la nueva versión del modelo

Cuando el trabajo de entrenamiento esté completo (es posible que tarde alrededor de 1 hora), podrás probar la nueva versión del modelo y comenzar a usarla para realizar predicciones.

  1. Ve a la página Administra versiones (Manage Versions). En esta página podrás ver el estado actual y la puntuación F1.

docai-uptraining-codelab-41

  1. Debes implementar esta versión del modelo antes de poder usarla. Haz clic en los puntos verticales que están en el lado derecho y selecciona Implementar versión (Deploy Version).

docai-uptraining-codelab-42

  1. Selecciona Implementar (Deploy) en la ventana emergente y espera a que la versión se implemente. Este proceso tardará unos minutos en completarse. Cuando se implemente, también podrás establecer esta versión como Predeterminada.

docai-uptraining-codelab-43

  1. Cuando se termine de implementar, dirígete a la pestaña Evaluar (Evaluate). Luego, haz clic en el menú desplegable Versión y selecciona la versión que acabas de crear.

docai-uptraining-codelab-44

  1. En esta página, podrás ver métricas de evaluación que incluyen la puntuación F1, la precisión y la recuperación para el documento completo, así como etiquetas individuales. Puedes leer más sobre estas métricas en la Documentación de AutoML.
  2. Descarga el archivo PDF vinculado a continuación. Este es un documento de muestra que no se incluyó en el conjunto de Entrenamiento ni de Prueba.

  1. Haz clic en Subir documento de prueba (Upload Test Document) y selecciona el archivo PDF.

docai-uptraining-codelab-45

  1. Las entidades extraídas deberían verse así.

docai-uptraining-codelab-46

13. Conclusión

Felicitaciones. Usaste Document AI de forma correcta para enriquecer un analizador de facturas. Ahora puedes usar este procesador para analizar facturas, tal como lo harías con cualquier procesador especializado.

Puedes consultar el Codelab de procesadores especializados para recordar cómo controlar la respuesta del procesamiento.

Realiza una limpieza

Para evitar que se generen cargos en tu cuenta de Google Cloud por los recursos que usaste en este instructivo, sigue estos pasos:

  • En la consola de Cloud, ve a la página Administrar recursos.
  • En la lista de proyectos, selecciona tu proyecto y haz clic en Borrar.
  • En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.

Recursos

Licencia

Este trabajo cuenta con una licencia Atribución 2.0 Genérica de Creative Commons.