Cómo United Airlines construyó un canal de aprendizaje activo de reconocimiento óptico de caracteres eficiente en costes
United Airlines construyó un canal de reconocimiento óptico de caracteres eficiente en costes.
En esta publicación, discutimos cómo United Airlines, en colaboración con el Amazon Machine Learning Solutions Lab, construyó un marco de aprendizaje activo en AWS para automatizar el procesamiento de documentos de pasajeros.
“Con el fin de ofrecer la mejor experiencia de vuelo para nuestros pasajeros y hacer que nuestro proceso interno de negocios sea lo más eficiente posible, hemos desarrollado un flujo de trabajo automatizado basado en aprendizaje automático para el procesamiento de documentos en AWS. Para alimentar estas aplicaciones, así como aquellas que utilizan otras modalidades de datos como la visión por computadora, necesitamos un flujo de trabajo robusto y eficiente para anotar rápidamente los datos, entrenar y evaluar modelos y iterar rápidamente. En el transcurso de un par de meses, United se asoció con los Laboratorios de Soluciones de Aprendizaje Automático de Amazon para diseñar y desarrollar un flujo de trabajo de aprendizaje activo reutilizable y sin dependencia de casos de uso utilizando AWS CDK. Este flujo de trabajo será fundamental para nuestras aplicaciones de aprendizaje automático basadas en datos no estructurados, ya que nos permitirá minimizar el esfuerzo de etiquetado humano, entregar rápidamente un sólido rendimiento del modelo y adaptarnos a la deriva de datos”.
– Jon Nelson, Gerente Senior de Ciencia de Datos y Aprendizaje Automático en United Airlines.
Problema
El equipo de Tecnología Digital de United está compuesto por individuos de diversas partes del mundo que trabajan juntos con tecnología de vanguardia para impulsar los resultados comerciales y mantener altos niveles de satisfacción del cliente. Querían aprovechar técnicas de aprendizaje automático (ML) como la visión por computadora (CV) y el procesamiento de lenguaje natural (NLP) para automatizar los flujos de procesamiento de documentos. Como parte de esta estrategia, desarrollaron un modelo interno de análisis de pasaportes para verificar las identificaciones de los pasajeros. El proceso se basa en anotaciones manuales para entrenar los modelos de ML, lo cual es muy costoso.
United quería crear un marco de ML flexible, resiliente y rentable para automatizar la verificación de información de pasaportes, validar la identidad de los pasajeros y detectar posibles documentos fraudulentos. Contrataron al Laboratorio de Soluciones de ML para ayudar a lograr este objetivo, lo que permite a United seguir brindando un servicio de clase mundial ante el crecimiento futuro de pasajeros.
- El CEO de NVIDIA, Jensen Huang, será el protagonista de la Cumbre d...
- La línea NVIDIA Studio añade el Microsoft Surface Laptop Studio 2 c...
- Investigadores desbloquean la refrigeración termiónica basada en ch...
Descripción general de la solución
Nuestro equipo conjunto diseñó y desarrolló un marco de aprendizaje activo alimentado por el AWS Cloud Development Kit (AWS CDK), que configura y provisiona de forma programática todos los servicios de AWS necesarios. El marco utiliza Amazon SageMaker para procesar datos no etiquetados, crear etiquetas suaves, lanzar trabajos de etiquetado manual con Amazon SageMaker Ground Truth y entrenar un modelo de ML arbitrario con el conjunto de datos resultante. Utilizamos Amazon Textract para automatizar la extracción de información de campos específicos de documentos, como el nombre y el número de pasaporte. A nivel general, el enfoque se puede describir con el siguiente diagrama.
Datos
El conjunto de datos principal para este problema está compuesto por decenas de miles de imágenes de pasaportes de la página principal de las cuales se debe extraer información personal (nombre, fecha de nacimiento, número de pasaporte, etc.). El tamaño de la imagen, el diseño y la estructura varían según el país emisor del documento. Normalizamos estas imágenes en un conjunto de miniaturas uniformes, que constituyen la entrada funcional para el flujo de trabajo de aprendizaje activo (etiquetado automático e inferencia).
El segundo conjunto de datos contiene archivos de manifiesto en formato JSON line que relacionan imágenes de pasaportes sin procesar, imágenes en miniatura e información de etiquetas como etiquetas suaves y posiciones de cuadros delimitadores. Los archivos de manifiesto sirven como un conjunto de metadatos que almacena los resultados de varios servicios de AWS en un formato unificado y desacopla el flujo de trabajo de aprendizaje activo de los servicios posteriores utilizados por United. El siguiente diagrama ilustra esta arquitectura.
El siguiente código es un ejemplo de archivo de manifiesto:
{
"raw-ref": "s3://bucket/passport-0.jpg",
"textract-ref": "s3://bucket/textract/passport-0.jpg",
"source-ref": "s3://bucket/clean-images/passport-0.jpg",
"page-num": 1,
"label": {
"image_size": [...],
"annotations": [
{
"class_id": 0,
"top": 1856,
"left": 1476,
"height": 67,
"width": 329
},
{"class_id": 1 ...},
{"class_id": 2 ...},
{"class_id": 3 ...},
{"class_id": 4 ...},
{"class_id": 5 ...},
{"class_id": 6 ...},
{"class_id": 7 ...},
{"class_id": 8 ...},
{"class_id": 9 ...},
{"class_id": 10 ...},
]
},
"label-metadata": {
"objects": [...],
"class-map ": {"0": "Número de pasaporte" ...},
"type": "groundtruth/object-detection",
"human-annotated": "yes",
"creation-date": "2022-09-19T00:58:55.729305",
"job-name": "labeling-job/passports-20220918-195035"
}
}
Componentes de la solución
La solución incluye dos componentes principales:
- Un marco de aprendizaje automático (ML), que se encarga de entrenar el modelo
- Un pipeline de etiquetado automático, que se encarga de mejorar la precisión del modelo entrenado de manera rentable
El marco de ML se encarga de entrenar el modelo de ML e implementarlo como un punto de conexión de SageMaker. El pipeline de etiquetado automático se enfoca en automatizar los trabajos de SageMaker Ground Truth y muestrear imágenes para etiquetado a través de esos trabajos.
Los dos componentes están desacoplados entre sí y solo interactúan a través del conjunto de imágenes etiquetadas producidas por el pipeline de etiquetado automático. Es decir, el pipeline de etiquetado crea etiquetas que luego son utilizadas por el marco de ML para entrenar el modelo de ML.
Marco de ML
El equipo del ML Solutions Lab construyó el marco de ML utilizando la implementación de Hugging Face del modelo LayoutLMV2 de última generación (LayoutLMv2: Preparación multimodal para el entendimiento de documentos visualmente ricos, Yang Xu, et al.). El entrenamiento se basó en las salidas de Amazon Textract, que sirvieron como preprocesador y produjeron cuadros delimitadores alrededor del texto de interés. El marco utiliza entrenamiento distribuido y se ejecuta en un contenedor Docker personalizado basado en la imagen precompilada de Hugging Face de SageMaker con dependencias adicionales (dependencias que faltan en la imagen Docker precompilada de SageMaker pero que son necesarias para Hugging Face LayoutLMv2).
El modelo de ML se entrenó para clasificar los campos de documentos en las siguientes 11 clases:
"0": "Número de pasaporte",
"1": "Apellido",
"2": "Nombres",
"3": "Nacionalidad",
"4": "Fecha de nacimiento",
"5": "Lugar de nacimiento",
"6": "Sexo",
"7": "Fecha de emisión",
"8": "Autoridad",
"9": "Fecha de vencimiento",
"10": "Endosos"
Los parámetros de la imagen precompilada son:
{
"framework": "huggingface",
"py_version": "py38",
"version": "4.17",
"base_framework_version": "pytorch1.10"
}
El Dockerfile de la imagen personalizada es el siguiente: (BASE_IMAGE
se refiere a la imagen base precedente):
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
RUN pip install "amazon-textract-response-parser>=0.1,<0.2" "Pillow>=8,<9" \
&& pip install git+https://github.com/facebookresearch/detectron2.git
RUN pip install pytesseract "datasets==2.2.1" "torchvision>=0.11.3,<0.12"
RUN pip install setuptools==59.5.0
El pipeline de entrenamiento se puede resumir en el siguiente diagrama.
Primero, redimensionamos y normalizamos un lote de imágenes en miniaturas. Al mismo tiempo, creamos un archivo de manifiesto de línea JSON con una línea por imagen con información sobre las imágenes en bruto y las miniaturas del lote. A continuación, utilizamos Amazon Textract para extraer cajas delimitadoras de texto en las imágenes en miniatura. Toda la información producida por Amazon Textract se registra en el mismo archivo de manifiesto. Finalmente, utilizamos las imágenes en miniatura y los datos del manifiesto para entrenar un modelo, que luego se implementa como un punto de conexión de SageMaker.
Pipeline de etiquetado automático
Desarrollamos un pipeline de etiquetado automático diseñado para realizar las siguientes funciones:
- Ejecutar inferencia en lotes periódicos en un conjunto de datos no etiquetado.
- Filtrar los resultados en función de una estrategia de muestreo de incertidumbre específica.
- Iniciar un trabajo de SageMaker Ground Truth para etiquetar las imágenes muestreadas utilizando una fuerza laboral humana.
- Agregar las imágenes recién etiquetadas al conjunto de datos de entrenamiento para el posterior refinamiento del modelo.
La estrategia de muestreo de incertidumbre reduce el número de imágenes enviadas al trabajo de etiquetado humano seleccionando imágenes que probablemente contribuirían más a mejorar la precisión del modelo. Debido a que el etiquetado humano es una tarea costosa, dicho muestreo es una técnica importante de reducción de costos. Soportamos cuatro estrategias de muestreo, que se pueden seleccionar como un parámetro almacenado en Parameter Store, una capacidad de AWS Systems Manager:
- Menor confianza
- Margen de confianza
- Razón de confianza
- Entropía
Todo el flujo de trabajo de etiquetado automático se implementó con AWS Step Functions, que orquesta el trabajo de procesamiento (llamado el punto de conexión elástico para inferencia en lotes), el muestreo de incertidumbre y SageMaker Ground Truth. El siguiente diagrama ilustra el flujo de trabajo de Step Functions.
Eficiencia de costos
El factor principal que influye en los costos de etiquetado es la anotación manual. Antes de implementar esta solución, el equipo de United tenía que utilizar un enfoque basado en reglas, lo cual requería una costosa anotación manual de datos y técnicas de OCR de análisis sintáctico de terceros. Con nuestra solución, United redujo su carga de trabajo de etiquetado manual al etiquetar manualmente solo las imágenes que resultarían en las mayores mejoras del modelo. Debido a que el marco es agnóstico del modelo, se puede utilizar en otros escenarios similares, extendiendo su valor más allá de las imágenes de pasaporte a un conjunto mucho más amplio de documentos.
Realizamos un análisis de costos basado en las siguientes suposiciones:
- Cada lote contiene 1,000 imágenes
- El entrenamiento se realiza utilizando una instancia mlg4dn.16xlarge
- La inferencia se realiza en una instancia mlg4dn.xlarge
- El entrenamiento se realiza después de cada lote con un 10% de etiquetas anotadas
- Cada ronda de entrenamiento resulta en las siguientes mejoras de precisión:
- 50% después del primer lote
- 25% después del segundo lote
- 10% después del tercer lote
Nuestro análisis muestra que el costo de entrenamiento se mantiene constante y alto sin el aprendizaje activo. La incorporación del aprendizaje activo resulta en costos en disminución exponencial con cada nuevo lote de datos.
Reducimos aún más los costos al implementar el punto de enlace de inferencia como un punto de enlace elástico mediante la adición de una política de escalado automático. Los recursos del punto de enlace pueden escalar hacia arriba o hacia abajo entre cero y un número máximo de instancias configurado.
Arquitectura final de la solución
Nuestro enfoque fue ayudar al equipo de United a cumplir con sus requisitos funcionales mientras construían una aplicación en la nube escalable y flexible. El equipo de ML Solutions Lab desarrolló la solución completa lista para producción con la ayuda de AWS CDK, automatizando la administración y aprovisionamiento de todos los recursos y servicios en la nube. La aplicación en la nube final se implementó como una única pila de AWS CloudFormation con cuatro pilas anidadas, cada una representando un componente funcional único.
Casi todas las características del flujo de trabajo, incluyendo las imágenes de Docker, la política de escalado automático del punto de enlace y más, se parametrizaron a través de Parameter Store. Con esta flexibilidad, se podría ejecutar la misma instancia del flujo de trabajo con una amplia gama de configuraciones, lo que añade la capacidad de experimentar.
Conclusión
En esta publicación, discutimos cómo United Airlines, en colaboración con el ML Solutions Lab, construyó un marco de aprendizaje activo en AWS para automatizar el procesamiento de documentos de pasajeros. La solución tuvo un gran impacto en dos aspectos importantes de los objetivos de automatización de United:
- Reutilización: Debido al diseño modular y la implementación agnóstica del modelo, United Airlines puede reutilizar esta solución en casi cualquier otro caso de uso de etiquetado automático de ML
- Reducción de costos recurrentes: Al combinar inteligentemente los procesos de etiquetado manual y automático, el equipo de United puede reducir los costos promedio de etiquetado y reemplazar los costosos servicios de etiquetado de terceros
Si está interesado en implementar una solución similar o desea obtener más información sobre el ML Solutions Lab, comuníquese con su gerente de cuenta o visítenos en Amazon Machine Learning Solutions Lab.