airbnb’s end-to-end machine learning infrastructure

69
Bighead Airbnb’s End-to-End Machine Learning Infrastructure Atul Kale and Xiaohan Zeng ML Infra @ Airbnb Strata Data NYC 2018

Upload: others

Post on 23-Feb-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Airbnb’s End-to-End Machine Learning Infrastructure

BigheadAirbnb’s End-to-End

Machine Learning Infrastructure

Atul Kale and Xiaohan ZengML Infra @ Airbnb

Strata Data NYC 2018

Page 2: Airbnb’s End-to-End Machine Learning Infrastructure

Background Design Goals ArchitectureDeep Dive

FutureWork

Page 3: Airbnb’s End-to-End Machine Learning Infrastructure

Background

Page 4: Airbnb’s End-to-End Machine Learning Infrastructure

Airbnb’s Mission:

“Create a world where anyone can belong anywhere”

Page 5: Airbnb’s End-to-End Machine Learning Infrastructure

Airbnb’s Product

A global travel community that offers magical end-to-end trips, including where you stay, what you do and the people you meet.

Page 6: Airbnb’s End-to-End Machine Learning Infrastructure

Airbnb is already driven by Machine Learning

Search Ranking Smart Pricing Fraud Detection

Page 7: Airbnb’s End-to-End Machine Learning Infrastructure

But there are *many* more opportunities for ML

● Paid Growth - Hosts

● Classifying / Categorizing Listings

● Experience Ranking + Personalization

● Room Type Categorizations

● Customer Service Ticket Routing

● Airbnb Plus

● Listing Photo Quality

● Object Detection - Amenities

● ....

Page 8: Airbnb’s End-to-End Machine Learning Infrastructure

Intrinsic Complexities with Machine Learning

● Understanding the business domain

● Selecting the appropriate Model

● Selecting the appropriate Features

● Fine tuning

Page 9: Airbnb’s End-to-End Machine Learning Infrastructure

Incidental Complexities with Machine Learning

● Integrating with Airbnb’s Data Warehouse

● Scaling model training & serving

● Keeping consistency between: Prototyping vs Production, Training vs Inference

● Keeping track of multiple models, versions, experiments

● Supporting iteration on ML models

→ ML models take on average 8 to 12 weeks to build

→ ML workflows tended to be slow, fragmented, and brittle

Page 10: Airbnb’s End-to-End Machine Learning Infrastructure

The ML Infrastructure Team addresses these challenges

Vision

Airbnb routinely ships ML-powered features

throughout the product.

Mission

Equip Airbnb with shared technology to build

production-ready ML applications with no

incidental complexity.

Page 11: Airbnb’s End-to-End Machine Learning Infrastructure

Atul KaleEngineering Manager

Varant ZanoyanSoftware Engineer

Andrew HohProduct Manager

John ParkSoftware Engineer

Patrick YoonSoftware Engineer

Xiaohan ZengSoftware Engineer

Nikhil SimhaSoftware Engineer

Alfredo LuqueSoftware Engineer

Evgeny ShapiroSoftware Engineer

Conglei ShiSoftware Engineer

Andrew CheongSoftware Engineer

Aaron SiegelEngineering Lead, Data Platform

Machine Learning Infrastructure Team

Page 12: Airbnb’s End-to-End Machine Learning Infrastructure

Supporting the Full ML Lifecycle

Page 13: Airbnb’s End-to-End Machine Learning Infrastructure

Bighead: Design Goals

Page 14: Airbnb’s End-to-End Machine Learning Infrastructure

Scalable

Seamless Versatile

Consistent

Page 15: Airbnb’s End-to-End Machine Learning Infrastructure

Seamless

● Easy to prototype, easy to productionize

● Same workflow across different frameworks

Page 16: Airbnb’s End-to-End Machine Learning Infrastructure

Versatile

● Supports all major ML frameworks

● Meets various requirements○ Online and Offline○ Data size○ SLA○ GPU training○ Scheduled and Ad hoc

Page 17: Airbnb’s End-to-End Machine Learning Infrastructure

Consistent

● Consistent environment across the stack

● Consistent data transformation

○ Prototyping and Production

○ Online and Offline

Page 18: Airbnb’s End-to-End Machine Learning Infrastructure

Scalable

● Horizontal

● Elastic

Page 19: Airbnb’s End-to-End Machine Learning Infrastructure

Bighead: Architecture Deep Dive

Page 20: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Feature Data Management: Zipline

Bighead Service / UI

Prototyping Lifecycle Management Production

Real Time Inference

Batch Training + Inference

Redspot

ML Automator

Airflow

Deep Thought

Page 21: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 22: Airbnb’s End-to-End Machine Learning Infrastructure

RedspotPrototyping with Jupyter Notebooks

Page 23: Airbnb’s End-to-End Machine Learning Infrastructure

Jupyter Notebooks?What are those?

“Creators need an immediate connection to what they are creating.”

- Bret Victor

Page 24: Airbnb’s End-to-End Machine Learning Infrastructure

● Interactivity and Feedback

● Access to Powerful Hardware

● Access to Data

The ideal Machine Learning development environment?

Page 25: Airbnb’s End-to-End Machine Learning Infrastructure

● A fork of the JupyterHub project

● Integrated with our Data Warehouse

● Access to specialized hardware (e.g. GPUs)

● File sharing between users via AWS EFS

● Packaged in a familiar Jupyterhub UI

Redspota Supercharged Jupyter Notebook Service

Page 26: Airbnb’s End-to-End Machine Learning Infrastructure

Redspot

Page 27: Airbnb’s End-to-End Machine Learning Infrastructure

Versatile

● Customized Hardware: AWS EC2 Instance Types e.g. P3, X1

● Customized Dependencies: Docker Images e.g. Py2.7, Py3.6+Tensorflow

Redspota Supercharged Jupyter Notebook Service

Consistent

● Promotes prototyping in the exact environment that your model will use in production

Seamless

● Integrated with Bighead Service & Docker Image Service via APIs & UI widgets

Page 28: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 29: Airbnb’s End-to-End Machine Learning Infrastructure

Docker Image ServiceEnvironment Customization

Page 30: Airbnb’s End-to-End Machine Learning Infrastructure

● ML Users have a diverse, heterogeneous set of dependencies

● Need an easy way to bootstrap their own runtime environments

● Need to be consistent with the rest of Airbnb’s infrastructure

Docker Image Service - Why

+

Page 31: Airbnb’s End-to-End Machine Learning Infrastructure

● Our configuration management solution

● A composition layer on top of Docker

● Includes a customization service that

faces our users

● Promotes Consistency and Versatility

Docker Image Service - Dependency Customization

Page 32: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 33: Airbnb’s End-to-End Machine Learning Infrastructure

Bighead ServiceModel Lifecycle Management

Page 34: Airbnb’s End-to-End Machine Learning Infrastructure

● Tracking ML model changes is just as

important as tracking code changes

● ML model work needs to be

reproducible to be sustainable

● Comparing experiments before you

launch models into production is critical

Model Lifecycle Management - why?

Page 35: Airbnb’s End-to-End Machine Learning Infrastructure
Page 36: Airbnb’s End-to-End Machine Learning Infrastructure
Page 38: Airbnb’s End-to-End Machine Learning Infrastructure

Seamless

● Context-aware visualizations that carry over from the prototyping experience

Bighead Service

Consistent

● Central model management service

● Single source of truth about the state of a model, it’s dependencies, and what’s deployed

Page 39: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 40: Airbnb’s End-to-End Machine Learning Infrastructure

Bighead Library

Page 41: Airbnb’s End-to-End Machine Learning Infrastructure

ML Models are highly heterogeneous in

Frameworks Training data

● Data quality

● Structured vs Unstructured (image, text)

Environment

● GPU vs CPU

● Dependencies

Page 42: Airbnb’s End-to-End Machine Learning Infrastructure

ML Models are hard to keep consistent

● Data in production is different from data in training

● Offline pipeline is different from online pipeline

● Everyone does everything in a different way

Page 43: Airbnb’s End-to-End Machine Learning Infrastructure

Versatile

● Pipeline on steroids - compute graph for preprocessing / inference / training / evaluation / visualization

● Composable, Reusable, Shareable

● Support popular frameworks

Bighead Library

Consistent

● Uniform API

● Serializable - same pipeline used in training, offline inference, online inference

● Fast primitives for preprocessing

● Metadata for trained models

Page 44: Airbnb’s End-to-End Machine Learning Infrastructure

Bighead Library: ML Pipeline

Page 45: Airbnb’s End-to-End Machine Learning Infrastructure

Visualization - Pipeline

Page 46: Airbnb’s End-to-End Machine Learning Infrastructure

Easy to Serialize/Deserialize

Page 47: Airbnb’s End-to-End Machine Learning Infrastructure

Visualization - Training Data

Page 48: Airbnb’s End-to-End Machine Learning Infrastructure

Visualization - Transformer

Page 49: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 50: Airbnb’s End-to-End Machine Learning Infrastructure

Deep ThoughtOnline Inference

Page 51: Airbnb’s End-to-End Machine Learning Infrastructure

Easy to do

● Data scientists can’t launch models without engineer team

● Engineers often need to rebuild models

Hard to make online model serving...

Scalable

● Resource requirements varies across models

● Throughput fluctuates across time

Consistent with training

● Different data

● Different pipeline

● Different dependencies

Page 52: Airbnb’s End-to-End Machine Learning Infrastructure

Seamless

● Integration with event logging, dashboard

● Integration with Zipline

Deep Thought

Consistent

● Docker + Bighead Library: Same data source, pipeline, environment from training

Scalable

● Kubernetes: Model pods can easily scale

● Resource segregation across models

Page 53: Airbnb’s End-to-End Machine Learning Infrastructure
Page 54: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 55: Airbnb’s End-to-End Machine Learning Infrastructure

ML AutomatorOffline Training and Batch Inference

Page 56: Airbnb’s End-to-End Machine Learning Infrastructure

Automated training, inference, and evaluation are necessary

● Scheduling

● Resource allocation

● Saving results

● Dashboards and alerts

● Orchestration

ML Automator - Why

Page 57: Airbnb’s End-to-End Machine Learning Infrastructure

Seamless

● Automate tasks via Airflow: Generate DAGs for training, inference, etc. with appropriate resources

● Integration with Zipline for training and scoring data

ML Automator

Consistent

● Docker + Bighead Library: Same data source, pipeline, environment across the stack

Scalable

● Spark: Distributed computing for large datasets

Page 58: Airbnb’s End-to-End Machine Learning Infrastructure

ML Automator

Page 59: Airbnb’s End-to-End Machine Learning Infrastructure

Execution Management: Bighead Library

Environment Management: Docker Image Service

Redspot

Feature Data Management: Zipline

Bighead Service / UI

Deep Thought

ML Automator

Prototyping Lifecycle Management Production

Airflow

Real Time Inference

Batch Training + Inference

Page 60: Airbnb’s End-to-End Machine Learning Infrastructure

ZiplineML Data Management Framework

Page 61: Airbnb’s End-to-End Machine Learning Infrastructure

Feature management is hard

● Inconsistent offline and online datasets

● Tricky to generate training sets that depend on time correctly

● Slow training sets backfill

● Inadequate data quality checks or monitoring

● Unclear feature ownership and sharing

Page 62: Airbnb’s End-to-End Machine Learning Infrastructure

For more information on Zipline, please come to our other talk

Zipline: Airbnb's Data Management Platform for Machine Learning

2:55pm - 1A 21/22

Page 63: Airbnb’s End-to-End Machine Learning Infrastructure

Big Summary

End-to-End platform to build and deploy ML models to production that is seamless, versatile, consistent, and scalable

● Model lifecycle management● Feature generation & management● Online & offline inference● Pipeline library supporting major frameworks● Docker image customization service● Multi-tenant training environment

Built on open source technology

● TensorFlow, PyTorch, Keras, MXNet, Scikit-learn, XGBoost● Spark, Jupyter, Kubernetes, Docker, Airflow

Page 64: Airbnb’s End-to-End Machine Learning Infrastructure

Future Works

Monitoring

● Feature distribution

● Model performance

BigQueue

● On demand compute service with heterogeneous resources

Page 65: Airbnb’s End-to-End Machine Learning Infrastructure

One more thing...

Page 66: Airbnb’s End-to-End Machine Learning Infrastructure

To be Open Sourced in Q1 2019

If you want to collaborate come talk to usor email [email protected]

Page 67: Airbnb’s End-to-End Machine Learning Infrastructure

Questions?

Page 68: Airbnb’s End-to-End Machine Learning Infrastructure

Appendix

Page 69: Airbnb’s End-to-End Machine Learning Infrastructure