SlideShare a Scribd company logo
Willump: A Statistically-Aware
End-to-end Optimizer for ML
Inference
Peter Kraft, Daniel Kang, Deepak Narayanan, Shoumik Palkar,
Peter Bailis, Matei Zaharia
Stanford University
Problem: ML Inference
● Often performance-critical.
● Recent focus on tools for ML prediction serving.
2
A Common Bottleneck: Feature Computation
3
● Many applications bottlenecked by
feature computation.
● Pipeline of transformations computes
numerical features from data for model.
Receive Raw
Data
Compute
Features
Predict With
Model
A Common Bottleneck: Feature Computation
4
● Feature computation is bottleneck when models are
inexpensive—boosted trees, not DNNs.
● Common on tabular/structured data!
A Common Bottleneck: Feature Computation
Source: Pretzel (OSDI ‘18)
Feature computation takes >99% of the time!
Production Microsoft sentiment analysis pipeline
Model run
time
5
Current State-of-the-art
● Apply traditional serving optimizations, e.g. caching
(Clipper), compiler optimizations (Pretzel).
● Neglect unique statistical properties of ML apps.
6
Statistical Properties of ML
Amenability to approximation
7
Statistical Properties of ML
Amenability to approximation
8
Easy input:
Definitely not
a dog.
Hard input:
Maybe a
dog?
Statistical Properties of ML
Amenability to approximation
Existing Systems: Use Expensive Model for Both
9
Easy input:
Definitely not
a dog.
Hard input:
Maybe a
dog?
Statistical Properties of ML
Amenability to approximation
Statistically-Aware Systems: Use cheap model on bucket,
expensive model on cat. 10
Easy input:
Definitely not
a dog.
Hard input:
Maybe a
dog?
Statistical Properties of ML
● Model is often part of a bigger app (e.g. top-K query)
11
Statistical Properties of ML
● Model is often part of a bigger app (e.g. top-K query)
12
Artist Score Rank
Beatles 9.7 1
Bruce Springsteen 9.5 2
… … …
Justin Bieber 5.6 999
Nickelback 4.1 1000
Problem:
Return top
10 artists.
Statistical Properties of ML
● Model is often part of a bigger app (e.g. top-K query)
13
Artist Score Rank
Beatles 9.7 1
Bruce Springsteen 9.5 2
… … …
Justin Bieber 5.6 999
Nickelback 4.1 1000
Use
expensive
model for
everything!
Existing Systems
Statistical Properties of ML
● Model is often part of a bigger app (e.g. top-K query)
14
Artist Score Rank
Beatles 9.7 1
Bruce Springsteen 9.5 2
… … …
Justin Bieber 5.6 999
Nickelback 4.1 1000
High-value:
Rank precisely,
return.
Low-value:
Approximate,
discard.
Statistically-aware Systems
Prior Work: Statistically-Aware Optimizations
● Statistically-aware optimizations exist in literature.
● Always application-specific and custom-built.
● Never automatic!
15
Source:
Cheng et al.
(DLRS’ 16),
Kang et al.
(VLDB ‘17)
ML Inference Dilemna
● ML inference systems:
○ Easy to use.
○ Slow.
● Statistically-aware systems:
○ Fast
○ Require a lot of work to implement.
16
Can an ML inference system be fast and easy to use?
17
Willump: Overview
● Statistically-aware optimizer for ML Inference.
● Targets feature computation!
● Automatic model-agnostic statistically-aware opts.
● 10x throughput+latency improvements.
18
Outline
19
● System Overview
● Optimization 1: End-to-end Cascades
● Optimization 2: Top-K Query Approximation
● Evaluation
Willump: Goals
● Automatically maximize performance of ML inference
applications whose performance bottleneck is feature
computation
20
def pipeline(x1, x2):
input = lib.transform(x1, x2)
preds = model.predict(input)
return preds
System Overview
Input Pipeline
def pipeline(x1, x2):
input = lib.transform(x1, x2)
preds = model.predict(input)
return preds
Willump Optimization
Infer Transformation
Graph
System Overview
Input Pipeline
23
def pipeline(x1, x2):
input = lib.transform(x1, x2)
preds = model.predict(input)
return preds
Willump Optimization
Infer Transformation
Graph
Statistically-Aware Optimizations:
1. End-To-End Cascades
2. Top-K Query Approximation
System Overview
Input Pipeline
24
def pipeline(x1, x2):
input = lib.transform(x1, x2)
preds = model.predict(input)
return preds
Willump Optimization
Infer Transformation
Graph
Compiler Optimizations
(Weld—Palkar et al. VLDB ‘18)
System Overview
Input Pipeline
Statistically-Aware Optimizations:
1. End-To-End Cascades
2. Top-K Query Approximation
25
def pipeline(x1, x2):
input = lib.transform(x1, x2)
preds = model.predict(input)
return preds
Willump Optimization
Infer Transformation
Graph
Compiler Optimizations
(Weld—Palkar et al. VLDB ‘18)
def willump_pipeline(x1, x2):
preds = compiled_code(x1, x2)
return preds
Optimized Pipeline
System Overview
Input Pipeline
Statistically-Aware Optimizations:
1. End-To-End Cascades
2. Top-K Query Approximation
Outline
26
● System Overview
● Optimization 1: End-to-end Cascades
● Optimization 2: Top-K Query Approximation
● Evaluation
Background: Model Cascades
● Classify “easy” inputs with cheap model.
● Cascade to expensive model for “hard” inputs.
27
Easy input:
Definitely not
a dog.
Hard input:
Maybe a
dog?
Background: Model Cascades
● Used for image classification, object detection.
● Existing systems application-specific and custom-built.
28
Source:
Viola-Jones
(CVPR’ 01),
Kang et al.
(VLDB ‘17)
Our Optimization: End-to-end cascades
● Compute only some features for “easy” data inputs;
cascade to computing all for “hard” inputs.
● Automatic and model-agnostic, unlike prior work.
○ Estimates for runtime performance & accuracy of a feature set
○ Efficient search process for tuning parameters
29
End-to-end Cascades: Original Model
Compute
All Features
Model
Prediction
Cascades
Optimization
End-to-end Cascades: Approximate Model
Compute
All Features
Model
Prediction
Compute Selected Features
Approximate Model
Prediction
Cascades
Optimization
End-to-end Cascades: Confidence
Compute
All Features
Model
Prediction
Compute Selected Features
Approximate Model
Prediction
Confidence > Threshold
Yes
Cascades
Optimization
End-to-end Cascades: Final Pipeline
Compute
All Features
Model
Prediction
Compute Selected Features
Compute Remaining Features
Approximate Model
Prediction
Original Model
Confidence > Threshold
Yes No
End-to-end Cascades: Constructing Cascades
34
● Construct cascades during model training.
● Need model training set and an accuracy target.
End-to-end Cascades: Selecting Features
Compute Selected Features
Compute Remaining Features
Approximate Model
Prediction
Original Model
Confidence > Threshold
Yes No
Key question:
Select which
features?
End-to-end Cascades: Selecting Features
36
● Goal: Select features that minimize expected query time
given accuracy target.
End-to-end Cascades: Selecting Features
Compute Selected Features
Compute Remaining Features
Approximate Model
Prediction
Original Model
Confidence > Threshold
Yes No
Two possibilities for a query: Can approximate or not.
Can approximate
query.
Can’t approximate
query.
End-to-end Cascades: Selecting Features
Compute Selected Features (S)
Approximate Model
Prediction
Confidence > Threshold
YesP(Yes) = P(approx)
cost(𝑆)
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
End-to-end Cascades: Selecting Features
Compute Selected Features (S)
Compute Remaining Features
Approximate Model
Prediction
Original Model
Confidence > Threshold
No P(No) = P(~approx)
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
cost(𝐹)
End-to-end Cascades: Selecting Features
Compute Selected Features (S)
Compute Remaining Features
Approximate Model
Prediction
Original Model
Confidence > Threshold
Yes NoP(Yes) = P(approx) P(No) = P(~approx)
cost(𝑆)
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
cost(𝐹)
End-to-end Cascades: Selecting Features
41
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
End-to-end Cascades: Selecting Features
42
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑺).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
43
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
44
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
45
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
46
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑺).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
47
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
48
● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
End-to-end Cascades: Selecting Features
49
● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Find S maximizing approximate model accuracy.
End-to-end Cascades: Selecting Features
50
● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Find S maximizing approximate model accuracy.
○ Problem: Computing accuracy expensive.
End-to-end Cascades: Selecting Features
51
● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Find S maximizing approximate model accuracy.
○ Problem: Computing accuracy expensive.
○ Solution: Estimate accuracy via permutation
importance -> knapsack problem.
End-to-end Cascades: Selecting Features
52
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Selecting Features
53
● Subgoal: Train model & find cascade threshold for S.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Compute empirically on held-out data.
End-to-end Cascades: Selecting Features
54
● Subgoal: Train model & find cascade threshold for S.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Compute empirically on held-out data.
○ Train approximate model from S.
End-to-end Cascades: Selecting Features
55
● Subgoal: Train model & find cascade threshold for S.
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Solution:
○ Compute empirically on held-out data.
○ Train approximate model from S.
○ Predict held-out set, determine cascade threshold
empirically using accuracy target.
End-to-end Cascades: Selecting Features
56
● Goal: Select feature set S that minimizes query time:
min
𝑆
𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
● Approach:
○ Choose several potential values of cost(𝑆).
○ Find best feature set with each cost(S).
○ Train model & find cascade threshold for each set.
○ Pick best overall.
End-to-end Cascades: Results
57
● Speedups of up to 5x without statistically significant
accuracy loss.
● Full evaluation at end of talk!
Outline
58
● System Overview
● Optimization 1: End-to-end Cascades
● Optimization 2: Top-K Query Approximation
● Evaluation
Top-K Approximation: Query Overview
● Top-K problem: Rank K highest-scoring items of a
dataset.
● Top-K example: Find 10 artists a user would like most
(recommender system).
59
Top-K Approximation: Asymmetry
60
● High-value items must be predicted, ranked precisely.
● Low-value items need only be identified as low value.
Artist Score Rank
Beatles 9.7 1
Bruce Springsteen 9.5 2
… … …
Justin Bieber 5.6 999
Nickelback 4.1 1000
High-value:
Rank precisely,
return.
Low-value:
Approximate,
discard.
Top-K Approximation: How it Works
● Use approximate model to identify and discard low-
value items.
● Rank high-value items with powerful model.
61
Top-K Approximation: Prior Work
● Existing systems have similar ideas.
● However, we automatically generate approximate
models for any ML application—prior systems don’t.
● Similar challenges as in cascades.
62
Source:
Cheng et al.
(DLRS ‘16)
Top-K Approximation: Automatic Tuning
● Automatically selects features, tunes parameters to
maximize performance given accuracy target.
● Works similarly to cascades.
● See paper for details!
63
Top-K Approximation: Results
64
● Speedups of up to 10x for top-K queries.
● Full eval at end of talk!
Outline
65
● System Overview
● Optimization 1: End-to-end Cascades
● Optimization 2: Top-K Query Approximation
● Evaluation
Willump Evaluation: Benchmarks
● Benchmarks curated from top-performing entries to
data science competitions (e.g. Kaggle, WSDM, CIKM).
● Three benchmarks in presentation (more in paper):
○ Music (music recommendation– queries remotely stored
precomputed features)
○ Purchase (predict next purchase, tabular AutoML features)
○ Toxic (toxic comment detection – computes string features)
66
End-to-End Cascades Evaluation: Throughput
67
15x
1.6x1x1x
2.4x
3.2x
68
End-to-End Cascades Evaluation: Latency
Top-K Query Approximation Evaluation
69
4.0x
1x
2.7x
1x
3.2x
30x
Statistical nature of ML enables new
optimizations: Willump applies them
automatically for 10x speedups.
github.com/stanford-futuredata/Willump
Summary
Summary
Ad

More Related Content

What's hot (20)

Scalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Scalable Acceleration of XGBoost Training on Apache Spark GPU ClustersScalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Scalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Databricks
 
Spark Summit EU talk by Elena Lazovik
Spark Summit EU talk by Elena LazovikSpark Summit EU talk by Elena Lazovik
Spark Summit EU talk by Elena Lazovik
Spark Summit
 
Scaling Machine Learning To Billions Of Parameters
Scaling Machine Learning To Billions Of ParametersScaling Machine Learning To Billions Of Parameters
Scaling Machine Learning To Billions Of Parameters
Jen Aman
 
Choose Your Weapon: Comparing Spark on FPGAs vs GPUs
Choose Your Weapon: Comparing Spark on FPGAs vs GPUsChoose Your Weapon: Comparing Spark on FPGAs vs GPUs
Choose Your Weapon: Comparing Spark on FPGAs vs GPUs
Databricks
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van Hovell
Spark Summit
 
Spark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit EU talk by Mikhail Semeniuk Hollin WilkinsSpark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit
 
Spark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit EU talk by Kent Buenaventura and Willaim LauSpark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Databricks
 
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence SpracklenSpark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Summit
 
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad FeinbergSpark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit
 
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflowImproving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Databricks
 
Scalable Deep Learning Platform On Spark In Baidu
Scalable Deep Learning Platform On Spark In BaiduScalable Deep Learning Platform On Spark In Baidu
Scalable Deep Learning Platform On Spark In Baidu
Jen Aman
 
Cloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Cloud-Native Apache Spark Scheduling with YuniKorn SchedulerCloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Cloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Databricks
 
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Spark Summit
 
Spark Summit EU talk by Sital Kedia
Spark Summit EU talk by Sital KediaSpark Summit EU talk by Sital Kedia
Spark Summit EU talk by Sital Kedia
Spark Summit
 
Spark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef HabdankSpark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef Habdank
Spark Summit
 
Extending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySparkExtending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySpark
Databricks
 
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Databricks
 
Operationalize Apache Spark Analytics
Operationalize Apache Spark AnalyticsOperationalize Apache Spark Analytics
Operationalize Apache Spark Analytics
Databricks
 
Spark Summit EU talk by Heiko Korndorf
Spark Summit EU talk by Heiko KorndorfSpark Summit EU talk by Heiko Korndorf
Spark Summit EU talk by Heiko Korndorf
Spark Summit
 
Scalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Scalable Acceleration of XGBoost Training on Apache Spark GPU ClustersScalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Scalable Acceleration of XGBoost Training on Apache Spark GPU Clusters
Databricks
 
Spark Summit EU talk by Elena Lazovik
Spark Summit EU talk by Elena LazovikSpark Summit EU talk by Elena Lazovik
Spark Summit EU talk by Elena Lazovik
Spark Summit
 
Scaling Machine Learning To Billions Of Parameters
Scaling Machine Learning To Billions Of ParametersScaling Machine Learning To Billions Of Parameters
Scaling Machine Learning To Billions Of Parameters
Jen Aman
 
Choose Your Weapon: Comparing Spark on FPGAs vs GPUs
Choose Your Weapon: Comparing Spark on FPGAs vs GPUsChoose Your Weapon: Comparing Spark on FPGAs vs GPUs
Choose Your Weapon: Comparing Spark on FPGAs vs GPUs
Databricks
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van Hovell
Spark Summit
 
Spark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit EU talk by Mikhail Semeniuk Hollin WilkinsSpark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit EU talk by Mikhail Semeniuk Hollin Wilkins
Spark Summit
 
Spark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit EU talk by Kent Buenaventura and Willaim LauSpark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit EU talk by Kent Buenaventura and Willaim Lau
Spark Summit
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Databricks
 
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence SpracklenSpark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Autotuning: Spark Summit East talk by Lawrence Spracklen
Spark Summit
 
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad FeinbergSpark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit
 
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflowImproving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Improving the Life of Data Scientists: Automating ML Lifecycle through MLflow
Databricks
 
Scalable Deep Learning Platform On Spark In Baidu
Scalable Deep Learning Platform On Spark In BaiduScalable Deep Learning Platform On Spark In Baidu
Scalable Deep Learning Platform On Spark In Baidu
Jen Aman
 
Cloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Cloud-Native Apache Spark Scheduling with YuniKorn SchedulerCloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Cloud-Native Apache Spark Scheduling with YuniKorn Scheduler
Databricks
 
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Spark Summit
 
Spark Summit EU talk by Sital Kedia
Spark Summit EU talk by Sital KediaSpark Summit EU talk by Sital Kedia
Spark Summit EU talk by Sital Kedia
Spark Summit
 
Spark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef HabdankSpark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef Habdank
Spark Summit
 
Extending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySparkExtending Machine Learning Algorithms with PySpark
Extending Machine Learning Algorithms with PySpark
Databricks
 
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Deep Learning with DL4J on Apache Spark: Yeah it’s Cool, but are You Doing it...
Databricks
 
Operationalize Apache Spark Analytics
Operationalize Apache Spark AnalyticsOperationalize Apache Spark Analytics
Operationalize Apache Spark Analytics
Databricks
 
Spark Summit EU talk by Heiko Korndorf
Spark Summit EU talk by Heiko KorndorfSpark Summit EU talk by Heiko Korndorf
Spark Summit EU talk by Heiko Korndorf
Spark Summit
 

Similar to Willump: Optimizing Feature Computation in ML Inference (20)

Using Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning ModelsUsing Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning Models
SigOpt
 
Using Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning ModelsUsing Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning Models
Scott Clark
 
FlinkML - Big data application meetup
FlinkML - Big data application meetupFlinkML - Big data application meetup
FlinkML - Big data application meetup
Theodoros Vasiloudis
 
Production ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ wazeProduction ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ waze
Ido Shilon
 
CD in Machine Learning Systems
CD in Machine Learning SystemsCD in Machine Learning Systems
CD in Machine Learning Systems
Thoughtworks
 
Build machine learning pipelines from research to production
Build machine learning pipelines from research to productionBuild machine learning pipelines from research to production
Build machine learning pipelines from research to production
cnvrg.io AI OS - Hands-on ML Workshops
 
Productionalizing Spark ML
Productionalizing Spark MLProductionalizing Spark ML
Productionalizing Spark ML
datamantra
 
Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Taking your machine learning workflow to the next level using Scikit-Learn Pi...Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Philip Goddard
 
Customer choice probabilities
Customer choice probabilitiesCustomer choice probabilities
Customer choice probabilities
Allan D. Butler
 
The Power of Auto ML and How Does it Work
The Power of Auto ML and How Does it WorkThe Power of Auto ML and How Does it Work
The Power of Auto ML and How Does it Work
Ivo Andreev
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Philip Goddard
 
When Should I Use Simulation?
When Should I Use Simulation?When Should I Use Simulation?
When Should I Use Simulation?
SIMUL8 Corporation
 
Pycon 2012 Scikit-Learn
Pycon 2012 Scikit-LearnPycon 2012 Scikit-Learn
Pycon 2012 Scikit-Learn
Anoop Thomas Mathew
 
Holistic data application quality
Holistic data application qualityHolistic data application quality
Holistic data application quality
Lars Albertsson
 
General Tips for participating Kaggle Competitions
General Tips for participating Kaggle CompetitionsGeneral Tips for participating Kaggle Competitions
General Tips for participating Kaggle Competitions
Mark Peng
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
Theodoros Vasiloudis
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
PyData
 
Automated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and TrackingAutomated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and Tracking
Databricks
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
ScyllaDB
 
Advanced Hyperparameter Optimization for Deep Learning with MLflow
Advanced Hyperparameter Optimization for Deep Learning with MLflowAdvanced Hyperparameter Optimization for Deep Learning with MLflow
Advanced Hyperparameter Optimization for Deep Learning with MLflow
Databricks
 
Using Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning ModelsUsing Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning Models
SigOpt
 
Using Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning ModelsUsing Bayesian Optimization to Tune Machine Learning Models
Using Bayesian Optimization to Tune Machine Learning Models
Scott Clark
 
FlinkML - Big data application meetup
FlinkML - Big data application meetupFlinkML - Big data application meetup
FlinkML - Big data application meetup
Theodoros Vasiloudis
 
Production ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ wazeProduction ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ waze
Ido Shilon
 
CD in Machine Learning Systems
CD in Machine Learning SystemsCD in Machine Learning Systems
CD in Machine Learning Systems
Thoughtworks
 
Productionalizing Spark ML
Productionalizing Spark MLProductionalizing Spark ML
Productionalizing Spark ML
datamantra
 
Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Taking your machine learning workflow to the next level using Scikit-Learn Pi...Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Taking your machine learning workflow to the next level using Scikit-Learn Pi...
Philip Goddard
 
Customer choice probabilities
Customer choice probabilitiesCustomer choice probabilities
Customer choice probabilities
Allan D. Butler
 
The Power of Auto ML and How Does it Work
The Power of Auto ML and How Does it WorkThe Power of Auto ML and How Does it Work
The Power of Auto ML and How Does it Work
Ivo Andreev
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Philip Goddard
 
Holistic data application quality
Holistic data application qualityHolistic data application quality
Holistic data application quality
Lars Albertsson
 
General Tips for participating Kaggle Competitions
General Tips for participating Kaggle CompetitionsGeneral Tips for participating Kaggle Competitions
General Tips for participating Kaggle Competitions
Mark Peng
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
Theodoros Vasiloudis
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
PyData
 
Automated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and TrackingAutomated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and Tracking
Databricks
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
ScyllaDB
 
Advanced Hyperparameter Optimization for Deep Learning with MLflow
Advanced Hyperparameter Optimization for Deep Learning with MLflowAdvanced Hyperparameter Optimization for Deep Learning with MLflow
Advanced Hyperparameter Optimization for Deep Learning with MLflow
Databricks
 
Ad

More from Databricks (20)

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
Ad

Recently uploaded (20)

Voice Control robotic arm hggyghghgjgjhgjg
Voice Control robotic arm hggyghghgjgjhgjgVoice Control robotic arm hggyghghgjgjhgjg
Voice Control robotic arm hggyghghgjgjhgjg
4mg22ec401
 
How to regulate and control your it-outsourcing provider with process mining
How to regulate and control your it-outsourcing provider with process miningHow to regulate and control your it-outsourcing provider with process mining
How to regulate and control your it-outsourcing provider with process mining
Process mining Evangelist
 
Process Mining as Enabler for Digital Transformations
Process Mining as Enabler for Digital TransformationsProcess Mining as Enabler for Digital Transformations
Process Mining as Enabler for Digital Transformations
Process mining Evangelist
 
hersh's midterm project.pdf music retail and distribution
hersh's midterm project.pdf music retail and distributionhersh's midterm project.pdf music retail and distribution
hersh's midterm project.pdf music retail and distribution
hershtara1
 
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
muhammed84essa
 
Fundamentals of Data Analysis, its types, tools, algorithms
Fundamentals of Data Analysis, its types, tools, algorithmsFundamentals of Data Analysis, its types, tools, algorithms
Fundamentals of Data Analysis, its types, tools, algorithms
priyaiyerkbcsc
 
Agricultural_regionalisation_in_India(Final).pptx
Agricultural_regionalisation_in_India(Final).pptxAgricultural_regionalisation_in_India(Final).pptx
Agricultural_regionalisation_in_India(Final).pptx
mostafaahammed38
 
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
disnakertransjabarda
 
How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?
Process mining Evangelist
 
Transforming health care with ai powered
Transforming health care with ai poweredTransforming health care with ai powered
Transforming health care with ai powered
gowthamarvj
 
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdfTOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
NhiV747372
 
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
bastakwyry
 
Automation Platforms and Process Mining - success story
Automation Platforms and Process Mining - success storyAutomation Platforms and Process Mining - success story
Automation Platforms and Process Mining - success story
Process mining Evangelist
 
CS-404 COA COURSE FILE JAN JUN 2025.docx
CS-404 COA COURSE FILE JAN JUN 2025.docxCS-404 COA COURSE FILE JAN JUN 2025.docx
CS-404 COA COURSE FILE JAN JUN 2025.docx
nidarizvitit
 
Time series for yotube_1_data anlysis.pdf
Time series for yotube_1_data anlysis.pdfTime series for yotube_1_data anlysis.pdf
Time series for yotube_1_data anlysis.pdf
asmaamahmoudsaeed
 
Feature Engineering for Electronic Health Record Systems
Feature Engineering for Electronic Health Record SystemsFeature Engineering for Electronic Health Record Systems
Feature Engineering for Electronic Health Record Systems
Process mining Evangelist
 
Controlling Financial Processes at a Municipality
Controlling Financial Processes at a MunicipalityControlling Financial Processes at a Municipality
Controlling Financial Processes at a Municipality
Process mining Evangelist
 
Lagos School of Programming Final Project Updated.pdf
Lagos School of Programming Final Project Updated.pdfLagos School of Programming Final Project Updated.pdf
Lagos School of Programming Final Project Updated.pdf
benuju2016
 
Dynamics 365 Business Rules Dynamics Dynamics
Dynamics 365 Business Rules Dynamics DynamicsDynamics 365 Business Rules Dynamics Dynamics
Dynamics 365 Business Rules Dynamics Dynamics
heyoubro69
 
AI ------------------------------ W1L2.pptx
AI ------------------------------ W1L2.pptxAI ------------------------------ W1L2.pptx
AI ------------------------------ W1L2.pptx
AyeshaJalil6
 
Voice Control robotic arm hggyghghgjgjhgjg
Voice Control robotic arm hggyghghgjgjhgjgVoice Control robotic arm hggyghghgjgjhgjg
Voice Control robotic arm hggyghghgjgjhgjg
4mg22ec401
 
How to regulate and control your it-outsourcing provider with process mining
How to regulate and control your it-outsourcing provider with process miningHow to regulate and control your it-outsourcing provider with process mining
How to regulate and control your it-outsourcing provider with process mining
Process mining Evangelist
 
Process Mining as Enabler for Digital Transformations
Process Mining as Enabler for Digital TransformationsProcess Mining as Enabler for Digital Transformations
Process Mining as Enabler for Digital Transformations
Process mining Evangelist
 
hersh's midterm project.pdf music retail and distribution
hersh's midterm project.pdf music retail and distributionhersh's midterm project.pdf music retail and distribution
hersh's midterm project.pdf music retail and distribution
hershtara1
 
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
CERTIFIED BUSINESS ANALYSIS PROFESSIONAL™
muhammed84essa
 
Fundamentals of Data Analysis, its types, tools, algorithms
Fundamentals of Data Analysis, its types, tools, algorithmsFundamentals of Data Analysis, its types, tools, algorithms
Fundamentals of Data Analysis, its types, tools, algorithms
priyaiyerkbcsc
 
Agricultural_regionalisation_in_India(Final).pptx
Agricultural_regionalisation_in_India(Final).pptxAgricultural_regionalisation_in_India(Final).pptx
Agricultural_regionalisation_in_India(Final).pptx
mostafaahammed38
 
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
indonesia-gen-z-report-2024 Gen Z (born between 1997 and 2012) is currently t...
disnakertransjabarda
 
How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?How to Set Up Process Mining in a Decentralized Organization?
How to Set Up Process Mining in a Decentralized Organization?
Process mining Evangelist
 
Transforming health care with ai powered
Transforming health care with ai poweredTransforming health care with ai powered
Transforming health care with ai powered
gowthamarvj
 
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdfTOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
TOAE201-Slides-Chapter 4. Sample theoretical basis (1).pdf
NhiV747372
 
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
2-Raction quotient_١٠٠١٤٦.ppt of physical chemisstry
bastakwyry
 
Automation Platforms and Process Mining - success story
Automation Platforms and Process Mining - success storyAutomation Platforms and Process Mining - success story
Automation Platforms and Process Mining - success story
Process mining Evangelist
 
CS-404 COA COURSE FILE JAN JUN 2025.docx
CS-404 COA COURSE FILE JAN JUN 2025.docxCS-404 COA COURSE FILE JAN JUN 2025.docx
CS-404 COA COURSE FILE JAN JUN 2025.docx
nidarizvitit
 
Time series for yotube_1_data anlysis.pdf
Time series for yotube_1_data anlysis.pdfTime series for yotube_1_data anlysis.pdf
Time series for yotube_1_data anlysis.pdf
asmaamahmoudsaeed
 
Feature Engineering for Electronic Health Record Systems
Feature Engineering for Electronic Health Record SystemsFeature Engineering for Electronic Health Record Systems
Feature Engineering for Electronic Health Record Systems
Process mining Evangelist
 
Controlling Financial Processes at a Municipality
Controlling Financial Processes at a MunicipalityControlling Financial Processes at a Municipality
Controlling Financial Processes at a Municipality
Process mining Evangelist
 
Lagos School of Programming Final Project Updated.pdf
Lagos School of Programming Final Project Updated.pdfLagos School of Programming Final Project Updated.pdf
Lagos School of Programming Final Project Updated.pdf
benuju2016
 
Dynamics 365 Business Rules Dynamics Dynamics
Dynamics 365 Business Rules Dynamics DynamicsDynamics 365 Business Rules Dynamics Dynamics
Dynamics 365 Business Rules Dynamics Dynamics
heyoubro69
 
AI ------------------------------ W1L2.pptx
AI ------------------------------ W1L2.pptxAI ------------------------------ W1L2.pptx
AI ------------------------------ W1L2.pptx
AyeshaJalil6
 

Willump: Optimizing Feature Computation in ML Inference

  • 1. Willump: A Statistically-Aware End-to-end Optimizer for ML Inference Peter Kraft, Daniel Kang, Deepak Narayanan, Shoumik Palkar, Peter Bailis, Matei Zaharia Stanford University
  • 2. Problem: ML Inference ● Often performance-critical. ● Recent focus on tools for ML prediction serving. 2
  • 3. A Common Bottleneck: Feature Computation 3 ● Many applications bottlenecked by feature computation. ● Pipeline of transformations computes numerical features from data for model. Receive Raw Data Compute Features Predict With Model
  • 4. A Common Bottleneck: Feature Computation 4 ● Feature computation is bottleneck when models are inexpensive—boosted trees, not DNNs. ● Common on tabular/structured data!
  • 5. A Common Bottleneck: Feature Computation Source: Pretzel (OSDI ‘18) Feature computation takes >99% of the time! Production Microsoft sentiment analysis pipeline Model run time 5
  • 6. Current State-of-the-art ● Apply traditional serving optimizations, e.g. caching (Clipper), compiler optimizations (Pretzel). ● Neglect unique statistical properties of ML apps. 6
  • 7. Statistical Properties of ML Amenability to approximation 7
  • 8. Statistical Properties of ML Amenability to approximation 8 Easy input: Definitely not a dog. Hard input: Maybe a dog?
  • 9. Statistical Properties of ML Amenability to approximation Existing Systems: Use Expensive Model for Both 9 Easy input: Definitely not a dog. Hard input: Maybe a dog?
  • 10. Statistical Properties of ML Amenability to approximation Statistically-Aware Systems: Use cheap model on bucket, expensive model on cat. 10 Easy input: Definitely not a dog. Hard input: Maybe a dog?
  • 11. Statistical Properties of ML ● Model is often part of a bigger app (e.g. top-K query) 11
  • 12. Statistical Properties of ML ● Model is often part of a bigger app (e.g. top-K query) 12 Artist Score Rank Beatles 9.7 1 Bruce Springsteen 9.5 2 … … … Justin Bieber 5.6 999 Nickelback 4.1 1000 Problem: Return top 10 artists.
  • 13. Statistical Properties of ML ● Model is often part of a bigger app (e.g. top-K query) 13 Artist Score Rank Beatles 9.7 1 Bruce Springsteen 9.5 2 … … … Justin Bieber 5.6 999 Nickelback 4.1 1000 Use expensive model for everything! Existing Systems
  • 14. Statistical Properties of ML ● Model is often part of a bigger app (e.g. top-K query) 14 Artist Score Rank Beatles 9.7 1 Bruce Springsteen 9.5 2 … … … Justin Bieber 5.6 999 Nickelback 4.1 1000 High-value: Rank precisely, return. Low-value: Approximate, discard. Statistically-aware Systems
  • 15. Prior Work: Statistically-Aware Optimizations ● Statistically-aware optimizations exist in literature. ● Always application-specific and custom-built. ● Never automatic! 15 Source: Cheng et al. (DLRS’ 16), Kang et al. (VLDB ‘17)
  • 16. ML Inference Dilemna ● ML inference systems: ○ Easy to use. ○ Slow. ● Statistically-aware systems: ○ Fast ○ Require a lot of work to implement. 16
  • 17. Can an ML inference system be fast and easy to use? 17
  • 18. Willump: Overview ● Statistically-aware optimizer for ML Inference. ● Targets feature computation! ● Automatic model-agnostic statistically-aware opts. ● 10x throughput+latency improvements. 18
  • 19. Outline 19 ● System Overview ● Optimization 1: End-to-end Cascades ● Optimization 2: Top-K Query Approximation ● Evaluation
  • 20. Willump: Goals ● Automatically maximize performance of ML inference applications whose performance bottleneck is feature computation 20
  • 21. def pipeline(x1, x2): input = lib.transform(x1, x2) preds = model.predict(input) return preds System Overview Input Pipeline
  • 22. def pipeline(x1, x2): input = lib.transform(x1, x2) preds = model.predict(input) return preds Willump Optimization Infer Transformation Graph System Overview Input Pipeline
  • 23. 23 def pipeline(x1, x2): input = lib.transform(x1, x2) preds = model.predict(input) return preds Willump Optimization Infer Transformation Graph Statistically-Aware Optimizations: 1. End-To-End Cascades 2. Top-K Query Approximation System Overview Input Pipeline
  • 24. 24 def pipeline(x1, x2): input = lib.transform(x1, x2) preds = model.predict(input) return preds Willump Optimization Infer Transformation Graph Compiler Optimizations (Weld—Palkar et al. VLDB ‘18) System Overview Input Pipeline Statistically-Aware Optimizations: 1. End-To-End Cascades 2. Top-K Query Approximation
  • 25. 25 def pipeline(x1, x2): input = lib.transform(x1, x2) preds = model.predict(input) return preds Willump Optimization Infer Transformation Graph Compiler Optimizations (Weld—Palkar et al. VLDB ‘18) def willump_pipeline(x1, x2): preds = compiled_code(x1, x2) return preds Optimized Pipeline System Overview Input Pipeline Statistically-Aware Optimizations: 1. End-To-End Cascades 2. Top-K Query Approximation
  • 26. Outline 26 ● System Overview ● Optimization 1: End-to-end Cascades ● Optimization 2: Top-K Query Approximation ● Evaluation
  • 27. Background: Model Cascades ● Classify “easy” inputs with cheap model. ● Cascade to expensive model for “hard” inputs. 27 Easy input: Definitely not a dog. Hard input: Maybe a dog?
  • 28. Background: Model Cascades ● Used for image classification, object detection. ● Existing systems application-specific and custom-built. 28 Source: Viola-Jones (CVPR’ 01), Kang et al. (VLDB ‘17)
  • 29. Our Optimization: End-to-end cascades ● Compute only some features for “easy” data inputs; cascade to computing all for “hard” inputs. ● Automatic and model-agnostic, unlike prior work. ○ Estimates for runtime performance & accuracy of a feature set ○ Efficient search process for tuning parameters 29
  • 30. End-to-end Cascades: Original Model Compute All Features Model Prediction
  • 31. Cascades Optimization End-to-end Cascades: Approximate Model Compute All Features Model Prediction Compute Selected Features Approximate Model Prediction
  • 32. Cascades Optimization End-to-end Cascades: Confidence Compute All Features Model Prediction Compute Selected Features Approximate Model Prediction Confidence > Threshold Yes
  • 33. Cascades Optimization End-to-end Cascades: Final Pipeline Compute All Features Model Prediction Compute Selected Features Compute Remaining Features Approximate Model Prediction Original Model Confidence > Threshold Yes No
  • 34. End-to-end Cascades: Constructing Cascades 34 ● Construct cascades during model training. ● Need model training set and an accuracy target.
  • 35. End-to-end Cascades: Selecting Features Compute Selected Features Compute Remaining Features Approximate Model Prediction Original Model Confidence > Threshold Yes No Key question: Select which features?
  • 36. End-to-end Cascades: Selecting Features 36 ● Goal: Select features that minimize expected query time given accuracy target.
  • 37. End-to-end Cascades: Selecting Features Compute Selected Features Compute Remaining Features Approximate Model Prediction Original Model Confidence > Threshold Yes No Two possibilities for a query: Can approximate or not. Can approximate query. Can’t approximate query.
  • 38. End-to-end Cascades: Selecting Features Compute Selected Features (S) Approximate Model Prediction Confidence > Threshold YesP(Yes) = P(approx) cost(𝑆) min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
  • 39. End-to-end Cascades: Selecting Features Compute Selected Features (S) Compute Remaining Features Approximate Model Prediction Original Model Confidence > Threshold No P(No) = P(~approx) min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) cost(𝐹)
  • 40. End-to-end Cascades: Selecting Features Compute Selected Features (S) Compute Remaining Features Approximate Model Prediction Original Model Confidence > Threshold Yes NoP(Yes) = P(approx) P(No) = P(~approx) cost(𝑆) min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) cost(𝐹)
  • 41. End-to-end Cascades: Selecting Features 41 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
  • 42. End-to-end Cascades: Selecting Features 42 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑺). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 43. End-to-end Cascades: Selecting Features 43 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 44. End-to-end Cascades: Selecting Features 44 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 45. End-to-end Cascades: Selecting Features 45 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 46. End-to-end Cascades: Selecting Features 46 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑺). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 47. End-to-end Cascades: Selecting Features 47 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 48. End-to-end Cascades: Selecting Features 48 ● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹)
  • 49. End-to-end Cascades: Selecting Features 49 ● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Find S maximizing approximate model accuracy.
  • 50. End-to-end Cascades: Selecting Features 50 ● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Find S maximizing approximate model accuracy. ○ Problem: Computing accuracy expensive.
  • 51. End-to-end Cascades: Selecting Features 51 ● Subgoal: Find S minimizing query time if 𝑐𝑜𝑠𝑡 𝑆 = 𝑐 𝑚𝑎𝑥. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Find S maximizing approximate model accuracy. ○ Problem: Computing accuracy expensive. ○ Solution: Estimate accuracy via permutation importance -> knapsack problem.
  • 52. End-to-end Cascades: Selecting Features 52 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 53. End-to-end Cascades: Selecting Features 53 ● Subgoal: Train model & find cascade threshold for S. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Compute empirically on held-out data.
  • 54. End-to-end Cascades: Selecting Features 54 ● Subgoal: Train model & find cascade threshold for S. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Compute empirically on held-out data. ○ Train approximate model from S.
  • 55. End-to-end Cascades: Selecting Features 55 ● Subgoal: Train model & find cascade threshold for S. min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Solution: ○ Compute empirically on held-out data. ○ Train approximate model from S. ○ Predict held-out set, determine cascade threshold empirically using accuracy target.
  • 56. End-to-end Cascades: Selecting Features 56 ● Goal: Select feature set S that minimizes query time: min 𝑆 𝑃(approx)cost(𝑆) + 𝑃(~approx)cost(𝐹) ● Approach: ○ Choose several potential values of cost(𝑆). ○ Find best feature set with each cost(S). ○ Train model & find cascade threshold for each set. ○ Pick best overall.
  • 57. End-to-end Cascades: Results 57 ● Speedups of up to 5x without statistically significant accuracy loss. ● Full evaluation at end of talk!
  • 58. Outline 58 ● System Overview ● Optimization 1: End-to-end Cascades ● Optimization 2: Top-K Query Approximation ● Evaluation
  • 59. Top-K Approximation: Query Overview ● Top-K problem: Rank K highest-scoring items of a dataset. ● Top-K example: Find 10 artists a user would like most (recommender system). 59
  • 60. Top-K Approximation: Asymmetry 60 ● High-value items must be predicted, ranked precisely. ● Low-value items need only be identified as low value. Artist Score Rank Beatles 9.7 1 Bruce Springsteen 9.5 2 … … … Justin Bieber 5.6 999 Nickelback 4.1 1000 High-value: Rank precisely, return. Low-value: Approximate, discard.
  • 61. Top-K Approximation: How it Works ● Use approximate model to identify and discard low- value items. ● Rank high-value items with powerful model. 61
  • 62. Top-K Approximation: Prior Work ● Existing systems have similar ideas. ● However, we automatically generate approximate models for any ML application—prior systems don’t. ● Similar challenges as in cascades. 62 Source: Cheng et al. (DLRS ‘16)
  • 63. Top-K Approximation: Automatic Tuning ● Automatically selects features, tunes parameters to maximize performance given accuracy target. ● Works similarly to cascades. ● See paper for details! 63
  • 64. Top-K Approximation: Results 64 ● Speedups of up to 10x for top-K queries. ● Full eval at end of talk!
  • 65. Outline 65 ● System Overview ● Optimization 1: End-to-end Cascades ● Optimization 2: Top-K Query Approximation ● Evaluation
  • 66. Willump Evaluation: Benchmarks ● Benchmarks curated from top-performing entries to data science competitions (e.g. Kaggle, WSDM, CIKM). ● Three benchmarks in presentation (more in paper): ○ Music (music recommendation– queries remotely stored precomputed features) ○ Purchase (predict next purchase, tabular AutoML features) ○ Toxic (toxic comment detection – computes string features) 66
  • 67. End-to-End Cascades Evaluation: Throughput 67 15x 1.6x1x1x 2.4x 3.2x
  • 69. Top-K Query Approximation Evaluation 69 4.0x 1x 2.7x 1x 3.2x 30x
  • 70. Statistical nature of ML enables new optimizations: Willump applies them automatically for 10x speedups. github.com/stanford-futuredata/Willump Summary Summary
  翻译: