Il est amusant pour un être humain d'écrire un article sur l'intelligence artificielle à une époque où les systèmes d'IA, alimentés par l'apprentissage machine (ML), génèrent leurs propres articles de blog. DoorDash a mis en place un atelier interne d'apprentissage automatique au cours de l'année écoulée afin d'améliorer les opérations de données et d'aider nos data scientists, nos analystes et nos ingénieurs en IA/ML. Dans cet article, nous expliquons comment DoorDash a accéléré la vitesse de développement de l'apprentissage automatique en construisant un environnement rationalisé pour automatiser les flux de travail de l'apprentissage automatique. Nous expliquons également comment nous avons créé de la valeur en adoptant une approche centrée sur l'utilisateur lors de la construction de cet outil interne.
L'importance de la ML chez DoorDash
La ML est impliquée dans un large éventail d'applications dans la symbiose tripartite des clients, des Dashers et des commerçants auxquels DoorDash s'adresse. Qu'il s'agisse d'utiliser la bonne image sur les pages des boutiques des commerçants ou de suggérer des substituts appropriés lorsque les Dashers ne parviennent pas à trouver un remplacement adéquat pour un article en rupture de stock, il existe de nombreuses opportunités pour lesquelles les solutions manuelles sont inefficaces, onéreuses ou peu plausibles.
Comme le montre la figure 1, la science des données recoupe la ML de multiples façons et est essentielle au succès de DoorDash. Il est donc essentiel que les équipes chargées des données et de l'ingénierie bénéficient d'un soutien complet tout au long du processus de ML. Un atelier interne de ML facilite la collaboration et le partage d'informations entre ces équipes et accélère et rationalise l'exécution des projets de ML.
Le concept de ML Workbench
Notre vision pour ML Workbench était de créer un centre centralisé pour fournir un espace permettant d'accomplir des tâches tout au long du cycle de vie de l'apprentissage automatique, telles que la construction, l'entraînement, la mise au point et le déploiement de modèles d'apprentissage automatique dans un environnement prêt pour la production. L'idée était de créer un guichet unique permettant aux utilisateurs de collecter des données à partir de différentes sources, puis de les nettoyer et de les organiser en vue de leur utilisation par des algorithmes d'apprentissage automatique.
Évolution de l'établi
Motivation et historique du portail ML
The ML platform team started by building a simple UI to automate the model testing process through a web application called the ML Portal. Data scientists could use this app "ML Portal" to test their models easily using a browser and a few mouse clicks.
Cette idée est née d'une réflexion préventive après avoir constaté que le processus de test manuel n'était pas évolutif, qu'il ralentissait le développement de ML et qu'il générait des questions répétées sur l'élaboration du script Python. En voyant les utilisateurs adopter facilement cette automatisation simple, nous avons réalisé que des outils simples pouvaient aider nos clients à augmenter la vitesse de développement des modèles sur le long terme.
Nous avons rapidement commencé à ajouter des fonctionnalités à cette interface utilisateur. Voici quelques-unes des fonctionnalités initiales :
- Possibilité de visualiser tous les modèles
- Capacité à tester les prédictions du modèle
- Voir les caractéristiques d'un modèle
We observed ML Portal's utility as adoption grew and decided to double down on this effort. We continued iterating on our initial prototype, which we created using a Python Flask and HTML framework.
Les praticiens de la ML nous ont dit qu'ils effectuaient un certain nombre de tâches quotidiennes que nous avons décidé d'incorporer dans l'outil d'interface utilisateur afin d'accélérer et de rationaliser leur flux de travail quotidien. Lorsque nous avons atteint une masse critique d'adoption, les utilisateurs ont commencé à demander des fonctionnalités pour l'interface utilisateur ; nous savions que nous devions améliorer à la fois notre pile technologique et notre architecture d'information pour apporter des améliorations incrémentales significatives à leurs flux de travail.
Dans le même temps, nous avons mené des enquêtes de satisfaction auprès des utilisateurs et recueilli des rapports d'amélioration chaque trimestre, ce qui nous a permis de vérifier l'utilité du ML Portal. Tout cela a conduit à la création de The ML Workbench : Une page d'accueil pour les praticiens de la ML chez DoorDash. En nous fixant un objectif initial ambitieux, à savoir accélérer le développement des modèles, nous avons rapidement constitué une équipe composée de concepteurs et d'ingénieurs.
Objectifs du banc de travail
- Développer en interne une solution optimisée pour augmenter la productivité et la vélocité des équipes DoorDash qui gèrent des opérations basées sur la ML.
- Build a best-in-class internal tool that's functional, useable, aesthetically pleasing, and integrates seamlessly into DoorDash's growing internal tools ecosystem
- Réduire la dépendance à l'égard des applications tierces
Stratégie de développement du Workbench
Nous avons adopté notre approche habituelle du développement de produits, en instillant une réflexion sur la conception pour établir des priorités dans notre séquence d'opérations :
Phase 1 (Q1-FY23)
- Mener des recherches pour comprendre les points de douleur des utilisateurs, l'utilisation actuelle
- Mettre en place un processus de développement de produits avec des partenaires interfonctionnels
- Élaborer une vision à court terme pour le ML Workbench (MLW)
Phase 2 (Q2-FY23)
- Concevoir des solutions pour les expériences clés et les zones de friction identifiées au cours de la recherche
- Effectuer des tests utilisateurs avec les premières versions des projets d'ingénierie
- Optimiser les performances de l'établi, afin d'améliorer la vélocité et la productivité
Phase 3 (Q3-FY23)
- Mettre en place un mécanisme de retour d'information par le biais d'enquêtes sur les produits
- Utiliser le retour d'information pour alimenter la vision à long terme
- Extension des capacités et prise en compte d'une plus grande partie du cycle de vie de la ML grâce à l'ajout de fonctionnalités et à des améliorations
Recherche sur les utilisateurs
Despite our ambitious goals, we quickly learned that we couldn't have the workbench support all four phases (Figure 2) from the get-go. We conducted interviews across multiple teams, including Search, Ads, ETA, and more that focused on each participant's role, how they were using ML Workbench, their team's goals, and their current pain points. We organized major user tasks using a jobs-to-be-done framework and categorized users into three buckets:
I. Administrateurs (ingénieurs de la plate-forme ML)
- Assurer la maintenance et le support de la plateforme ML
- View ML models and associated input variables - features - across predictors and use cases for quick debugging
- Mettre en place des connecteurs qui permettent aux utilisateurs d'interagir avec d'autres services sur la plateforme ML
II. Utilisateurs finaux (scientifiques des données, analystes des données, autres utilisateurs de données)
- Développer des modèles de ML de bout en bout et explorer les ensembles de données actuellement disponibles
- Déployer des modèles fantômes
- Contrôler les modèles en production
- Faire des prévisions pour les tests
- Suivre les données du modèle telles que les caractéristiques, les cycles d'entraînement, les modèles fantômes et les mesures.
III. Opérateurs (chefs de produit, chefs d'entreprise)
- Examiner les signaux et les mesures clés
- Superviser les performances et l'efficacité de l'équipe de ML
Principales conclusions
Sur la base de nos conversations avec les utilisateurs et de leur utilisation de prototypes fonctionnels dans leur travail quotidien, nous avons émis l'hypothèse suivante :
I. Quelles sont les pages les plus fréquentées
- "I use it for looking up information on predictors, features and sometimes for testing and deployment - not for model training yet."
- "I frequently check Pipeline Runs and Sensor Ticks, but, often verify with Dagit."
II. Phase du cycle de vie du ML au cours de laquelle le workbench a été le plus utilisé
- "We don't touch ML Portal during feature development work. After the feature has been deployed to production and uploaded to Redis, we start using ML Portal to check the feature."
III. Les questions clés concernant les capacités disponibles
- "I've never clicked into the fabricator source on ML Portal. I didn't know all this source information was inside."
- "I love feature search. Would be really helpful to have a dropdown box as we're typing feature search keywords (contextual search)."
As we spoke to users, we realized that this also was an opportunity for us to observe what DoorDash's ML pipeline looked like. Through capturing the complicated landscape better, we could identify where MLW could be most effective and perhaps slide in as an alternative for a third-party tools.
Définir une vision et définir un MLW v1 prêt à être lancé
Nos recherches nous ont guidés vers ce que nous voulions résoudre, et se sont transformées en une vision d'un ML Workbench à grande échelle, sous la forme d'un prototype de conception qui serait notre étoile polaire. À partir de là, nous avons défini la première version et nous nous sommes concentrés sur les points suivants :
- Établir une base solide pour un banc de travail évolutif en construisant le front-end à partir de zéro dans React, en cohérence avec Prism, notre système interne de composants et de conception.
- Intégrer MLW dans la suite d'outils de données internes existants qui comprend des outils tels que la plateforme d'expérimentation et la plateforme de métrologie.
- Réduire le temps de travail pour les expériences clés afin d'accélérer directement la vitesse et de stimuler la productivité en rendant les actions et les capacités du MLW facilement accessibles.
- Création d'un calendrier de 45 jours de la conception à la production afin d'itérer de manière cohérente sur les capacités nouvelles et existantes de l'établi.
Restez informé grâce aux mises à jour hebdomadaires
Abonnez-vous à notre blog d'ingénierie pour recevoir régulièrement des informations sur les projets les plus intéressants sur lesquels notre équipe travaille.
Please enter a valid email address.
Merci de vous être abonné !
Cas d'utilisation
Problème : Statut du téléchargement des fonctionnalités
Les propriétaires de modèles effectuent souvent des contrôles quotidiens pour s'assurer de la fraîcheur des fonctionnalités. L'ancien flux comportait un peu trop d'étapes à l'aide d'une interface de ligne de commande, comme indiqué ci-dessous, pour vérifier si les fonctionnalités étaient téléchargées à temps dans le magasin de fonctionnalités choisi.
Problème : Valeurs des caractéristiques servant à la recherche:
Au fur et à mesure de l'adoption des fabricateurs, les data scientists et les ingénieurs ML devaient s'assurer que les fonctionnalités qu'ils créaient étaient correctes. Même des tâches simples, comme une vérification ponctuelle des valeurs créées, nécessitaient un processus fastidieux à partir de leurs machines locales pour interroger les réserves d'éléments en production.
Solution
By enabling MLW to integrate with the feature stores, we let users directly query the production data via a simple user interface. This greatly reduced an ML practitioner's operational overhead to query the feature stores to ensure the features they are generating using. Moreover, for feature upload status spot checks, we made the process much easier and quicker by enabling MLW to interact with the feature upload service and its tables, ensuring direct interaction with the feature service from the UI.
Témoignages
Depuis le déploiement de ML Workbench, nos équipes d'ingénierie et de science des données nous ont fait part de leur satisfaction quant à la rationalisation de leurs processus et à l'amélioration de l'expérience utilisateur.
"These improvements are huge! New platform is already saving me time because I can send it to my xfn to check features values (for pick score) and they can validate that the features are correct & make sense."
- ML Engineer, New Verticals
"While technically this functionality may have existed in the old platform, the UI was so difficult to work with (that) I wasn't able to use it as a tool to accelerate my own work or get extra eyes on it to improve the quality of my work."
- Software Engineer, Consumer Growth
What's next?
Alors que nous continuons à intensifier nos efforts en adoptant une approche axée sur le client, nous nous concentrons sur les domaines suivants :
- Drive and diversify adoption: DoorDash's ML Practitioners already need and actively use ML Workbench, but now we want to add more personas to its user base
- Améliorer l'observabilité : À l'approche de 2024, nous cherchons à tirer parti de ML Workbench pour améliorer l'observabilité des caractéristiques et des modèles afin d'accroître la confiance des utilisateurs dans les outils de la plateforme.
Traditionnellement, le développement d'outils internes pour les développeurs se concentre uniquement sur l'automatisation, souvent au détriment de l'expérience utilisateur. Avec ML Workbench, nous nous sommes mis au défi de développer l'empathie de l'utilisateur et d'équilibrer les objectifs de vitesse et de productivité en mettant l'accent sur l'utilisateur. Plutôt que de nous limiter à des niches de travail, nous voulions créer un impact positif sur le plus grand nombre possible d'utilisateurs de données. Nous avons pris le temps de comprendre les difficultés rencontrées par les ingénieurs et les scientifiques des données, ce qui nous a incités à créer une solution fonctionnelle et une solution que nos utilisateurs trouveraient facile et agréable à utiliser. En développant cet outil pour capturer d'autres phases du cycle de vie de la ML, nous continuerons à donner la priorité à notre philosophie centrée sur l'utilisateur pour favoriser l'adoption et propulser le développement de la ML.
Remerciements
Nous tenons à exprimer notre gratitude à Karan Sonawane et Prajakta Sathe pour avoir lancé le processus de développement de l'interface utilisateur et fait passer le projet d'une page blanche à quelque chose de tangible. Nous remercions également Andrew Hahn et Hien Luu pour leurs conseils et leur assistance dans la collaboration entre la conception et la plateforme ML. Il s'agissait du premier projet entre les deux équipes et leur mentorat nous a permis de surmonter les obstacles. Nous remercions également Hanyu Yang et Steve Guo pour avoir veillé à ce que le ML Workbench soit complet au moment du lancement. Enfin, nous remercions Swaroop Chitlur et Kunal Shah pour leur contribution à l'approche de la mise en œuvre, aux structures d'ingénierie et pour avoir veillé à ce que la ML Platform apporte de la valeur là où c'est important.