Resulta divertido que un ser humano escriba un artículo sobre inteligencia artificial en una época en la que los sistemas de IA, impulsados por el aprendizaje automático (ML), están generando sus propias entradas de blog. DoorDash ha estado construyendo un Machine Learning Workbench interno durante el último año para mejorar las operaciones de datos y ayudar a nuestros científicos de datos, analistas e ingenieros de IA/ML. En este artículo, explicaremos cómo DoorDash ha acelerado la velocidad de desarrollo de ML mediante la construcción de un entorno optimizado para automatizar los flujos de trabajo de ML. También arrojamos luz sobre cómo impulsamos el valor adoptando un enfoque centrado en el usuario mientras construíamos esta herramienta interna.
Importancia del ML en DoorDash
El ML interviene en una amplia gama de aplicaciones en la simbiosis tripartita de clientes, Dashers y comerciantes a los que DoorDash abastece. Desde utilizar la imagen adecuada en las páginas de las tiendas de los comerciantes hasta sugerir sustitutos apropiados cuando los Dashers no pueden encontrar un sustituto adecuado para un artículo agotado, abundan las oportunidades para las que las soluciones manuales son ineficaces, caras o inverosímiles.
Como se muestra en la Figura 1, la ciencia de datos se cruza con el ML de múltiples maneras y es primordial para el éxito de DoorDash. Por lo tanto, es fundamental que los equipos de datos e ingeniería cuenten con un apoyo integral durante todo el proceso de ML. Un banco de trabajo interno de ML facilita la colaboración y el intercambio de información entre estos equipos y también acelera y agiliza la ejecución de los proyectos de ML.
El concepto de Workbench de ML
Nuestra visión de ML Workbench era crear un eje centralizado que proporcionara un espacio para realizar tareas a lo largo del ciclo de vida del aprendizaje automático, como crear, entrenar, ajustar y desplegar modelos de aprendizaje automático en un entorno listo para la producción. La idea era crear una ventanilla única para que los usuarios recopilaran datos de distintas fuentes y los limpiaran y organizaran para su uso por algoritmos de aprendizaje automático.
Evolución del banco de trabajo
Motivación y trasfondo de ML Portal
El equipo de la plataforma ML comenzó construyendo una interfaz de usuario sencilla para automatizar el proceso de prueba de modelos a través de una aplicación web llamada ML Portal. Los científicos de datos podían utilizar esta app - ML Portal - para probar sus modelos fácilmente utilizando un navegador y unos pocos clics de ratón.
Esto surgió del pensamiento preventivo después de que observáramos que el proceso de prueba manual no era escalable, lo que ralentizaba el desarrollo de ML y generaba preguntas repetidas sobre la elaboración del script de Python. Al ver que los usuarios adoptaban fácilmente esta sencilla automatización, nos dimos cuenta de que las herramientas sencillas pueden ayudar a nuestros clientes a aumentar la velocidad de desarrollo de modelos a largo plazo.
Pronto empezamos a añadir más funciones a esta interfaz. Algunas de las funciones iniciales eran:
- Posibilidad de ver todos los modelos
- Capacidad para probar las predicciones del modelo
- Ver las características que constituyen un modelo
Observamos la utilidad del Portal ML a medida que crecía su adopción y decidimos redoblar el esfuerzo. Seguimos iterando sobre nuestro prototipo inicial, que creamos utilizando un framework de Python Flask y HTML.
Los profesionales de ML nos dijeron que realizaban una serie de tareas diarias que decidimos incorporar a la herramienta de interfaz de usuario para acelerar y agilizar su flujo de trabajo diario. Cuando alcanzamos una masa crítica de adopción, los usuarios empezaron a solicitar funciones para la interfaz de usuario; sabíamos que teníamos que mejorar tanto nuestra pila tecnológica como nuestra arquitectura de la información para introducir mejoras incrementales significativas en sus flujos de trabajo.
Al mismo tiempo, realizábamos encuestas de satisfacción de los usuarios y recogíamos cada trimestre reseñas de mejora que verificaban lo útil que se estaba volviendo el Portal de ML. Todo esto impulsó la creación de The ML Workbench: Una página web para profesionales de ML en DoorDash. Con el ambicioso objetivo inicial de impulsar la velocidad de desarrollo de modelos, pronto reunimos un equipo que incluía tanto diseño como ingeniería.
Objetivos del Workbench
- Desarrollar internamente una solución optimizada para aumentar la productividad y la velocidad de los equipos de DoorDash que ejecutan operaciones impulsadas por ML.
- Crear la mejor herramienta interna de su clase que sea funcional, fácil de usar, estéticamente agradable y que se integre perfectamente en el creciente ecosistema de herramientas internas de DoorDash.
- Reducir la dependencia de aplicaciones de terceros
Estrategia de desarrollo del Workbench
Adoptamos nuestro planteamiento habitual de desarrollo de productos a rastras, andando y corriendo, inculcando el pensamiento de diseño para priorizar nuestra secuencia de operaciones:
Fase 1 (T1-FY23)
- Impulsar la investigación para comprender los puntos débiles de los usuarios y su uso actual.
- Establecer un proceso de desarrollo de productos con socios multifuncionales
- Elaborar una visión a corto plazo para el ML Workbench (MLW)
Fase 2 (Q2-FY23)
- Soluciones de diseño para experiencias clave y áreas de fricción identificadas durante la investigación
- Ejecutar pruebas de usuario con las primeras versiones de las compilaciones de ingeniería.
- Optimizar el rendimiento del banco de trabajo, con el objetivo de mejorar la velocidad y la productividad
Fase 3 (3T-FY23)
- Desarrollar un mecanismo de retroalimentación mediante encuestas sobre los productos
- Utilizar los comentarios para informar sobre la visión a largo plazo
- Ampliar las capacidades y capturar más del ciclo de vida de ML a través de funciones añadidas y mejoras.
Investigación de usuarios
A pesar de nuestros ambiciosos objetivos, pronto nos dimos cuenta de que no podíamos hacer que el Workbench soportara las cuatro fases (Figura 2) desde el principio. Realizamos entrevistas a varios equipos, como los de búsqueda, anuncios y ETA, entre otros, que se centraron en el papel de cada participante, cómo utilizaban ML Workbench, los objetivos de su equipo y sus actuales puntos débiles. Organizamos las principales tareas de los usuarios utilizando un marco de tareas por realizar y clasificamos a los usuarios en tres categorías:
I. Administradores (ingenieros de plataforma de ML)
- Proporcionar mantenimiento y soporte en toda la plataforma ML
- Visualice los modelos ML y las variables de entrada asociadas -características- a través de predictores y casos de uso para una depuración rápida.
- Establecer conectores que permitan a los usuarios interactuar con otros servicios de la plataforma ML.
II. Usuarios finales (científicos de datos, analistas de datos, otros usuarios de datos)
- Desarrollar modelos ML de extremo a extremo y explorar los conjuntos de datos disponibles en la actualidad.
- Implantar modelos alternativos
- Controlar los modelos en producción
- Hacer predicciones de prueba
- Seguimiento de los datos del modelo, como características, ejecuciones de entrenamiento, modelos sombra y métricas.
III. Operadores (jefes de producto, jefes de empresa)
- Revisar las señales y métricas clave
- Supervisar el rendimiento y la eficacia del equipo de ML
Principales resultados
Basándonos en nuestras conversaciones con los usuarios y en el uso que hacen de los prototipos en su trabajo diario, llegamos a la siguiente conclusión:
I. Páginas más visitadas
- "Lo uso para buscar información sobre predictores, características y, a veces, para pruebas y despliegues; todavía no para entrenar modelos".
- "Compruebo con frecuencia los Pipeline Runs y los Sensor Ticks, pero, a menudo verifico con Dagit".
II. La fase del ciclo de vida del ML durante la cual más se utilizó el workbench
- "No tocamos ML Portal durante el trabajo de desarrollo de funciones. Una vez que la función se ha implementado en producción y se ha cargado en Redis, empezamos a utilizar ML Portal para comprobar la función".
III. Las claves de las capacidades disponibles
- "Nunca he hecho clic en la fuente del fabricante en ML Portal. No sabía que toda esta información de la fuente estaba dentro".
- "Me encanta la búsqueda por características. Sería muy útil tener un cuadro desplegable mientras escribimos las palabras clave de búsqueda de características (búsqueda contextual)."
Al hablar con los usuarios, nos dimos cuenta de que también era una oportunidad para observar cómo era la canalización de ML de DoorDash. Al captar mejor el complicado panorama, pudimos identificar dónde MLW podría ser más eficaz y quizás deslizarse como una alternativa para herramientas de terceros.
Definir una visión y un plan de lanzamiento de MLW v1
Nuestra investigación nos guió hacia lo que queríamos resolver, transformándose en una visión de un ML Workbench a gran escala, en forma de un prototipo de diseño que sería nuestra estrella polar. A partir de aquí, definimos la primera versión y nos centramos en:
- Establecer una base sólida para un banco de trabajo escalable construyendo el front-end desde cero en React, coherente con Prism, nuestros componentes internos y sistema de diseño.
- Integración de MLW en el conjunto de herramientas de datos internas existentes, que incluye herramientas como la Plataforma de Experimentación y la Plataforma de Métricas.
- Reducir el tiempo dedicado a las tareas de las experiencias clave para acelerar directamente la velocidad e impulsar la productividad haciendo que las acciones y capacidades de MLW sean fácilmente localizables.
- Creación de un plazo de 45 días entre la concepción y la producción para iterar de forma coherente sobre las funciones nuevas y existentes del banco de trabajo.
Manténgase informado con las actualizaciones semanales
Suscríbase a nuestro blog de ingeniería para estar al día de los proyectos más interesantes en los que trabaja nuestro equipo.
Please enter a valid email address.
Gracias por suscribirse.
Caso práctico
Problema: Estado de la carga de funciones
Los propietarios de modelos suelen realizar comprobaciones diarias para asegurarse de que las funciones están actualizadas. El antiguo flujo implicaba demasiados pasos utilizando una interfaz de línea de comandos, como se indica a continuación, para comprobar si las características se estaban cargando a tiempo en el almacén de características elegido.
Problema: valores de características que sirven de búsqueda:
A medida que crecía la adopción de Fabricator, los científicos de datos y los ingenieros de ML necesitaban asegurarse de que las características que creaban eran correctas. Incluso las tareas más sencillas, como una comprobación puntual de los valores creados, requerían un proceso tedioso desde sus máquinas locales para consultar los almacenes de características en producción.
Solución
Al permitir que MLW se integre con los almacenes de características, permitimos a los usuarios consultar directamente los datos de producción a través de una sencilla interfaz de usuario. Esto redujo en gran medida la sobrecarga operativa de un profesional de ML a la hora de consultar los almacenes de características para asegurarse de las características que están generando. Además, para las comprobaciones puntuales del estado de carga de características, hicimos que el proceso fuera mucho más fácil y rápido al permitir que MLW interactuara con el servicio de carga de características y sus tablas, garantizando la interacción directa con el servicio de características desde la interfaz de usuario.
Testimonios
Desde la implantación de ML Workbench, nuestros equipos de ingeniería y de ciencia de datos han hecho comentarios muy positivos sobre cómo ha agilizado sus procesos y ha creado una experiencia de usuario mucho mejor.
"Estas mejoras son enormes. La nueva plataforma ya me está ahorrando tiempo porque puedo enviarla a mi xfn para que compruebe los valores de las características (para la puntuación de la selección) y ellos pueden validar que las características son correctas y tienen sentido."
- Ingeniero de ML, Nuevas Verticales
"Aunque técnicamente esta funcionalidad puede haber existido en la antigua plataforma, la interfaz de usuario era tan difícil de manejar (que) no era capaz de utilizarla como herramienta para acelerar mi propio trabajo o conseguir ojos adicionales para mejorar la calidad de mi trabajo."
- Ingeniero de Software, Crecimiento del Consumo
¿Y ahora qué?
Mientras seguimos ampliando nuestros esfuerzos con un enfoque obsesionado con el cliente, estamos estudiando las siguientes áreas de interés:
- Impulsar y diversificar la adopción: Los profesionales de ML de DoorDash ya necesitan y utilizan activamente ML Workbench, pero ahora queremos añadir más personas a su base de usuarios.
- Mejorar la observabilidad: A medida que nos adentramos en 2024, tratamos de aprovechar ML Workbench para mejorar la observabilidad de características y modelos con el fin de aumentar la confianza de los usuarios en las herramientas de la plataforma
Tradicionalmente, el desarrollo de herramientas internas para desarrolladores se ha centrado únicamente en la automatización, a menudo a expensas de la experiencia del usuario. Con ML Workbench, nos planteamos el reto de desarrollar empatía con el usuario y equilibrar los objetivos de velocidad y productividad con un enfoque en el usuario. En lugar de limitarnos a flujos de trabajo nicho, queríamos crear un impacto positivo en tantos usuarios de datos como fuera posible. Nos tomamos el tiempo necesario para comprender los puntos débiles a los que se enfrentan los ingenieros y los científicos de datos, lo que nos llevó a crear una solución funcional que nuestros usuarios encontraran fácil y agradable de usar. A medida que ampliemos esta herramienta para abarcar otras fases del ciclo de vida del ML, seguiremos dando prioridad a nuestra filosofía centrada en el usuario para impulsar la adopción y el desarrollo del ML".
Agradecimientos
Queremos expresar nuestra gratitud a Karan Sonawane y Prajakta Sathe por poner en marcha el proceso de desarrollo de la interfaz de usuario y hacer que el proyecto pasara de ser una pizarra en blanco a algo tangible. También agradecemos a Andrew Hahn y Hien Luu su orientación y ayuda en la colaboración entre la plataforma de diseño y la de ML. Este fue el primer proyecto entre los dos equipos y su tutoría nos permitió sortear los obstáculos del camino. También agradecemos a Hanyu Yang y Steve Guo que se aseguraran de que ML Workbench estuviera completo en el momento del lanzamiento. Por último, agradecemos a Swaroop Chitlur y Kunal Shah sus aportaciones sobre el enfoque de implementación, las estructuras de ingeniería y la garantía de que la plataforma ML ofrece valor allí donde es importante.