As Uber's new CEO, Dara Khosrowshahi, takes his place at the executive table, Uber engineers reveal how its machine-learning technology works
Machine-learning technology is very closely tied to search, location data, mapping, and delivery times. Search and so many applications now rely on this form of artificial intelligence.
Meet Michelangelo, Uber Technologies' machine-learning platform designed to manage data, train, evaluate, and deploy models, and to make and monitor predictions. The system also supports traditional machine-learning models, time series forecasting, and deep learning.
Uber has been using Michelangelo for about a year. Dozens of teams within the company build and deploy artificial intelligence (AI) models through this platform. It runs across several Uber data centers, leverages specialized hardware, and serves predictions for the highest-loaded online services, according to a post co-written by Jeremy Hermann, head of the machine-learning platform at Uber, and Mike Del Balso, product manager of machine learning at Uber.
Hermann and Del Balso reveal insights on Uber and how the machine-learning technology works and how Michelangelo is designed to address gaps in the way the company's data scientists and engineers design systems across Uber.
They explain that prior to Michelangelo, it was not possible to train models larger than what would fit on data scientists’ desktop machines, and there was no standard place to store the results of training experiments and no easy way to compare one experiment to another.
The company lacked an established path to deploying a model into production -- and in most cases, the relevant engineering team had to create a custom technology specific to the project.
The two use UberEATS as an example. UberEATS is an online meal ordering and delivery platform. The delivery model, based on machine learning, can predict how much time a meal will take to prepare and deliver before the order is issued and then again at each stage of the delivery process.
It goes like this: An UberEATS customer places an order that is sent to the restaurant. The restaurant acknowledges the order and prepares the meal. When the meal is nearly ready, an Uber delivery partner is dispatched to pick up the meal. The delivery person needs to get to the restaurant, find parking, walk inside to get the food and then back to the car, drive to the customer’s location, find parking, and walk to the customer’s door to complete the delivery.
The goal is to predict the total duration of this process, as well as to recalculate these time-to-delivery predictions at every step of the process, explains the post.
Michelangelo now predicts all this and more. It takes into consideration historic modeling, distance between locations, open parking locations during a specific time of day, and traffic. And calculates it in real time.
UberEATS data scientists use what they call "gradient boosted decision tree regression models" to predict the delivery time.
The predictions are displayed to UberEATS customers prior to ordering from a restaurant and as their meal is being prepared and delivered. You can read more about it here.