Developers
June 19, 2020

Michelangelo, Uber’s Machine Learning service

A service built by Uber, for Uber. It helps the company develop efficient ML algorithms.
Source: Pixabay

Today we will talk about Uber’s focus on Machine Learning. It´s nothing new that Uber has been working closely on AI and ML. Uber's contribution to Machine Learning, is their service, Michelangelo.

What is the aim of this service? To democratize ML and scale AI so that everybody can request a ride. The service provides internal teams the ability to build, deploy, and use Machine Learning in the Uber environment.

The service works for a couple of purposes. The core purposes are: Managing data, training, evaluating data, deploying models, making predictions, and monitoring the predictions.

Uber's engineers and Data Scientists are already used to the system, as it has launched over 3 years ago. Over a dozen teams are building and deploying models with the use of this service. It is currently working across multiple Uber data centers.

Why did Uber build Michelangelo?

The main motivation behind building Michelangelo has been to match the size of the operations with the use of Machine learning models. Before this, engineers were using custom algorithms and teams were using complex systems to be able to model.

The engineers had no tool to build training and prediction data at the scale Uber needed it. It was working for small samples of data, but not even close to what they needed. Also, teams couldn’t store the results of their training experiments or compare them to other results easily.

The workflows in Michelangelo are standardized. What does this mean? That the tools across the teams use a system that allows users across the entire company to build and operate machine learning systems at scale.

The service started to be developed in 2015, the first thing that was tackled, the first challenge that was put in the spotlight to be solved, was to build a scalable model that could be trained. After that, the second goal was to build a better system to manage pipelines.

After ensuring that the architecture and the system were improved, the focus of the company on the service, was to improve developer´s productivity. The time taken from ideas to models was shortened big time.

Although the company uses Michelangelo for multiple use cases, today we will focus on the UberEats case. The service has been used and very successfully.

What does UberEats use Michelangelo for?

UberEats currently uses Michelangelo for multiple uses. Meal delivery time predictions, search rankings, searching autocompletion, restaurant rankings, among others. The most used model is the delivery time model, which predicts how much time a meal takes to be prepared and delivered.

The prediction of the estimated time of delivery looks simple in the UberEats app and fits neatly into the service. Well, that is not certainly the case in the eyes of the developer. Hundreds of hours have been spent developing the service. It is not simple as it doesn’t predict one single step. It predicts the whole process from the person ordering the meal being received.

The process is as follows: 

  1. The customer places an order to the restaurant
  2. The restaurant prepares the meal
  3. When the meal is close to be ready for pickup, a delivery partner is notified
  4. The delivery driver parks, pick up the order and goes to the customer's address
  5. Find parking, and deliver the product.

The Machine Learning model has to predict the time across all the steps combined. Every step is influenced by many factors. For example, in step 4, the time is calculated based on route and traffic.

The data scientists in the Michelangelo platform in the use case of UberEats, use several processes. One of them, is gradient boosted decision tree, regression models. These are used to predict the delivery time. That long name is the one that fits into solving the steps previously mentioned. It bases its prediction on multiple factors such as the distance, the locations, the recorded data such as average time to prepare a meal in the last seven days per orders, etc.

The results from the predictions are displayed at the application so that the user can see the estimated time of arrival, before delivery and while it is being delivered.

In conclusion, Michelangelo, a Machine Learning service built by Uber and Uber helps the company fulfill its needs by the use of ML. Before developing this service, the company had no tools to develop training and prediction services at scale. They could do it and they were doing it, but the services they used didn't match the huge amounts of data that were being collected and needed to be used for efficiency. Michelangelo is used for several cases, but mostly used by UberEats. It helps calculate the Estimated time of arrival of orders by the use of ML algorithms. Michelangelo helped the company match their operations with the need for the machine learning models.

TagsMachine LearningAIUber
Lucas Bonder
Technical Writer
Lucas is an Entrepreneur, Web Developer, and Article Writer about Technology.

Related Articles

Back
DevelopersJune 19, 2020
Michelangelo, Uber’s Machine Learning service
A service built by Uber, for Uber. It helps the company develop efficient ML algorithms.

Today we will talk about Uber’s focus on Machine Learning. It´s nothing new that Uber has been working closely on AI and ML. Uber's contribution to Machine Learning, is their service, Michelangelo.

What is the aim of this service? To democratize ML and scale AI so that everybody can request a ride. The service provides internal teams the ability to build, deploy, and use Machine Learning in the Uber environment.

The service works for a couple of purposes. The core purposes are: Managing data, training, evaluating data, deploying models, making predictions, and monitoring the predictions.

Uber's engineers and Data Scientists are already used to the system, as it has launched over 3 years ago. Over a dozen teams are building and deploying models with the use of this service. It is currently working across multiple Uber data centers.

Why did Uber build Michelangelo?

The main motivation behind building Michelangelo has been to match the size of the operations with the use of Machine learning models. Before this, engineers were using custom algorithms and teams were using complex systems to be able to model.

The engineers had no tool to build training and prediction data at the scale Uber needed it. It was working for small samples of data, but not even close to what they needed. Also, teams couldn’t store the results of their training experiments or compare them to other results easily.

The workflows in Michelangelo are standardized. What does this mean? That the tools across the teams use a system that allows users across the entire company to build and operate machine learning systems at scale.

The service started to be developed in 2015, the first thing that was tackled, the first challenge that was put in the spotlight to be solved, was to build a scalable model that could be trained. After that, the second goal was to build a better system to manage pipelines.

After ensuring that the architecture and the system were improved, the focus of the company on the service, was to improve developer´s productivity. The time taken from ideas to models was shortened big time.

Although the company uses Michelangelo for multiple use cases, today we will focus on the UberEats case. The service has been used and very successfully.

What does UberEats use Michelangelo for?

UberEats currently uses Michelangelo for multiple uses. Meal delivery time predictions, search rankings, searching autocompletion, restaurant rankings, among others. The most used model is the delivery time model, which predicts how much time a meal takes to be prepared and delivered.

The prediction of the estimated time of delivery looks simple in the UberEats app and fits neatly into the service. Well, that is not certainly the case in the eyes of the developer. Hundreds of hours have been spent developing the service. It is not simple as it doesn’t predict one single step. It predicts the whole process from the person ordering the meal being received.

The process is as follows: 

  1. The customer places an order to the restaurant
  2. The restaurant prepares the meal
  3. When the meal is close to be ready for pickup, a delivery partner is notified
  4. The delivery driver parks, pick up the order and goes to the customer's address
  5. Find parking, and deliver the product.

The Machine Learning model has to predict the time across all the steps combined. Every step is influenced by many factors. For example, in step 4, the time is calculated based on route and traffic.

The data scientists in the Michelangelo platform in the use case of UberEats, use several processes. One of them, is gradient boosted decision tree, regression models. These are used to predict the delivery time. That long name is the one that fits into solving the steps previously mentioned. It bases its prediction on multiple factors such as the distance, the locations, the recorded data such as average time to prepare a meal in the last seven days per orders, etc.

The results from the predictions are displayed at the application so that the user can see the estimated time of arrival, before delivery and while it is being delivered.

In conclusion, Michelangelo, a Machine Learning service built by Uber and Uber helps the company fulfill its needs by the use of ML. Before developing this service, the company had no tools to develop training and prediction services at scale. They could do it and they were doing it, but the services they used didn't match the huge amounts of data that were being collected and needed to be used for efficiency. Michelangelo is used for several cases, but mostly used by UberEats. It helps calculate the Estimated time of arrival of orders by the use of ML algorithms. Michelangelo helped the company match their operations with the need for the machine learning models.

Machine Learning
AI
Uber
About the author
Lucas Bonder -Technical Writer
Lucas is an Entrepreneur, Web Developer, and Article Writer about Technology.

Related Articles