Logotipo de Zephyrnet

Cómo Booking.com modernizó su marco de experimentación de ML con Amazon SageMaker | Servicios web de Amazon

Fecha:

Esta publicación está coescrita con Kostia Kofman y Jenny Tokar de Booking.com.

Como líder mundial en la industria de viajes en línea, Booking.com Siempre busca formas innovadoras de mejorar sus servicios y brindar a los clientes experiencias personalizadas y fluidas. El equipo de Ranking de Booking.com desempeña un papel fundamental a la hora de garantizar que los algoritmos de búsqueda y recomendación estén optimizados para ofrecer los mejores resultados a sus usuarios.

Al compartir recursos internos con otros equipos internos, los científicos de aprendizaje automático (ML) del equipo de Ranking a menudo encontraron largos tiempos de espera para acceder a recursos para la capacitación y experimentación de modelos, lo que desafió su capacidad para experimentar e innovar rápidamente. Al reconocer la necesidad de una infraestructura de aprendizaje automático modernizada, el equipo de Ranking se embarcó en un viaje para utilizar el poder de Amazon SageMaker para construir, entrenar e implementar modelos de ML a escala.

Booking.com colaboró ​​con Servicios profesionales de AWS construir una solución para acelerar el tiempo de comercialización de modelos de ML mejorados a través de las siguientes mejoras:

  • Reducción de los tiempos de espera de recursos para formación y experimentación.
  • Integración de capacidades esenciales de ML, como el ajuste de hiperparámetros
  • Un ciclo de desarrollo reducido para modelos ML

La reducción de los tiempos de espera significaría que el equipo podría iterar y experimentar rápidamente con modelos, obteniendo información a un ritmo mucho más rápido. El uso de instancias disponibles bajo demanda de SageMaker permitió reducir diez veces el tiempo de espera. Faltaban en las instalaciones capacidades esenciales de aprendizaje automático, como el ajuste de hiperparámetros y la explicabilidad del modelo. El viaje de modernización del equipo introdujo estas características a través de Ajuste automático de modelos de Amazon SageMaker y Amazon SageMaker aclarar. Finalmente, la aspiración del equipo era recibir retroalimentación inmediata sobre cada cambio realizado en el código, reduciendo el ciclo de retroalimentación de minutos a un instante y, por lo tanto, reduciendo el ciclo de desarrollo de los modelos de ML.

En esta publicación, profundizamos en el viaje emprendido por el equipo de Ranking de Booking.com mientras aprovechaban las capacidades de SageMaker para modernizar su marco de experimentación de ML. Al hacerlo, no solo superaron los desafíos existentes, sino que también mejoraron su experiencia de búsqueda, lo que en última instancia benefició a millones de viajeros en todo el mundo.

Enfoque de la modernización

El equipo de Ranking está formado por varios científicos de ML, cada uno de los cuales necesita desarrollar y probar su propio modelo fuera de línea. Cuando un modelo se considera exitoso según la evaluación fuera de línea, se puede pasar a pruebas A/B de producción. Si muestra una mejora en línea, se puede implementar para todos los usuarios.

El objetivo de este proyecto era crear un entorno fácil de usar para que los científicos de ML ejecuten fácilmente aplicaciones personalizables. Canalizaciones de creación de modelos de Amazon SageMaker para probar sus hipótesis sin la necesidad de codificar módulos largos y complicados.

Uno de los diversos desafíos enfrentados fue adaptar la solución de canalización local existente para su uso en AWS. La solución involucró dos componentes clave:

  • Modificar y ampliar el código existente – La primera parte de nuestra solución implicó la modificación y extensión de nuestro código existente para hacerlo compatible con la infraestructura de AWS. Esto fue crucial para garantizar una transición fluida del procesamiento local al procesamiento basado en la nube.
  • Desarrollo de paquetes de clientes. – Se desarrolló un paquete de cliente que actúa como contenedor entre las API de SageMaker y el código previamente existente. Este paquete combina los dos, lo que permite a los científicos de ML configurar e implementar fácilmente canalizaciones de ML sin codificación.

Configuración de canalización de SageMaker

La personalización es clave para el proceso de construcción de modelos y se logró a través de config.ini, un extenso archivo de configuración. Este archivo sirve como centro de control para todas las entradas y comportamientos de la tubería.

Configuraciones disponibles en el interior config.ini incluyen:

  • Detalles del oleoducto – El profesional puede definir el nombre de la canalización, especificar qué pasos deben ejecutarse, determinar dónde se deben almacenar las salidas. Servicio de almacenamiento simple de Amazon (Amazon S3) y seleccione qué conjuntos de datos usar
  • Detalles de la cuenta de AWS – Puede decidir en qué región se debe ejecutar la canalización y qué función se debe utilizar.
  • Configuración específica de pasos – Para cada paso del proceso, puede especificar detalles como el número y el tipo de instancias a utilizar, junto con los parámetros relevantes.

El siguiente código muestra un archivo de configuración de ejemplo:

[BUILD]
pipeline_name = ranking-pipeline
steps = DATA_TRANFORM, TRAIN, PREDICT, EVALUATE, EXPLAIN, REGISTER, UPLOAD
train_data_s3_path = s3://...
...
[AWS_ACCOUNT]
region = eu-central-1
...
[DATA_TRANSFORM_PARAMS]
input_data_s3_path = s3://...
compression_type = GZIP
....
[TRAIN_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
epochs = 1
enable_sagemaker_debugger = True
...
[PREDICT_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
...
[EVALUATE_PARAMS]
instance_type = ml.m5.8xlarge
batch_size = 2048
...
[EXPLAIN_PARAMS]
check_job_instance_type = ml.c5.xlarge
generate_baseline_with_clarify = False
....

config.ini es un archivo controlado por versión administrado por Git, que representa la configuración mínima requerida para una ejecución exitosa del proceso de capacitación. Durante el desarrollo, se pueden utilizar archivos de configuración locales que no estén controlados por versiones. Estos archivos de configuración locales solo necesitan contener configuraciones relevantes para una ejecución específica, lo que introduce flexibilidad sin complejidad. El cliente de creación de canalizaciones está diseñado para manejar múltiples archivos de configuración, y el último tiene prioridad sobre la configuración anterior.

Pasos de canalización de SageMaker

El pipeline se divide en los siguientes pasos:

  • Preparación de datos de entrenamiento y prueba. – Los terabytes de datos sin procesar se copian en un depósito S3 y se procesan utilizando Pegamento AWS trabajos para el procesamiento de Spark, lo que da como resultado datos estructurados y formateados para compatibilidad.
  • Entrenar – El paso de capacitación utiliza el estimador TensorFlow para los trabajos de capacitación de SageMaker. El entrenamiento se produce de forma distribuida mediante Horovod y el artefacto del modelo resultante se almacena en Amazon S3. Para el ajuste de hiperparámetros, se puede iniciar un trabajo de optimización de hiperparámetros (HPO), seleccionando el mejor modelo en función de la métrica objetiva.
  • Predicción – En este paso, un trabajo de procesamiento de SageMaker utiliza el artefacto del modelo almacenado para realizar predicciones. Este proceso se ejecuta en paralelo en las máquinas disponibles y los resultados de la predicción se almacenan en Amazon S3.
  • Evaluar – Un trabajo de procesamiento de PySpark evalúa el modelo utilizando un script Spark personalizado. Luego, el informe de evaluación se almacena en Amazon S3.
  • Estado – Después de la evaluación, se toma una decisión sobre la calidad del modelo. Esta decisión se basa en una métrica de condición definida en el archivo de configuración. Si la evaluación es positiva, el modelo se registra como aprobado; de lo contrario, se registra como rechazado. En ambos casos, el informe de evaluación y explicabilidad, en caso de generarse, se inscriben en el registro del modelo.
  • Modelo de paquete para inferencia – Al utilizar un trabajo de procesamiento, si los resultados de la evaluación son positivos, el modelo se empaqueta, se almacena en Amazon S3 y se prepara para cargarlo en el portal interno de ML.
  • Explicar – SageMaker Clarify genera un informe de explicabilidad.

Se utilizan dos repositorios distintos. El primer repositorio contiene la definición y el código de compilación para la canalización de ML, y el segundo repositorio contiene el código que se ejecuta dentro de cada paso, como el procesamiento, el entrenamiento, la predicción y la evaluación. Este enfoque de repositorio dual permite una mayor modularidad y permite a los equipos de ciencia e ingeniería iterar de forma independiente en el código de ML y los componentes de la canalización de ML.

El siguiente diagrama ilustra el flujo de trabajo de la solución.

Sintonización automática de modelos

La formación de modelos de aprendizaje automático requiere un enfoque iterativo de múltiples experimentos de formación para crear un modelo final sólido y eficaz para uso empresarial. Los científicos de ML deben seleccionar el tipo de modelo apropiado, crear los conjuntos de datos de entrada correctos y ajustar el conjunto de hiperparámetros que controlan el proceso de aprendizaje del modelo durante el entrenamiento.

La selección de valores apropiados para los hiperparámetros para el proceso de entrenamiento del modelo puede influir significativamente en el rendimiento final del modelo. Sin embargo, no existe una forma única o definida de determinar qué valores son apropiados para un caso de uso específico. La mayoría de las veces, los científicos de ML necesitarán ejecutar múltiples trabajos de entrenamiento con conjuntos de hiperparámetros ligeramente diferentes, observar las métricas de entrenamiento del modelo y luego intentar seleccionar valores más prometedores para la siguiente iteración. Este proceso de ajuste del rendimiento del modelo también se conoce como optimización de hiperparámetros (HPO) y, en ocasiones, puede requerir cientos de experimentos.

El equipo de Ranking solía realizar HPO manualmente en su entorno local porque solo podían lanzar una cantidad muy limitada de trabajos de capacitación en paralelo. Por lo tanto, tuvieron que ejecutar HPO secuencialmente, probar y seleccionar diferentes combinaciones de valores de hiperparámetros manualmente y monitorear periódicamente el progreso. Esto prolongó el proceso de desarrollo y ajuste del modelo y limitó la cantidad total de experimentos de HPO que podrían ejecutarse en un período de tiempo factible.

Con el cambio a AWS, el equipo de Ranking pudo utilizar la función de ajuste automático de modelos (AMT) de SageMaker. AMT permite a los científicos de Ranking ML lanzar automáticamente cientos de trabajos de entrenamiento dentro de rangos de hiperparámetros de interés para encontrar la versión con mejor rendimiento del modelo final según la métrica elegida. El equipo de Ranking ahora puede elegir entre cuatro estrategias de ajuste automático diferentes para su selección de hiperparámetros:

  • búsqueda de cuadrícula – AMT esperará que todos los hiperparámetros sean valores categóricos y lanzará trabajos de capacitación para cada combinación categórica distinta, explorando todo el espacio de hiperparámetros.
  • Búsqueda aleatoria – AMT seleccionará aleatoriamente combinaciones de valores de hiperparámetros dentro de los rangos proporcionados. Debido a que no existe dependencia entre los diferentes trabajos de entrenamiento y la selección de valores de parámetros, se pueden iniciar múltiples trabajos de entrenamiento paralelos con este método, lo que acelera el proceso de selección de parámetros óptimo.
  • Optimización bayesiana – AMT utiliza la implementación de optimización bayesiana para adivinar el mejor conjunto de valores de hiperparámetros, tratándolo como un problema de regresión. Considerará combinaciones de hiperparámetros previamente probadas y su impacto en los trabajos de entrenamiento del modelo con la nueva selección de parámetros, optimizando para una selección de parámetros más inteligente con menos experimentos, pero también lanzará trabajos de entrenamiento solo de forma secuencial para poder aprender siempre de entrenamientos anteriores.
  • Hiperbanda – AMT utilizará los resultados intermedios y finales de los trabajos de capacitación que está ejecutando para reasignar dinámicamente recursos hacia trabajos de capacitación con configuraciones de hiperparámetros que muestran resultados más prometedores y al mismo tiempo detiene automáticamente aquellos que tienen un rendimiento inferior.

AMT en SageMaker permitió al equipo de Ranking reducir el tiempo dedicado al proceso de ajuste de hiperparámetros para el desarrollo de su modelo al permitirles por primera vez ejecutar múltiples experimentos paralelos, utilizar estrategias de ajuste automático y realizar ejecuciones de trabajos de entrenamiento de dos dígitos en cuestión de días. algo que no era factible en las instalaciones.

Explicabilidad del modelo con SageMaker Clarify

La explicabilidad del modelo permite a los profesionales de ML comprender la naturaleza y el comportamiento de sus modelos de ML al proporcionar información valiosa para la ingeniería de características y las decisiones de selección, lo que a su vez mejora la calidad de las predicciones del modelo. El equipo de Ranking quería evaluar sus ideas de explicabilidad de dos maneras: comprender cómo las entradas de características afectan las salidas del modelo en todo su conjunto de datos (interpretabilidad global) y también ser capaz de descubrir la influencia de las características de entrada para una predicción de modelo específica en un punto de datos de interés ( interpretabilidad local). Con estos datos, los científicos de Ranking ML pueden tomar decisiones informadas sobre cómo mejorar aún más el rendimiento de su modelo y tener en cuenta los desafiantes resultados de predicción que el modelo proporcionaría ocasionalmente.

SageMaker Clarify le permite generar informes de explicabilidad del modelo utilizando Explicaciones sobre los aditivos Shapley (SHAP) al entrenar sus modelos en SageMaker, lo que admite la interpretabilidad del modelo tanto global como local. Además de los informes de explicabilidad del modelo, SageMaker Clarify admite la ejecución de análisis para métricas de sesgo previas al entrenamiento, métricas de sesgo posteriores al entrenamiento y gráficos de dependencia parcial. El trabajo se ejecutará como un trabajo de procesamiento de SageMaker dentro de la cuenta de AWS y se integra directamente con las canalizaciones de SageMaker.

El informe de interpretabilidad global se generará automáticamente en la salida del trabajo y se mostrará en la Estudio Amazon SageMaker ambiente como parte del experimento de entrenamiento. Si luego este modelo se registra en el registro de modelos de SageMaker, el informe se vinculará adicionalmente al artefacto del modelo. Usando ambas opciones, el equipo de Ranking pudo rastrear fácilmente diferentes versiones de modelos y sus cambios de comportamiento.

Para explorar el impacto de las características de entrada en una sola predicción (valores de interpretabilidad local), el equipo de Ranking habilitó el parámetro save_local_shap_values en los trabajos de SageMaker Clarify y pude cargarlos desde el depósito de S3 para realizar análisis adicionales en los cuadernos de Jupyter en SageMaker Studio.

Las imágenes anteriores muestran un ejemplo de cómo se vería la explicabilidad de un modelo para un modelo de ML arbitrario.

Optimización de la formación

El auge del aprendizaje profundo (DL) ha llevado a que el ML dependa cada vez más de la potencia computacional y de grandes cantidades de datos. Los profesionales del aprendizaje automático suelen enfrentarse al obstáculo del uso eficiente de los recursos al entrenar estos modelos complejos. Cuando se ejecuta capacitación en grandes clústeres de computación, surgen varios desafíos para optimizar la utilización de recursos, incluidos problemas como cuellos de botella de E/S, retrasos en el lanzamiento del kernel, limitaciones de memoria y recursos infrautilizados. Si la configuración del trabajo de capacitación no está ajustada para lograr eficiencia, estos obstáculos pueden resultar en un uso subóptimo del hardware, duraciones prolongadas de la capacitación o incluso ejecuciones de capacitación incompletas. Estos factores aumentan los costos del proyecto y retrasan los plazos.

La creación de perfiles del uso de CPU y GPU ayuda a comprender estas ineficiencias, determinar el consumo de recursos de hardware (tiempo y memoria) de las diversas operaciones de TensorFlow en su modelo, resolver cuellos de botella en el rendimiento y, en última instancia, hacer que el modelo se ejecute más rápido.

El equipo de clasificación utilizó la función de creación de perfiles de marco de Depurador de Amazon SageMaker (ahora en desuso a favor de Perfilador de Amazon SageMaker) para optimizar estos trabajos de formación. Esto le permite realizar un seguimiento de todas las actividades en las CPU y GPU, como el uso de CPU y GPU, las ejecuciones del kernel en las GPU, los lanzamientos del kernel en las CPU, las operaciones de sincronización, las operaciones de memoria en las GPU, las latencias entre los lanzamientos del kernel y las ejecuciones correspondientes, y la transferencia de datos entre las CPU. y GPU.

El equipo de clasificación también utilizó el Perfilador TensorFlow característica de TensorTablero, lo que ayudó aún más a perfilar la capacitación del modelo TensorFlow. SageMaker es ahora más integrado con TensorBoard y trae las herramientas de visualización de TensorBoard a SageMaker, integradas con la capacitación y los dominios de SageMaker. TensorBoard le permite realizar tareas de depuración de modelos utilizando los complementos de visualización de TensorBoard.

Con la ayuda de estas dos herramientas, el equipo de Ranking optimizó su modelo TensorFlow y pudo identificar cuellos de botella y reducir el tiempo promedio del paso de entrenamiento de 350 milisegundos a 140 milisegundos en la CPU y de 170 milisegundos a 70 milisegundos en la GPU, aceleraciones del 60 %. y 59%, respectivamente.

resultados comerciales

Los esfuerzos de migración se centraron en mejorar la disponibilidad, la escalabilidad y la elasticidad, lo que en conjunto llevó el entorno de aprendizaje automático a un nuevo nivel de excelencia operativa, ejemplificado por una mayor frecuencia de capacitación de modelos y menores fallas, tiempos de capacitación optimizados y capacidades avanzadas de aprendizaje automático.

Modelo de frecuencia de entrenamiento y fallas.

La cantidad de trabajos mensuales de capacitación de modelos se quintuplicó, lo que llevó a optimizaciones de modelos significativamente más frecuentes. Además, el nuevo entorno de aprendizaje automático condujo a una reducción en la tasa de fallas de las ejecuciones de tuberías, que cayó de aproximadamente un 50 % a un 20 %. El tiempo de procesamiento de trabajos fallidos disminuyó drásticamente, de más de una hora en promedio a unos insignificantes 5 segundos. Esto ha aumentado considerablemente la eficiencia operativa y ha disminuido el desperdicio de recursos.

Tiempo de entrenamiento optimizado

La migración trajo consigo aumentos de eficiencia a través del entrenamiento de GPU basado en SageMaker. Este cambio redujo el tiempo de entrenamiento del modelo a una quinta parte de su duración anterior. Anteriormente, los procesos de capacitación para modelos de aprendizaje profundo consumían alrededor de 60 horas en CPU; esto se simplificó a aproximadamente 12 horas en GPU. Esta mejora no solo ahorra tiempo sino que también acelera el ciclo de desarrollo, permitiendo iteraciones y mejoras del modelo más rápidas.

Capacidades avanzadas de aprendizaje automático

Para el éxito de la migración es fundamental el uso del conjunto de funciones de SageMaker, que abarca el ajuste de hiperparámetros y la explicabilidad del modelo. Además, la migración permitió un seguimiento perfecto de los experimentos utilizando Experimentos de Amazon SageMaker, lo que permite una experimentación más profunda y productiva.

Lo más importante es que el nuevo entorno de experimentación de ML respaldó el desarrollo exitoso de un nuevo modelo que ahora está en producción. Este modelo es de aprendizaje profundo en lugar de estar basado en árboles y ha introducido mejoras notables en el rendimiento del modelo en línea.

Conclusión

Esta publicación proporcionó una descripción general de la colaboración de AWS Professional Services y Booking.com que resultó en la implementación de un marco de aprendizaje automático escalable y redujo con éxito el tiempo de comercialización de los modelos de aprendizaje automático de su equipo de Ranking.

El equipo de Ranking de Booking.com descubrió que migrar a la nube y a SageMaker ha resultado beneficioso y que adaptar las prácticas de operaciones de aprendizaje automático (MLOps) permite a sus ingenieros y científicos de aprendizaje automático centrarse en su oficio y aumentar la velocidad de desarrollo. El equipo comparte los aprendizajes y el trabajo realizado con toda la comunidad de ML en Booking.com, a través de charlas y sesiones dedicadas con profesionales de ML donde comparten el código y las capacidades. Esperamos que este post pueda servir como otra forma de compartir el conocimiento.

AWS Professional Services está listo para ayudar a su equipo a desarrollar ML escalable y listo para la producción en AWS. Para más información, ver Servicios profesionales de AWS o comuníquese con su administrador de cuenta para ponerse en contacto.


Acerca de los autores

Laurens van der Maas es ingeniero de aprendizaje automático en AWS Professional Services. Trabaja en estrecha colaboración con clientes que crean sus soluciones de aprendizaje automático en AWS, se especializa en capacitación distribuida, experimentación e IA responsable, y le apasiona cómo el aprendizaje automático está cambiando el mundo tal como lo conocemos.

Daniel Zagyvá es científico de datos en AWS Professional Services. Se especializa en el desarrollo de soluciones de aprendizaje automático escalables y de nivel de producción para clientes de AWS. Su experiencia se extiende a diferentes áreas, incluido el procesamiento del lenguaje natural, la inteligencia artificial generativa y las operaciones de aprendizaje automático.

Kostia Kofman es gerente senior de aprendizaje automático en Booking.com, lidera el equipo de ML de Search Ranking y supervisa el sistema ML más completo de Booking.com. Con experiencia en personalización y clasificación, se esfuerza por aprovechar la tecnología de vanguardia para mejorar las experiencias de los clientes.

Jenny Tokar es ingeniero senior de aprendizaje automático en el equipo de ranking de búsqueda de Booking.com. Se especializa en el desarrollo de canales de aprendizaje automático de extremo a extremo caracterizados por la eficiencia, la confiabilidad, la escalabilidad y la innovación. La experiencia de Jenny permite a su equipo crear modelos de clasificación de vanguardia que sirven a millones de usuarios todos los días.

Alexandra Dokic es científico de datos sénior en AWS Professional Services. Le gusta ayudar a los clientes a crear soluciones innovadoras de IA/ML en AWS y está entusiasmada con las transformaciones empresariales a través del poder de los datos.

Luba Protsiva es gerente de participación en AWS Professional Services. Se especializa en brindar soluciones de datos y GenAI/ML que permiten a los clientes de AWS maximizar su valor comercial y acelerar la velocidad de la innovación.

punto_img

Información más reciente

punto_img