Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker

Si ha buscado un artículo para comprar en amazon.com, ha utilizado los servicios de búsqueda de Amazon. En Amazon Search, somos responsables de la experiencia de búsqueda y descubrimiento de nuestros clientes en todo el mundo. En segundo plano, indexamos nuestro catálogo mundial de productos, implementamos flotas de AWS altamente escalables y utilizamos aprendizaje automático (ML) avanzado para relacionar productos relevantes e interesantes con la consulta de cada cliente.

Nuestros científicos entrenan regularmente miles de modelos ML para mejorar la calidad de los resultados de búsqueda. Apoyar la experimentación a gran escala presenta sus propios desafíos, especialmente cuando se trata de mejorar la productividad de los científicos que entrenan estos modelos ML.

En esta publicación, compartimos cómo creamos un sistema de gestión en torno a Amazon SageMaker trabajos de capacitación, lo que permite a nuestros científicos disparar y olvidar miles de experimentos y ser notificados cuando sea necesario. Ahora pueden concentrarse en tareas de alto valor y resolver errores algorítmicos, ahorrando el 60 % de su tiempo.

El desafío

En Amazon Search, nuestros científicos resuelven problemas de recuperación de información experimentando y ejecutando numerosos trabajos de entrenamiento de modelos de ML en SageMaker. Para mantenerse al día con la innovación de nuestro equipo, la complejidad de nuestros modelos y la cantidad de trabajos de capacitación han aumentado con el tiempo. Los trabajos de entrenamiento de SageMaker nos permiten reducir el tiempo y el costo de entrenar y ajustar esos modelos a escala, sin necesidad de administrar la infraestructura.

Como todo en proyectos de ML a gran escala, los trabajos de capacitación pueden fallar debido a una variedad de factores. Esta publicación se centra en la escasez de capacidad y las fallas debido a errores de algoritmo.

Diseñamos una arquitectura con un sistema de gestión de trabajos para tolerar y reducir la probabilidad de que un trabajo falle debido a la falta de disponibilidad de capacidad o errores de algoritmo. Permite a los científicos despedir y olvidar miles de trabajos de capacitación, volver a intentarlos automáticamente en caso de falla transitoria y recibir notificaciones de éxito o falla si es necesario.

Resumen de la solución

En el siguiente diagrama de solución, usamos los trabajos de capacitación de SageMaker como la unidad básica de nuestra solución. Es decir, un trabajo representa el entrenamiento integral de un modelo de ML.

El flujo de trabajo de alto nivel de esta solución es el siguiente:

  1. Los científicos invocan una API para enviar un nuevo trabajo al sistema.
  2. El trabajo está registrado en el New estado en un almacén de metadatos.
  3. Un programador de trabajos recupera asincrónicamente New trabajos del almacén de metadatos, analiza su entrada e intenta iniciar trabajos de entrenamiento de SageMaker para cada uno. Su estado cambia a Launched or Failed dependiendo del éxito.
  4. Un monitor comprueba el progreso de los trabajos a intervalos regulares e informa de su Completed, Failedo InProgress estado en el almacén de metadatos.
  5. Se activa un notificador para informar Completed y Failed trabajo a los científicos.

La persistencia del historial de trabajos en el almacén de metadatos también permite a nuestro equipo realizar análisis de tendencias y monitorear el progreso del proyecto.

Esta solución de programación de trabajos utiliza componentes sin servidor poco acoplados basados ​​en AWS Lambda, Amazon DynamoDB, Servicio de notificación simple de Amazon (Amazon SNS), y Puente de eventos de Amazon. Esto garantiza la escalabilidad horizontal, lo que permite a nuestros científicos lanzar miles de trabajos con un esfuerzo operativo mínimo. El siguiente diagrama ilustra la arquitectura sin servidor.

Descripción general de la arquitectura de nuestra solución

En las siguientes secciones, entramos en más detalles sobre cada servicio y sus componentes.

DynamoDB como almacén de metadatos para ejecuciones de trabajos

La facilidad de uso y la escalabilidad de DynamoDB hicieron que conservar los metadatos de los trabajos en una tabla de DynamoDB fuera una opción natural. Esta solución almacena varios atributos de los trabajos enviados por los científicos, lo que ayuda con el seguimiento del progreso y la orquestación del flujo de trabajo. Los atributos más importantes son los siguientes:

  • Identificación del trabajo – Una identificación de trabajo única. Esto puede ser generado automáticamente o proporcionado por el científico.
  • estado del trabajo – El estado del trabajo.
  • Argumentos de trabajo – Otros argumentos necesarios para crear un trabajo de entrenamiento, como la ruta de entrada en Amazon S3, el URI de la imagen de entrenamiento y más. Para obtener una lista completa de los parámetros necesarios para crear un trabajo de entrenamiento, consulte Creartrabajodeformación.

Lambda para la lógica central

Usamos tres a base de contenedores Funciones Lambda para orquestar el flujo de trabajo del trabajo:

  • Enviar trabajo – Los científicos invocan esta función cuando necesitan iniciar nuevos trabajos. Actúa como una API por simplicidad. También puedes encararlo con Puerta de enlace API de Amazon, si es necesario. Esta función registra los trabajos en la tabla de DynamoDB.
  • Lanzar trabajos – Esta función recupera periódicamente New trabajos de la tabla de DynamoDB y los inicia mediante SageMaker Creartrabajodeformación dominio. Vuelve a intentar fallas transitorias, como ResourceLimitExceeded y CapacityError, para instrumentar la resiliencia en el sistema. Luego actualiza el estado del trabajo como Launched or Failed dependiendo del éxito.
  • Supervisar trabajos – Esta función realiza un seguimiento periódico del progreso del trabajo utilizando el DescribirEntrenamientoTrabajo y actualiza la tabla de DynamoDB en consecuencia. sondea Failed trabajos a partir de los metadatos y evalúa si se deben volver a enviar o marcar como fallidos terminales. También publica mensajes de notificación a los científicos cuando sus trabajos llegan a un estado terminal.

EventBridge para programar

Usamos EventBridge para ejecutar las funciones Launch Jobs y Monitor Jobs Lambda según un cronograma. Para obtener más información, consulte Tutorial: programar funciones de AWS Lambda mediante EventBridge.

Alternativamente, puede utilizar Secuencias de Amazon DynamoDB para los disparadores. Para más información, ver DynamoDB Streams y disparadores AWS Lambda.

Notificaciones con Amazon SNS

Nuestros científicos son notificado por correo electrónico usando Amazon SNS cuando sus trabajos alcanzan un estado terminal (Failed después de un número máximo de reintentos), Completedo Stopped.

Conclusión

En esta publicación, compartimos cómo Amazon Search agrega resiliencia a las cargas de trabajo de entrenamiento del modelo ML al programarlas y volver a intentarlas en caso de escasez de capacidad o errores de algoritmo. Usamos funciones de Lambda junto con una tabla de DynamoDB como almacén central de metadatos para orquestar todo el flujo de trabajo.

Tal sistema de programación permite a los científicos enviar sus trabajos y olvidarse de ellos. Esto ahorra tiempo y les permite concentrarse en escribir mejores modelos.

Para ir más allá en tus aprendizajes, puedes visitar Impresionante SageMaker y encuentre en un solo lugar todos los recursos relevantes y actualizados necesarios para trabajar con SageMaker.


Acerca de los autores

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.luochao wang es ingeniero de software en Amazon Search. Se enfoca en sistemas distribuidos escalables y herramientas de automatización en la nube para acelerar el ritmo de la innovación científica para aplicaciones de Machine Learning.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Ishan Bhat es ingeniero de software en el equipo de Amazon Prime Video. Trabaja principalmente en el espacio MLOps y tiene experiencia en la creación de productos MLOps durante los últimos 4 años con Amazon SageMaker.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Abhinandan Patni es ingeniero de software sénior en Amazon Search. Se centra en la creación de sistemas y herramientas para la formación de aprendizaje profundo distribuido escalable y la inferencia en tiempo real.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Eiman Elnahrawy es un ingeniero de software principal en Amazon Search que lidera los esfuerzos de aceleración, escalado y automatización del aprendizaje automático. Su experiencia abarca múltiples áreas, incluido el aprendizaje automático, los sistemas distribuidos y la personalización.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.sofian hamití es un arquitecto de soluciones especialista en IA / ML en AWS. Ayuda a los clientes de todas las industrias a acelerar su viaje de IA / ML ayudándolos a crear y poner en funcionamiento soluciones de aprendizaje automático de un extremo a otro.

Romi DattaDra. Romi Datta  es gerente sénior de administración de productos en el equipo de Amazon SageMaker responsable de la capacitación, el procesamiento y el almacenamiento de características. Ha estado en AWS durante más de 4 años, ocupando varios puestos de liderazgo en gestión de productos en SageMaker, S3 e IoT. Antes de AWS, trabajó en varios puestos de gestión de productos, ingeniería y liderazgo operativo en IBM, Texas Instruments y Nvidia. Tiene una maestría y un doctorado. en Ingeniería Eléctrica e Informática de la Universidad de Texas en Austin, y un MBA de la Escuela de Negocios Booth de la Universidad de Chicago.

Cómo Amazon Search ejecuta proyectos de aprendizaje automático resilientes a gran escala con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.RJ es un ingeniero en el equipo de Search M5 que lidera los esfuerzos para construir sistemas de aprendizaje profundo a gran escala para capacitación e inferencia. Fuera del trabajo, explora diferentes cocinas de comida y practica deportes de raqueta.

Sello de tiempo:

Mas de Aprendizaje automático de AWS