Imagen por Zinkevych_D de EnvantoEn 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 (Transformador de diseño independiente del idioma) , 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 la arquitectura de este modelo novedoso y mostraremos cómo ajustarlo 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. Al igual que en mis artículos anteriores sobre cómo ajustar el modelo de diseño LM, usaremos el mismo conjunto de datos para ajustar el modelo LILT. Los datos se obtuvieron etiquetando manualmente 220 facturas utilizando la herramienta de anotación de texto UBIAI. Puede encontrar más detalles sobre el proceso de etiquetado 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 entrenando el modelo layoutLM, aquí está el cuaderno: Descargamos el modelo LILT de Huggingface: from transformers import LiltForTokenClassification
# id del modelo del hub huggingface
model_id = “SCUT-DLVCLab/lilt-roberta-en-base”# modelo de carga con el número correcto de etiquetas y mapeo
modelo = LiltForTokenClassification.from_pretrained(
model_id, num_labels=len(etiqueta_lista), label2id=label2id, id2label=id2label
)Para este modelo de entrenamiento, usamos los siguientes hiperparámetros:NUM_TRAIN_EPOCHS = 120
POR_DEVICE_TREN_BATCH_SIZE = 6
POR_DEVICE_EVAL_BATCH_SIZE = 6
LEARNING_RATE = 4e-5 Para entrenar el modelo, simplemente ejecute el comando trainer.train():Imagen del autor: Model Training In Progress. En GPU, el entrenamiento dura aproximadamente 1 hora. Después del entrenamiento, evaluamos el modelo ejecutando trainer.evaluate():{
‘eval_precision’: 0.6335952848722987,
‘eval_recall’: 0.7413793103448276,
‘eval_f1’: 0.6832627118644069,
}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 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, realizamos inferencias en una nueva factura. Hacemos asegúrese 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 script de inferencia a continuación: A continuación se muestra el resultado:Imagen del autor: salida de LILT en factura 1El 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 2Imagen del autor: salida de 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 eficaz para las 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 sencilla su propio conjunto de datos de entrenamiento, consulte la función de anotación OCR de UBIAI de forma gratuita. Síganos en Twitter @UBIAI5 o suscríbete aquí!
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…