Cómo entrenar el modelo LILT en facturas y ejecutar inferencias | de Walid Amamou | ene, 2023

Imagen por Zinkevych_D de Envanto

En el ámbito de la comprensión de documentos, los modelos de aprendizaje profundo han jugado un papel importante. Estos modelos pueden interpretar con precisión el contenido y la estructura de los documentos, lo que los convierte en herramientas valiosas para tareas como el procesamiento de facturas, el análisis de currículums y el análisis de contratos. Otro beneficio importante de los modelos de aprendizaje profundo para la comprensión de documentos es su capacidad de aprender y adaptarse con el tiempo. A medida que se encuentran nuevos tipos de documentos, estos modelos pueden seguir aprendiendo y mejorando su rendimiento, haciéndolos altamente escalables y eficientes para tareas como la clasificación de documentos y la extracción de información.

Uno de estos modelos es el modelo LILT (Language-Independent Layout Transformer), un modelo de aprendizaje profundo desarrollado para la tarea de análisis de diseño de documentos. A diferencia de su predecesor, layoutLM, LILT se diseñó originalmente para ser independiente del idioma, lo que significa que puede analizar documentos en cualquier idioma mientras logra un rendimiento superior en comparación con otros modelos existentes en muchas aplicaciones de tareas posteriores. Además, el modelo tiene la licencia MIT, lo que significa que puede usarse comercialmente a diferencia de los últimos layoutLM v3 y layoutXLM. Por lo tanto, vale la pena crear un tutorial sobre cómo ajustar este modelo, ya que tiene el potencial de ser ampliamente utilizado para una amplia gama de tareas de comprensión de documentos.

En este tutorial, discutiremos esta arquitectura modelo novedosa y mostraremos cómo ajustarla en la extracción de facturas. Luego lo usaremos para ejecutar la inferencia en un nuevo conjunto de facturas.

Una de las ventajas clave de usar el modelo LILT es su capacidad para manejar la comprensión de documentos en varios idiomas con un rendimiento de última generación. Los autores lograron esto separando el texto y el diseño incrustado en su arquitectura de transformador correspondiente y utilizando un mecanismo de complementación de atención bidireccional (BiACM) para permitir la interacción de modalidad cruzada entre los dos tipos de datos. El texto codificado y las funciones de diseño se concatenan y se agregan encabezados adicionales, lo que permite que el modelo se use para un entrenamiento previo autosupervisado o un ajuste fino posterior. Este enfoque es diferente del modelo layoutXLM, que implica recopilar y preprocesar un gran conjunto de datos de documentos multilingües.

Arquitectura modelo LILT. Fuente

La novedad clave en este modelo es el uso de BiACM para capturar la interacción cruzada entre el texto y las características de diseño durante el proceso de codificación. La simple concatenación de la salida del modelo de texto y diseño da como resultado un peor rendimiento, lo que sugiere que la interacción cruzada durante la canalización de codificación es clave para el éxito de este modelo. Para obtener detalles más detallados, lea el artículo original.

Similar a mis artículos anteriores sobre cómo afinar el modelo layoutLM, usaremos el mismo conjunto de datos para ajustar el modelo LILT. Los datos se obtuvieron etiquetando manualmente 220 facturas utilizando UBIAI herramienta de anotación de texto. Más detalles sobre el proceso de etiquetado se pueden encontrar en este Enlace.

Para entrenar el modelo, primero procesamos previamente la salida de datos de UBIAI para prepararlo para el entrenamiento del modelo. Estos pasos son los mismos que en el cuaderno anterior que entrena el modelo layoutLM, aquí está el cuaderno:

Descargamos el modelo LILT de Huggingface:

from transformers import LiltForTokenClassification
# huggingface hub model id
model_id = "SCUT-DLVCLab/lilt-roberta-en-base"

# load model with correct number of labels and mapping
model = LiltForTokenClassification.from_pretrained(
model_id, num_labels=len(label_list), label2id=label2id, id2label=id2label
)

Para el entrenamiento de este modelo, usamos los siguientes hiperparámetros:

NUM_TRAIN_EPOCHS = 120
PER_DEVICE_TRAIN_BATCH_SIZE = 6
PER_DEVICE_EVAL_BATCH_SIZE = 6
LEARNING_RATE = 4e-5

Para entrenar el modelo, simplemente ejecute el comando trainer.train():

Imagen de autor: Modelo de formación en curso.

En GPU, el entrenamiento dura aproximadamente 1 hora. Después del entrenamiento, evaluamos el modelo ejecutando trainer.evaluate():

Obtenemos una puntuación de precisión, recuperación y F-1 de 0,63, 0,74 y 0,68 respectivamente. La puntuación F-1 de la evaluación del modelo LILT de 0,68 indica que el modelo se está desempeñando bien en términos de su capacidad para clasificar y predecir con precisión los resultados con una precisión de moderada a buena. Sin embargo, vale la pena señalar que siempre hay espacio para mejorar, y es beneficioso continuar etiquetando más datos para aumentar aún más su rendimiento. En general, la puntuación F-1 de la evaluación del modelo LILT de 0,68 es un resultado positivo y sugiere que el modelo se está desempeñando bien en su tarea prevista.

Para evaluar el rendimiento del modelo en datos no vistos, ejecutamos la inferencia en una nueva factura.

Nos aseguramos de guardar el modelo para que podamos usarlo para la inferencia más adelante usando este comando:

 torch.save(model,'/content/drive/MyDrive/LILT_Model/lilt.pth')

Para probar el modelo en una nueva factura, ejecutamos el siguiente script de inferencia:

A continuación se muestra el resultado:

Imagen del autor: salida LILT en la factura 1

El modelo LILT identificó correctamente una amplia gama de entidades, incluidos nombres de vendedores, números de factura y montos totales. Probemos un par de facturas más:

Imagen del autor: salida LILT en la factura 2
Imagen del autor: salida LILT en la factura 3

Como podemos ver, el modelo LILT pudo manejar una variedad de formatos diferentes con diferentes contextos con una precisión relativamente buena, aunque cometió pocos errores. En general, el modelo LILT funcionó bien y sus predicciones fueron similares a las producidas por layoutlm v3, lo que destaca su eficacia para las tareas de comprensión de documentos.

En conclusión, el modelo LILT ha demostrado ser efectivo para tareas de comprensión de documentos. A diferencia del modelo layoutLM v3, el modelo LILT tiene licencia del MIT, lo que permite una amplia adopción y uso comercial por parte de investigadores y desarrolladores, lo que lo convierte en una opción deseable para muchos proyectos. Como siguiente paso, podemos mejorar el rendimiento del modelo etiquetando y mejorando el conjunto de datos de entrenamiento.

Si desea crear de manera eficiente y fácil su propio conjunto de datos de entrenamiento, consulte Función de anotación OCR de UBIAI gratis.

Síganos en Twitter @UBIAI5 o Suscríbete aquí!



Fuente del artículo

Deja un comentario