SlideShare a Scribd company logo
Deploying end-to-end
deep learning
pipelines with ONNX
—
Nick Pentreath
Principal Engineer
@MLnick
About
IBM Developer / © 2019 IBM Corporation
– @MLnick on Twitter & Github
– Principal Engineer, IBM CODAIT (Center for
Open-Source Data & AI Technologies)
– Machine Learning & AI
– Apache Spark committer & PMC
– Author of Machine Learning with Spark
– Various conferences & meetups
2
CODAIT
Improving the Enterprise AI Lifecycle in Open Source
Center for Open Source
Data & AI Technologies
IBM Developer / © 2019 IBM Corporation 3
CODAIT aims to make AI solutions dramatically
easier to create, deploy, and manage in the
enterprise.
We contribute to and advocate for the open-source
technologies that are foundational to IBM’s AI
offerings.
30+ open-source developers!
The Machine Learning
Workflow
IBM Developer / © 2019 IBM Corporation 4
Perception
IBM Developer / © 2019 IBM Corporation 5
In reality the
workflow spans teams …
IBM Developer / © 2019 IBM Corporation 6
… and tools …
IBM Developer / © 2019 IBM Corporation 7
… and is a small (but critical!)
piece of the puzzle
*Source: Hidden Technical Debt in Machine Learning Systems
IBM Developer / © 2019 IBM Corporation 8
Machine Learning
Deployment
IBM Developer / © 2019 IBM Corporation 9
What, Where, How?
– What are you deploying?
• What is a “model”
– Where are you deploying?
• Target environment (cloud, browser, edge)
• Batch, streaming, real-time?
– How are you deploying?
• “devops” deployment mechanism
• Serving framework
We will talk mostly about the what
IBM Developer / © 2019 IBM Corporation 10
What is a “model”?
IBM Developer / © 2019 IBM Corporation 11
Deep Learning doesn’t need
feature engineering or data
processing …
IBM Developer / © 2019 IBM Corporation 12
right?
Deep learning
pipeline?
IBM Developer / © 2019 IBM Corporation 13
Source: https://ai.googleblog.com/2016/03/train-your-own-image-classifier-with.html
beagle: 0.82
Input image Inference Prediction
Deep learning
pipeline!
IBM Developer / © 2019 IBM Corporation 14
beagle: 0.82
basset: 0.09
bluetick: 0.07
...
Input image Image pre-processing Prediction
Decode image
Resize
Normalization
Convert types / format
Inference Post-processing
[0.2, 0.3, … ]
(label, prob)
Sort
Label map
PIL, OpenCV, tf.image,
…
Custom
Python
* Logos trademarks of their respective projects
Image pre-processing
IBM Developer / © 2019 IBM Corporation 15
Decode image
Resize
Normalization
Convert types / format
vs
Color mode cat: 0.45
beagle: 0.34
Decoding lib
RGB BGR
PIL vs OpenCV vs tf.image vs skimage
libJPEG vs OpenCV
INTEGER_FAST vs INTEGER_ACCURATE
Data layout
NCHW vs NHWC
Image pre-processing
IBM Developer / © 2019 IBM Corporation 16
Decode image
Resize
Normalization
Convert types / format
Operation order
Normalize INT pixels (128) Convert Float32
Convert Float32 Normalize float (0.5)
Inference post-
processing
IBM Developer / © 2019 IBM Corporation 17
Convert to numpy array
[0.2, 0.3, … ]
(label, prob)
Sort
Label map
Custom loading label mapping / vocab / …
TF SavedModel (assets)
Keras decode_predictions
Custom code
Custom code
Pipelines, not Models
– Deploying just the model part of the
workflow is not enough
– Entire pipeline must be deployed
• Data transforms
• Feature extraction & pre-processing
• DL / ML model
• Prediction transformation
– Even ETL is part of the pipeline!
– Pipelines in frameworks
• scikit-learn
• Spark ML pipelines
• TensorFlow Transform
• pipeliner (R)
IBM Developer / © 2019 IBM Corporation 18
Challenges
IBM Developer / © 2019 IBM Corporation
– Formats
• Each framework does things differently
• Proprietary formats: lock-in, not portable
– Lack of standardization leads to custom
solutions and extensions
– Need to manage and bridge many different:
• Languages - Python, R, Notebooks, Scala / Java / C
• Frameworks – too many to count!
• Dependencies
• Versions
– Performance characteristics can be highly
variable across these dimensions
– Friction between teams
• Data scientists & researchers – latest & greatest
• Production – stability, control, minimize changes,
performance
• Business – metrics, business impact, product must
always work!
* Logos trademarks of their respective projects
19
Containers for ML
Deployment
IBM Developer / © 2019 IBM Corporation 20
Containers are “The Solution”
… right?
– But …
• What goes in the container is still the most
important factor
• Performance can be highly variable across
language, framework, version
• Requires devops knowledge, CI / deployment
pipelines, good practices
• Does not solve the issue of standardization
• Formats
• APIs exposed
• A serving framework is still required on top
– Container-based deployment has
significant benefits
• Repeatability
• Ease of configuration
• Separation of concerns – focus on what, not
how
• Allow data scientists & researchers to use their
language / framework of choice
• Container frameworks take care of (certain)
monitoring, fault tolerance, HA, etc.
IBM Developer / © 2019 IBM Corporation 21
Open Standards for
Model Serialization &
Deployment
IBM Developer / © 2019 IBM Corporation 22
Why a standard?
Standard
Format
Execution
Optimization
Tooling
(Viz, analysis, …)
Single stack
IBM Developer / © 2019 IBM Corporation 23
Why an Open Standard?
– Open-source vs open standard
– Open source (license) is only one
aspect
• OSS licensing allows free use, modification
• Inspect the code etc
• … but may not have any control
– Open governance is critical
• Avoid concentration of control (typically by large
companies, vendors)
• Visibility of development processes, strategic
planning, roadmaps
– However there are downsides
• Standard needs wide adoption and critical mass
to succeed
• A standard can move slowly in terms of new
features, fixes and enhancements
• Design by committee
• Keeping up with pace of framework development
IBM Developer / © 2019 IBM Corporation 24
Open Neural Network Exchange
(ONNX)
– Championed by Facebook & Microsoft
– Protobuf for serialization format and type
specification
– Describes
• computation graph (inputs, outputs, operators) - DAG
• values (weights)
– In this way the serialized graph is “self-
contained”
– Focused on Deep Learning / tensor operations
– Baked into PyTorch from 1.0.0 / Caffe2 as the
serialization & interchange format
IBM Developer / © 2019 IBM Corporation 25
ONNX Graphs
IBM Developer / © 2019 IBM Corporation 26
matmult/Mul (op#0)
input0 X
input1 Y
output0 Z
X
Z
Y
Source: http://onnx.ai/sklearn-onnx/auto_examples/plot_pipeline.html
graph {
node {
input: "X"
input: "Y"
output: "Z"
name: "matmult"
op_type: "Mul"
}
input {
name: "X"
type { ... }
}
output {
name: "Z"
type { ... }
}
}
ONNX Graphs
Source: https://github.com/onnx/tutorials/blob/master/tutorials/VisualizingAModel.md
SqueezeNet Graph Visualization
IBM Developer / © 2019 IBM Corporation 27
ONNX-ML
– Provides support for (parts of)
“traditional” machine learning
• Additional types
– sequences
– maps
• Operators
• Vectorizers (numeric & string data)
• One hot encoding, label encoding
• Scalers (normalization, scaling)
• Models (linear, SVM, TreeEnsemble)
• …
https://github.com/onnx/onnx/blob/master/docs/Operators-ml.md
IBM Developer / © 2019 IBM Corporation 28
ONNX-ML
– Exporter support
• Scikit-learn – 60+
• LightGBM
• XGBoost
• Apache Spark ML – 25+
• Keras – all layers + TF custom layers
• Libsvm
• Apple CoreML
https://github.com/onnx/onnxmltools/
http://onnx.ai/sklearn-onnx/index.html
https://github.com/onnx/keras-onnx
IBM Developer / © 2019 IBM Corporation 29
ONNX-ML for Apache Spark
– Exporter support
• Linear models, DT, RF, GBT,
NaiveBayes, OneVsRest
• Scalers, Imputer, Binarizer,
Bucketizer
• String indexing, Stop words
• OneHotEncoding, Feature
selection / slicing
• PCA, Word2Vec, LSH
https://github.com/onnx/onnxmltools/tree/master/onnxmltools/convert/sparkml
IBM Developer / © 2019 IBM Corporation 30
initial_types = [
("label", StringTensorType([1, 1])),
...
]
pipeline_model = pipeline.fit(training_data)
onnx_model = convert_sparkml(pipeline_model,
..., initial_types)
ONNX-ML for Apache Spark
– Missing exporters
• Feature hashing, TFIDF
• RFormula
• NGram
• SQLTransformer
• Models – clustering, FP, ALS
– Current issues
• Tokenizer - supported but not in ONNX spec
(custom operator)
• Limited invalid data handling
• Python / PySpark only
IBM Developer / © 2019 IBM Corporation 31
ONNX Ecosystem
Other compliant
runtimes
Single stack
IBM Developer / © 2019 IBM Corporation 32
Network visualization
Converters ONNX Spec
ONNX
Model Zoo
ONNX Governance
– Move towards open governance
model
• Multiple vendors
• High level steering committee
• Special Interest Groups (SIGs)
– Converters
– Training
– Pipelines
– Model zoos
• Working groups
https://github.com/onnx/onnx/tree/master/community
IBM Developer / © 2019 IBM Corporation 33
– However ... not in a foundation
ONNX Missing Pieces
– ONNX
• Operator / converter coverage
– E.g. TensorFlow coverage
• Image processing
– Support for basic resize, crop
– No support for reading image directly (like
tf.image.decode_jpeg)
• String processing
• Comprehensive benchmarks
IBM Developer / © 2019 IBM Corporation 34
– ONNX-ML
• Types
– datetime
• Operators
– String processing / NLP – e.g. tokenization
– Hashing
– Clustering models
• Specific exporters
– Apache Spark ML – python only
– Very basic tokenization in sklearn
– No support for Keras tokenizer
• Combining frameworks
– Still ad-hoc, requires custom code
Summary
ONNX
! !
• Backing by large industry
players
• Growing rapidly with lots
of momentum
• Open governance model
• Focused on deep learning
operators
• ONNX-ML provides some
support for ”traditional”
ML and feature processing
• Still relatively new
• Difficult to keep up with
breadth and depth of
framework evolution
• Still work required for
feature processing and
other data types (strings,
datetime, etc)
• Limited image & text pre-
processing
IBM Developer / © 2019 IBM Corporation 35
Conclusion
– However there are risks
• ONNX still relatively young
• Operator / framework coverage
• Limitations of the standard
• Can one standard encompass all requirements &
use cases?
– Open standard for serialization and
deployment of deep learning pipelines
• True portability across languages, frameworks,
runtimes and versions
• Execution environment independent of the producer
• One execution stack
– Solves a significant pain point for the
deployment of ML pipelines in a truly
open manner
Get involved - it’s open source, (open governance)!
https://onnx.ai/
IBM Developer / © 2019 IBM Corporation 36
Thank you
IBM Developer / © 2019 IBM Corporation
Sign up for IBM Cloud and try Watson Studio: https://ibm.biz/BdznGk
codait.org
twitter.com/MLnick
github.com/MLnick
developer.ibm.com
37
IBM Developer / © 2019 IBM Corporation 38

More Related Content

What's hot (20)

PPTX
Akka actorを何故使うのか?
Nyle Inc.(ナイル株式会社)
 
PPTX
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
 
PDF
Java Performance Analysis on Linux with Flame Graphs
Brendan Gregg
 
PDF
Shared Memory Centric Computing with CXL & OMI
Allan Cantle
 
PPTX
DMA Survival Guide
Kernel TLV
 
PPTX
Automating a PostgreSQL High Availability Architecture with Ansible
EDB
 
PDF
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Databricks
 
PDF
Top 5 mistakes when writing Spark applications
hadooparchbook
 
PDF
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Databricks
 
PDF
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
 
PPTX
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
NTT DATA Technology & Innovation
 
PDF
In-Memory Evolution in Apache Spark
Kazuaki Ishizaki
 
PDF
Battle of the Stream Processing Titans – Flink versus RisingWave
Yingjun Wu
 
PDF
Terraform 0.12 Deep Dive: HCL 2.0 for Infrastructure as Code, Remote Plan & A...
Mitchell Pronschinske
 
PDF
[CNCF TAG-Runtime 2022-10-06] Lima
Akihiro Suda
 
PDF
How Netflix Tunes EC2 Instances for Performance
Brendan Gregg
 
PDF
Linux Kernel vs DPDK: HTTP Performance Showdown
ScyllaDB
 
PPTX
Kapacitorでネットワークにおける リアルタイムイベント検出
tetsusat
 
PDF
Machine Learning Operations & Azure
Erlangen Artificial Intelligence & Machine Learning Meetup
 
PDF
XDP in Practice: DDoS Mitigation @Cloudflare
C4Media
 
Akka actorを何故使うのか?
Nyle Inc.(ナイル株式会社)
 
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
NTT DATA Technology & Innovation
 
Java Performance Analysis on Linux with Flame Graphs
Brendan Gregg
 
Shared Memory Centric Computing with CXL & OMI
Allan Cantle
 
DMA Survival Guide
Kernel TLV
 
Automating a PostgreSQL High Availability Architecture with Ansible
EDB
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Databricks
 
Top 5 mistakes when writing Spark applications
hadooparchbook
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Databricks
 
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
 
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
NTT DATA Technology & Innovation
 
In-Memory Evolution in Apache Spark
Kazuaki Ishizaki
 
Battle of the Stream Processing Titans – Flink versus RisingWave
Yingjun Wu
 
Terraform 0.12 Deep Dive: HCL 2.0 for Infrastructure as Code, Remote Plan & A...
Mitchell Pronschinske
 
[CNCF TAG-Runtime 2022-10-06] Lima
Akihiro Suda
 
How Netflix Tunes EC2 Instances for Performance
Brendan Gregg
 
Linux Kernel vs DPDK: HTTP Performance Showdown
ScyllaDB
 
Kapacitorでネットワークにおける リアルタイムイベント検出
tetsusat
 
XDP in Practice: DDoS Mitigation @Cloudflare
C4Media
 

Similar to Deploying End-to-End Deep Learning Pipelines with ONNX (20)

PPTX
End-to-End Deep Learning Deployment with ONNX
Nick Pentreath
 
PPTX
Open, Secure & Transparent AI Pipelines
Nick Pentreath
 
PDF
Continuous Deployment for Deep Learning
Databricks
 
PDF
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
Luciano Resende
 
PDF
Open Source AI - News and examples
Luciano Resende
 
PPTX
IBM Developer Model Asset eXchange
Nick Pentreath
 
PDF
A survey on Machine Learning In Production (July 2018)
Arnab Biswas
 
PPTX
Inteligencia artificial, open source e IBM Call for Code
Luciano Resende
 
PPTX
Onnx at lf oss na 20200629 v5
home
 
PDF
Bringing an AI Ecosystem to the Domain Expert and Enterprise AI Developer wit...
Databricks
 
PDF
Machine learning from software developers point of view
Pierre Paci
 
PPTX
A practical guidance of the enterprise machine learning
Jesus Rodriguez
 
PDF
Austin,TX Meetup presentation tensorflow final oct 26 2017
Clarisse Hedglin
 
PPTX
AI and Spark - IBM Community AI Day
Nick Pentreath
 
PPTX
ONNX and MLflow
amesar0
 
PDF
Enabling a hardware accelerated deep learning data science experience for Apa...
Indrajit Poddar
 
PPTX
Deep Learning with TensorFlow and Apache MXNet on Amazon SageMaker (March 2019)
Julien SIMON
 
PDF
Deep Learning with Tensorflow and Apache MXNet on AWS (April 2019)
Julien SIMON
 
PPTX
A machine learning and data science pipeline for real companies
DataWorks Summit
 
PPTX
Certification Study Group - NLP & Recommendation Systems on GCP Session 5
gdgsurrey
 
End-to-End Deep Learning Deployment with ONNX
Nick Pentreath
 
Open, Secure & Transparent AI Pipelines
Nick Pentreath
 
Continuous Deployment for Deep Learning
Databricks
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
Luciano Resende
 
Open Source AI - News and examples
Luciano Resende
 
IBM Developer Model Asset eXchange
Nick Pentreath
 
A survey on Machine Learning In Production (July 2018)
Arnab Biswas
 
Inteligencia artificial, open source e IBM Call for Code
Luciano Resende
 
Onnx at lf oss na 20200629 v5
home
 
Bringing an AI Ecosystem to the Domain Expert and Enterprise AI Developer wit...
Databricks
 
Machine learning from software developers point of view
Pierre Paci
 
A practical guidance of the enterprise machine learning
Jesus Rodriguez
 
Austin,TX Meetup presentation tensorflow final oct 26 2017
Clarisse Hedglin
 
AI and Spark - IBM Community AI Day
Nick Pentreath
 
ONNX and MLflow
amesar0
 
Enabling a hardware accelerated deep learning data science experience for Apa...
Indrajit Poddar
 
Deep Learning with TensorFlow and Apache MXNet on Amazon SageMaker (March 2019)
Julien SIMON
 
Deep Learning with Tensorflow and Apache MXNet on AWS (April 2019)
Julien SIMON
 
A machine learning and data science pipeline for real companies
DataWorks Summit
 
Certification Study Group - NLP & Recommendation Systems on GCP Session 5
gdgsurrey
 
Ad

More from Databricks (20)

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

Recently uploaded (20)

PPTX
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
apidays
 
PPTX
AI Project Cycle and Ethical Frameworks.pptx
RiddhimaVarshney1
 
PPTX
Resmed Rady Landis May 4th - analytics.pptx
Adrian Limanto
 
PDF
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
PPTX
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
PDF
R Cookbook - Processing and Manipulating Geological spatial data with R.pdf
OtnielSimopiaref2
 
PPTX
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
PPTX
fashion industry boom.pptx an economics project
TGMPandeyji
 
PPT
Lecture 2-1.ppt at a higher learning institution such as the university of Za...
rachealhantukumane52
 
PDF
Choosing the Right Database for Indexing.pdf
Tamanna
 
PDF
apidays Helsinki & North 2025 - API-Powered Journeys: Mobility in an API-Driv...
apidays
 
PPTX
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
PDF
Performance Report Sample (Draft7).pdf
AmgadMaher5
 
PDF
MusicVideoProjectRubric Animation production music video.pdf
ALBERTIANCASUGA
 
PPTX
Climate Action.pptx action plan for climate
justfortalabat
 
PDF
How to Avoid 7 Costly Mainframe Migration Mistakes
JP Infra Pvt Ltd
 
PPTX
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
PPTX
Numbers of a nation: how we estimate population statistics | Accessible slides
Office for National Statistics
 
PPT
Data base management system Transactions.ppt
gandhamcharan2006
 
PDF
Building Production-Ready AI Agents with LangGraph.pdf
Tamanna
 
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
apidays
 
AI Project Cycle and Ethical Frameworks.pptx
RiddhimaVarshney1
 
Resmed Rady Landis May 4th - analytics.pptx
Adrian Limanto
 
Avatar for apidays apidays PRO June 07, 2025 0 5 apidays Helsinki & North 2...
apidays
 
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
R Cookbook - Processing and Manipulating Geological spatial data with R.pdf
OtnielSimopiaref2
 
GenAI-Introduction-to-Copilot-for-Bing-March-2025-FOR-HUB.pptx
cleydsonborges1
 
fashion industry boom.pptx an economics project
TGMPandeyji
 
Lecture 2-1.ppt at a higher learning institution such as the university of Za...
rachealhantukumane52
 
Choosing the Right Database for Indexing.pdf
Tamanna
 
apidays Helsinki & North 2025 - API-Powered Journeys: Mobility in an API-Driv...
apidays
 
apidays Helsinki & North 2025 - Vero APIs - Experiences of API development in...
apidays
 
Performance Report Sample (Draft7).pdf
AmgadMaher5
 
MusicVideoProjectRubric Animation production music video.pdf
ALBERTIANCASUGA
 
Climate Action.pptx action plan for climate
justfortalabat
 
How to Avoid 7 Costly Mainframe Migration Mistakes
JP Infra Pvt Ltd
 
Advanced_NLP_with_Transformers_PPT_final 50.pptx
Shiwani Gupta
 
Numbers of a nation: how we estimate population statistics | Accessible slides
Office for National Statistics
 
Data base management system Transactions.ppt
gandhamcharan2006
 
Building Production-Ready AI Agents with LangGraph.pdf
Tamanna
 

Deploying End-to-End Deep Learning Pipelines with ONNX

  • 1. Deploying end-to-end deep learning pipelines with ONNX — Nick Pentreath Principal Engineer @MLnick
  • 2. About IBM Developer / © 2019 IBM Corporation – @MLnick on Twitter & Github – Principal Engineer, IBM CODAIT (Center for Open-Source Data & AI Technologies) – Machine Learning & AI – Apache Spark committer & PMC – Author of Machine Learning with Spark – Various conferences & meetups 2
  • 3. CODAIT Improving the Enterprise AI Lifecycle in Open Source Center for Open Source Data & AI Technologies IBM Developer / © 2019 IBM Corporation 3 CODAIT aims to make AI solutions dramatically easier to create, deploy, and manage in the enterprise. We contribute to and advocate for the open-source technologies that are foundational to IBM’s AI offerings. 30+ open-source developers!
  • 4. The Machine Learning Workflow IBM Developer / © 2019 IBM Corporation 4
  • 5. Perception IBM Developer / © 2019 IBM Corporation 5
  • 6. In reality the workflow spans teams … IBM Developer / © 2019 IBM Corporation 6
  • 7. … and tools … IBM Developer / © 2019 IBM Corporation 7
  • 8. … and is a small (but critical!) piece of the puzzle *Source: Hidden Technical Debt in Machine Learning Systems IBM Developer / © 2019 IBM Corporation 8
  • 9. Machine Learning Deployment IBM Developer / © 2019 IBM Corporation 9
  • 10. What, Where, How? – What are you deploying? • What is a “model” – Where are you deploying? • Target environment (cloud, browser, edge) • Batch, streaming, real-time? – How are you deploying? • “devops” deployment mechanism • Serving framework We will talk mostly about the what IBM Developer / © 2019 IBM Corporation 10
  • 11. What is a “model”? IBM Developer / © 2019 IBM Corporation 11
  • 12. Deep Learning doesn’t need feature engineering or data processing … IBM Developer / © 2019 IBM Corporation 12 right?
  • 13. Deep learning pipeline? IBM Developer / © 2019 IBM Corporation 13 Source: https://ai.googleblog.com/2016/03/train-your-own-image-classifier-with.html beagle: 0.82 Input image Inference Prediction
  • 14. Deep learning pipeline! IBM Developer / © 2019 IBM Corporation 14 beagle: 0.82 basset: 0.09 bluetick: 0.07 ... Input image Image pre-processing Prediction Decode image Resize Normalization Convert types / format Inference Post-processing [0.2, 0.3, … ] (label, prob) Sort Label map PIL, OpenCV, tf.image, … Custom Python * Logos trademarks of their respective projects
  • 15. Image pre-processing IBM Developer / © 2019 IBM Corporation 15 Decode image Resize Normalization Convert types / format vs Color mode cat: 0.45 beagle: 0.34 Decoding lib RGB BGR PIL vs OpenCV vs tf.image vs skimage libJPEG vs OpenCV INTEGER_FAST vs INTEGER_ACCURATE Data layout NCHW vs NHWC
  • 16. Image pre-processing IBM Developer / © 2019 IBM Corporation 16 Decode image Resize Normalization Convert types / format Operation order Normalize INT pixels (128) Convert Float32 Convert Float32 Normalize float (0.5)
  • 17. Inference post- processing IBM Developer / © 2019 IBM Corporation 17 Convert to numpy array [0.2, 0.3, … ] (label, prob) Sort Label map Custom loading label mapping / vocab / … TF SavedModel (assets) Keras decode_predictions Custom code Custom code
  • 18. Pipelines, not Models – Deploying just the model part of the workflow is not enough – Entire pipeline must be deployed • Data transforms • Feature extraction & pre-processing • DL / ML model • Prediction transformation – Even ETL is part of the pipeline! – Pipelines in frameworks • scikit-learn • Spark ML pipelines • TensorFlow Transform • pipeliner (R) IBM Developer / © 2019 IBM Corporation 18
  • 19. Challenges IBM Developer / © 2019 IBM Corporation – Formats • Each framework does things differently • Proprietary formats: lock-in, not portable – Lack of standardization leads to custom solutions and extensions – Need to manage and bridge many different: • Languages - Python, R, Notebooks, Scala / Java / C • Frameworks – too many to count! • Dependencies • Versions – Performance characteristics can be highly variable across these dimensions – Friction between teams • Data scientists & researchers – latest & greatest • Production – stability, control, minimize changes, performance • Business – metrics, business impact, product must always work! * Logos trademarks of their respective projects 19
  • 20. Containers for ML Deployment IBM Developer / © 2019 IBM Corporation 20
  • 21. Containers are “The Solution” … right? – But … • What goes in the container is still the most important factor • Performance can be highly variable across language, framework, version • Requires devops knowledge, CI / deployment pipelines, good practices • Does not solve the issue of standardization • Formats • APIs exposed • A serving framework is still required on top – Container-based deployment has significant benefits • Repeatability • Ease of configuration • Separation of concerns – focus on what, not how • Allow data scientists & researchers to use their language / framework of choice • Container frameworks take care of (certain) monitoring, fault tolerance, HA, etc. IBM Developer / © 2019 IBM Corporation 21
  • 22. Open Standards for Model Serialization & Deployment IBM Developer / © 2019 IBM Corporation 22
  • 23. Why a standard? Standard Format Execution Optimization Tooling (Viz, analysis, …) Single stack IBM Developer / © 2019 IBM Corporation 23
  • 24. Why an Open Standard? – Open-source vs open standard – Open source (license) is only one aspect • OSS licensing allows free use, modification • Inspect the code etc • … but may not have any control – Open governance is critical • Avoid concentration of control (typically by large companies, vendors) • Visibility of development processes, strategic planning, roadmaps – However there are downsides • Standard needs wide adoption and critical mass to succeed • A standard can move slowly in terms of new features, fixes and enhancements • Design by committee • Keeping up with pace of framework development IBM Developer / © 2019 IBM Corporation 24
  • 25. Open Neural Network Exchange (ONNX) – Championed by Facebook & Microsoft – Protobuf for serialization format and type specification – Describes • computation graph (inputs, outputs, operators) - DAG • values (weights) – In this way the serialized graph is “self- contained” – Focused on Deep Learning / tensor operations – Baked into PyTorch from 1.0.0 / Caffe2 as the serialization & interchange format IBM Developer / © 2019 IBM Corporation 25
  • 26. ONNX Graphs IBM Developer / © 2019 IBM Corporation 26 matmult/Mul (op#0) input0 X input1 Y output0 Z X Z Y Source: http://onnx.ai/sklearn-onnx/auto_examples/plot_pipeline.html graph { node { input: "X" input: "Y" output: "Z" name: "matmult" op_type: "Mul" } input { name: "X" type { ... } } output { name: "Z" type { ... } } }
  • 28. ONNX-ML – Provides support for (parts of) “traditional” machine learning • Additional types – sequences – maps • Operators • Vectorizers (numeric & string data) • One hot encoding, label encoding • Scalers (normalization, scaling) • Models (linear, SVM, TreeEnsemble) • … https://github.com/onnx/onnx/blob/master/docs/Operators-ml.md IBM Developer / © 2019 IBM Corporation 28
  • 29. ONNX-ML – Exporter support • Scikit-learn – 60+ • LightGBM • XGBoost • Apache Spark ML – 25+ • Keras – all layers + TF custom layers • Libsvm • Apple CoreML https://github.com/onnx/onnxmltools/ http://onnx.ai/sklearn-onnx/index.html https://github.com/onnx/keras-onnx IBM Developer / © 2019 IBM Corporation 29
  • 30. ONNX-ML for Apache Spark – Exporter support • Linear models, DT, RF, GBT, NaiveBayes, OneVsRest • Scalers, Imputer, Binarizer, Bucketizer • String indexing, Stop words • OneHotEncoding, Feature selection / slicing • PCA, Word2Vec, LSH https://github.com/onnx/onnxmltools/tree/master/onnxmltools/convert/sparkml IBM Developer / © 2019 IBM Corporation 30 initial_types = [ ("label", StringTensorType([1, 1])), ... ] pipeline_model = pipeline.fit(training_data) onnx_model = convert_sparkml(pipeline_model, ..., initial_types)
  • 31. ONNX-ML for Apache Spark – Missing exporters • Feature hashing, TFIDF • RFormula • NGram • SQLTransformer • Models – clustering, FP, ALS – Current issues • Tokenizer - supported but not in ONNX spec (custom operator) • Limited invalid data handling • Python / PySpark only IBM Developer / © 2019 IBM Corporation 31
  • 32. ONNX Ecosystem Other compliant runtimes Single stack IBM Developer / © 2019 IBM Corporation 32 Network visualization Converters ONNX Spec ONNX Model Zoo
  • 33. ONNX Governance – Move towards open governance model • Multiple vendors • High level steering committee • Special Interest Groups (SIGs) – Converters – Training – Pipelines – Model zoos • Working groups https://github.com/onnx/onnx/tree/master/community IBM Developer / © 2019 IBM Corporation 33 – However ... not in a foundation
  • 34. ONNX Missing Pieces – ONNX • Operator / converter coverage – E.g. TensorFlow coverage • Image processing – Support for basic resize, crop – No support for reading image directly (like tf.image.decode_jpeg) • String processing • Comprehensive benchmarks IBM Developer / © 2019 IBM Corporation 34 – ONNX-ML • Types – datetime • Operators – String processing / NLP – e.g. tokenization – Hashing – Clustering models • Specific exporters – Apache Spark ML – python only – Very basic tokenization in sklearn – No support for Keras tokenizer • Combining frameworks – Still ad-hoc, requires custom code
  • 35. Summary ONNX ! ! • Backing by large industry players • Growing rapidly with lots of momentum • Open governance model • Focused on deep learning operators • ONNX-ML provides some support for ”traditional” ML and feature processing • Still relatively new • Difficult to keep up with breadth and depth of framework evolution • Still work required for feature processing and other data types (strings, datetime, etc) • Limited image & text pre- processing IBM Developer / © 2019 IBM Corporation 35
  • 36. Conclusion – However there are risks • ONNX still relatively young • Operator / framework coverage • Limitations of the standard • Can one standard encompass all requirements & use cases? – Open standard for serialization and deployment of deep learning pipelines • True portability across languages, frameworks, runtimes and versions • Execution environment independent of the producer • One execution stack – Solves a significant pain point for the deployment of ML pipelines in a truly open manner Get involved - it’s open source, (open governance)! https://onnx.ai/ IBM Developer / © 2019 IBM Corporation 36
  • 37. Thank you IBM Developer / © 2019 IBM Corporation Sign up for IBM Cloud and try Watson Studio: https://ibm.biz/BdznGk codait.org twitter.com/MLnick github.com/MLnick developer.ibm.com 37
  • 38. IBM Developer / © 2019 IBM Corporation 38