
Auteur : Kevin Stumpf, cofondateur et CTO
En 2015, lorsque nous avons commencé à déployer la plateforme de Machine Learning d'Uber, Michelangelo, nous avons remarqué une tendance intéressante : 80 % des modèles de ML lancés sur la plateforme alimentaient des cas d'utilisation de machine learning opérationnel, qui ont un impact direct sur l'expérience de l'utilisateur final (les passagers et les chauffeurs d'Uber). Seulement 20 % étaient des cas d'utilisation de machine learning analytique, qui alimentent la prise de décision analytique.
Le ratio ML opérationnel/ML analytique que nous avons observé était l'exact opposé de la façon dont la plupart des autres entreprises appliquaient le ML dans la pratique : le ML analytique était roi. Avec le recul, l'adoption massive du ML opérationnel par Uber n'est pas une grande surprise : Michelangelo a rendu extrêmement facile la mise en œuvre du ML opérationnel, et l'entreprise disposait d'une longue liste de cas d'usage à fort impact. Aujourd'hui, 7 ans plus tard, la dépendance d'Uber vis-à-vis du ML opérationnel n'a fait qu'augmenter : sans lui, vous verriez des prix de trajet non rentables, de terribles prédictions d'ETA et des centaines de millions de dollars perdus à cause de la fraude. En bref, sans le ML opérationnel, l'entreprise serait paralysée.
Le ML opérationnel a été la clé de la réussite d'Uber et, pendant longtemps, il a semblé que seuls les géants de la technologie pouvaient y parvenir. Mais la bonne nouvelle, c'est que beaucoup de choses ont changé au cours des 7 dernières années. Il existe de nouvelles technologies et tendances qui permettent à n'importe quelle entreprise de passer d'une utilisation principalement analytique du ML à une utilisation opérationnelle du ML, et nous avons quelques conseils pour quiconque souhaite le faire. C'est parti.
Le machine learning opérationnel consiste en une application qui utilise un modèle de ML pour prendre des décisions de manière autonome et continue qui ont un impact sur l'entreprise en temps réel. Ces applications sont critiques et s'exécutent « en ligne » en production sur la pile opérationnelle d'une entreprise.
Les exemples courants incluent les systèmes de recommandation, le classement des recherches, les Tarifs dynamiques, la détection des fraudes et l'approbation des demandes de prêt.
Le grand frère du ML opérationnel dans le monde « hors ligne » est le machine learning analytique. Ce sont des applications qui aident un utilisateur professionnel à prendre de meilleures décisions grâce au machine learning. Les applications de ML analytique se trouvent dans la stack analytique de l'entreprise et alimentent généralement directement les rapports, les tableaux de bord et les outils de business intelligence.
Les exemples courants incluent la prévision des ventes, les prédictions de churn et la segmentation client.

Les organisations utilisent le ML opérationnel et le ML analytique à des fins différentes, et chacun d'eux a des exigences techniques différentes.
| ML analytique | ML opérationnel | |
|---|---|---|
| Automatisation de la décision | Humain dans la boucle | Entièrement autonome |
| Vitesse de décision | Vitesse humaine | Temps réel |
| Optimisé pour | Traitement par lots à grande échelle | Faible latence et haute disponibilité |
| Audience principale | Utilisateur professionnel interne | Client |
| Pouvoirs | Rapports et tableaux de bord | Applications de production |
| Exemples | Prévision des ventes Scoring des leads Segmentation de la clientèle Prédictions du taux de résiliation | Recommandations de produits Détection de la fraude Prédiction du trafic Tarification en temps réel |
Caractéristiques du ML analytique vs. ML opérationnel
Examinons plus concrètement un exemple réel de machine learning opérationnel provenant d'Uber Eats. Lorsque vous ouvrez l'application, elle vous recommande une liste de restaurants et vous suggère le temps d'attente avant que la commande n'arrive à votre porte. Ce qui semble simple dans l'application est en réalité assez complexe en coulisses :
Pour finir par afficher « Otto’s Tacos » et « 20-30 min » dans l'application, la plateforme de ML d'Uber doit analyser un large éventail de données provenant de diverses sources de données brutes :
La plateforme de fonctionnalités de Michelangelo convertit ces données en fonctionnalités de ML. Ce sont les signaux sur lesquels un modèle est entraîné et qu'il utilise pour faire des prédictions en temps réel. Par exemple, ‘num_orders_last_30_min’ est utilisé comme fonctionnalité d'entrée pour prédire le délai de livraison, qui s'affichera à terme dans votre application mobile.
Les étapes que j'ai présentées ci-dessus, qui transforment des données brutes provenant d'une myriade de sources de données différentes en caractéristiques, et les caractéristiques en prédictions, sont communes à tous les cas d'utilisation du machine learning opérationnel. Qu'un système essaie de détecter la fraude à la carte de crédit, de prédire le taux d'intérêt d'un prêt automobile, de suggérer un article de journal dans la section des affaires internationales ou de recommander le meilleur jouet pour un enfant de 2 ans, les défis techniques sont identiques. Et c'est précisément cette similitude technique fondamentale qui nous a permis de créer une plateforme centrale unique pour tous les cas d'utilisation du ML opérationnel.
Uber était en bonne position pour tirer parti du ML opérationnel, car l'entreprise a bâti toute sa stack technologique sur une architecture de données et des principes modernes. Au cours des dernières années, nous avons assisté à une modernisation similaire bien au-delà de la Silicon Valley :
Les coûts de stockage des données se sont effondrés ces dernières années. Par conséquent, les entreprises ont pu collecter, acheter et stocker des informations sur chaque point de contact avec les clients. C'est crucial pour le ML : l'entraînement d'un bon modèle nécessite une grande quantité de données historiques. Et sans données, il n'y a pas de machine learning.
Dès le premier jour, Uber a centralisé la quasi-totalité de ses données dans son système de fichiers distribué basé sur Hive. Le stockage de données centralisé (ou, comme alternative, l'accès centralisé à des magasins de données décentralisés) est important car il permet aux data scientists, qui entraînent les modèles de ML, de savoir quelles données sont disponibles, où les trouver et comment y accéder. La plupart des entreprises n'ont pas encore tout à fait centralisé l'intégralité de l'accès à leurs données. Cependant, les tendances architecturales telles que The Modern Data Stack ont rapproché le rêve du data scientist d'un accès démocratisé aux données de la réalité.
Chez Uber, nous avions la chance d'avoir un « système nerveux central » pour les flux de données : Kafka. De nombreux signaux en temps réel provenant des services et des applications mobiles sont diffusés via Kafka. C'est essentiel pour le ML opérationnel.
Vous ne pouvez pas détecter la fraude si vous savez seulement ce qui s'est passé hier. Vous devez savoir ce qui s'est passé au cours des 30 dernières secondes. Les data warehouses et les data lakes sont conçus pour le stockage à long terme des données historiques. Et au cours des dernières années, nous avons assisté à une adoption massive d'infrastructures de streaming, comme Kafka ou Kinesis, pour fournir aux applications des signaux en temps réel.
Chez Uber, chaque ingénieur a la possibilité d'apporter des modifications quotidiennes au système de production. Ce processus s'appuie sur le suivi et l'automatisation des principes DevOps. Avec Michelangelo, nous avons appliqué ces principes au ML opérationnel avant même que le processus ne soit appelé MLOps 🙂. Il était important pour nous que les data scientists puissent entraîner des modèles et les déployer en production en toute sécurité, et ce, littéralement en une seule journée.
En dehors d'Uber et bien au-delà de la Silicon Valley, nous avons constaté qu'un nombre croissant d'adopteurs précoces appliquent les principes du DevOps et l'automatisation non seulement à leur ingénierie logicielle, mais aussi à leurs équipes de Data Science via MLOps. Bien sûr, le ML est encore beaucoup plus difficile à mettre en œuvre que l'outil pour la plupart des entreprises, pour des raisons que j'ai exposées dans ce blog. Mais je suis convaincu que l'industrie se dirige progressivement vers un avenir dans lequel le data scientist typique d'une organisation Fortune 500 typique sera capable d'itérer sur un modèle de ML opérationnel plusieurs fois par jour.
Voici à quoi ressemble une architecture de données moderne qui permet le ML opérationnel :
Si votre organisation a procédé à certaines des modernisations mentionnées ci-dessus (ou si elle est partie de zéro !), vous êtes peut-être prêt à vous lancer dans le ML opérationnel.
En 2013, Uber n'utilisait pas le machine learning en production. Aujourd'hui, des dizaines de milliers de modèles sont en production. Ce changement ne s'est pas fait du jour au lendemain.
Si vous cherchez à tirer parti du ML opérationnel au sein de votre organisation, je vous recommande de suivre les étapes suivantes :
Tous les problèmes ne peuvent pas être résolus avec le ML. Critères pour un problème qui pourrait bien se prêter au ML :
Si ces éléments sont réunis, une application de machine learning peut prendre des décisions, apprendre de ces décisions et s'améliorer en continu.
Comme mentionné précédemment, le chemin pour mettre le premier modèle en production est difficile. Si les bénéfices futurs de votre première application de machine learning ne sont pas très prometteurs, il sera trop facile d'abandonner face aux difficultés. Les priorités changeront, la direction pourrait s'impatienter et l'effort ne durera pas. Choisissez un cas d'usage à fort potentiel.
La probabilité d'échec d'un projet augmente avec le nombre de transferts impliqués dans l'entraînement et le déploiement d'un modèle. Idéalement, startez avec une très petite équipe de 2 à 3 personnes qui a accès à toutes les données nécessaires, sait comment entraîner un modèle simple et est suffisamment familière avec votre stack de production pour mettre une application en production.
Les ingénieurs ML sont les mieux placés pour ouvrir la voie, étant donné qu'ils possèdent généralement une combinaison rare de compétences en Data Engineering, en génie logiciel et en Data Science. C'est aussi comment vous devriez monter en charge les équipes de machine learning, avec de petits groupes d'experts ML intégrés aux équipes produit.
