Kubernetes for machine learning: productivity over primitives
Sophie Watson • @sophwats • sophie@redhat.com William Benton • @willb • willb@redhat.com
Kubernetes for machine learning: productivity over primitives - - PowerPoint PPT Presentation
Kubernetes for machine learning: productivity over primitives Sophie Watson @sophwats sophie@redhat.com William Benton @willb willb@redhat.com Kubernetes for machine learning: productivity over primitives Sophie
Kubernetes for machine learning: productivity over primitives
Sophie Watson • @sophwats • sophie@redhat.com William Benton • @willb • willb@redhat.com
Kubernetes for machine learning: productivity over primitives
Sophie Watson • @sophwats • sophie@redhat.com William Benton • @willb • willb@redhat.com
@sophwats @willb
feature engineering model training and tuning model validation model deployment monitoring, validation data collection and cleaning codifying problem and metrics
codifying problem and metrics
@sophwats @willb
feature engineering model training and tuning model validation model deployment monitoring, validation data collection and cleaning codifying problem and metrics
codifying problem and metrics
@sophwats @willb
feature engineering model training and tuning model validation model deployment monitoring, validation data collection and cleaning codifying problem and metrics
codifying problem and metrics
@sophwats @willb
codifying problem and metrics feature engineering model training and tuning model validation model deployment monitoring, validation codifying problem and metrics data collection and cleaning
data collection and cleaning
@sophwats @willb
numquam sit. Est sunt eum rerum cumque rerum quia numquam. Et necessitatibus quo blanditiis dolorem quia id qui. A delectus enim id accusamus quia. Omnis possimus enim ea velit repudiandae id. Et placeat ipsam reiciendis quia ipsam accusantium in. Minima velit ut eos doloremque pariatur provident voluptatem placeat. Enim ut recusandae eos ad sit architecto utcodifying problem and metrics feature engineering model training and tuning model validation model deployment monitoring, validation codifying problem and metrics data collection and cleaning
data collection and cleaning
@sophwats @willb
feature engineering model training and tuning model validation model deployment monitoring, validation data collection and cleaning codifying problem and metrics codifying problem and metrics
feature engineering
data collection and cleaning
@sophwats @willb
feature engineering model training and tuning model validation model deployment monitoring, validation data collection and cleaning codifying problem and metrics codifying problem and metrics
feature engineering
data collection and cleaning
0.67 0.57 0.84 0.08 0.42 0.01
@sophwats @willb
data collection and cleaning feature engineering model training and tuning model validation model deployment monitoring, validation codifying problem and metrics codifying problem and metrics feature engineering
model training and tuning
data collection and cleaning
@sophwats @willb
data collection and cleaning feature engineering model training and tuning model validation model deployment monitoring, validation codifying problem and metrics data collection and cleaning codifying problem and metrics feature engineering model training and tuning
model validation
@sophwats @willb
data collection and cleaning feature engineering model training and tuning model validation model deployment monitoring, validation codifying problem and metrics data collection and cleaning codifying problem and metrics feature engineering model training and tuning
model validation
@sophwats @willb
feature engineering model training and tuning model validation data collection and cleaning model deployment monitoring, validation codifying problem and metrics data collection and cleaning codifying problem and metrics feature engineering model training and tuning model validation
model deployment monitoring, validation
@sophwats @willb
feature engineering model training and tuning data collection and cleaning model validation model deployment monitoring, validation codifying problem and metrics codifying problem and metrics feature engineering model training and tuning model validation data collection and cleaning model deployment monitoring, validation
@sophwats @willb
feature engineering model training and tuning data collection and cleaning model validation model deployment monitoring, validation codifying problem and metrics codifying problem and metrics feature engineering model training and tuning model validation data collection and cleaning model deployment monitoring, validation
@sophwats @willb
feature engineering model training and tuning data collection and cleaning model validation model deployment monitoring, validation codifying problem and metrics feature engineering model training and tuning model deployment monitoring, validation
@sophwats @willb
@sophwats @willb
@sophwats @willb
@sophwats @willb
@sophwats @willb
configuration data collection feature extraction process management analysis tools monitoring serving infrastructure machine resource management data verification
(Adapted from Sculley et al., “Hidden Technical Debt in Machine Learning Systems.” NIPS 2015)
@sophwats @willb
configuration data collection feature extraction process management analysis tools monitoring serving infrastructure machine resource management data verification
(Adapted from Sculley et al., “Hidden Technical Debt in Machine Learning Systems.” NIPS 2015)
@sophwats @willb
configuration data collection feature extraction process management analysis tools monitoring serving infrastructure machine resource management data verification
(Adapted from Sculley et al., “Hidden Technical Debt in Machine Learning Systems.” NIPS 2015)
ML Code
@sophwats @willb
What’s a container?
@sophwats @willb
%
@sophwats @willb
% pip install numpy
@sophwats @willb pip install numpy /usr/bin/pip executable arguments virtual memory file handles / root filesystem environment LANG=en_US USER=willb ... process table network routes
@sophwats @willb pip install numpy /usr/bin/pip executable arguments virtual memory file handles / root filesystem environment LANG=en_US USER=willb ... process table network routes
@sophwats @willb pip install numpy /usr/bin/pip executable arguments virtual memory file handles / root filesystem environment LANG=en_US USER=willb ... process table network routes
@sophwats @willb pip install numpy /usr/bin/pip executable arguments virtual memory file handles / root filesystem environment LANG=en_US USER=willb ... process table network routes
@sophwats @willb pip install numpy /usr/bin/pip executable arguments virtual memory file handles / root filesystem environment LANG=en_US USER=willb ... process table network routes
@sophwats @willb
pip install numpy /usr/bin/pip
executable arguments virtual memory file handles /var/lib/envs/main root filesystem environment
LANG=en_US USER=willb ...
process table network routes
@sophwats @willb
pip install numpy /usr/bin/pip
executable arguments virtual memory file handles /var/lib/envs/main root filesystem environment
LANG=en_US USER=willb ...
process table network routes
@sophwats @willb
pip install numpy /usr/bin/pip
executable arguments virtual memory file handles /var/lib/envs/main root filesystem environment
LANG=en_US USER=willb ...
process table network routes
@sophwats @willb
What does Kubernetes build
@sophwats @willb
Immutable images
base image configuration and installation recipes user application code
979229b9 33721112 e8cae4f6 2bb6ab16 a8296f7e a6afd91e 6b8cad3e
@sophwats @willb
Immutable images
base image configuration and installation recipes user application code
979229b9 33721112 e8cae4f6 2bb6ab16 a8296f7e a6afd91e 6b8cad3e
@sophwats @willb
Immutable images
base image configuration and installation recipes user application code
979229b9 33721112 e8cae4f6 2bb6ab16 a8296f7e a6afd91e 6b8cad3e
@sophwats @willb
Immutable images
base image configuration and installation recipes user application code
979229b9 33721112 e8cae4f6 2bb6ab16 a8296f7e a6afd91e 6b8cad3e
@sophwats @willb
Immutable images
base image configuration and installation recipes user application code
979229b9 33721112 e8cae4f6 2bb6ab16 a8296f7e a6afd91e 6b8cad3e model in production
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Stateless microservices
@sophwats @willb
Declarative app configuration
@sophwats @willb
Integration and deployment
OK!
@sophwats @willb
Integration and deployment
OK!
base image configuration and installation recipes application code
@sophwats @willb
Integration and deployment
OK!
base image configuration and installation recipes application code
@sophwats @willb
Integration and deployment
base image configuration and installation recipes application code
@sophwats @willb
What containers offer for machine learning workflows
@sophwats @willb
FROM centos:centos7 RUN yum install -y \ python python-pip \ java java-devel git ENTRYPOINT /bin/bash
@sophwats @willb
FROM centos:centos7 RUN yum install -y \ python python-pip \ java java-devel git ENTRYPOINT /bin/bash
@sophwats @willb
@sophwats @willb
@sophwats @willb
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.13 0.13 0.06 0.07 0.07 0.06 0.02 0.08 0.17 0.11 0.11 0.09 0.04 0.18 0.13 0.04 0.13 0.21 0.14 0.03*
@sophwats @willb
Self-service environments
more storage sensitive data more CPUs better GPUs
@sophwats @willb
@sophwats @willb
@sophwats @willb
O K ! O K !
@sophwats @willb
No friction: mybinder.org
@sophwats @willb
More flexible: source-to-image
%
@sophwats @willb
More flexible: source-to-image
%
https://github.com/openshift/source-to-image
builder image application image
@sophwats @willb
https://github.com/willb/probabilistic-structures \
@sophwats @willb
https://github.com/willb/probabilistic-structures \
@sophwats @willb
https://github.com/willb/probabilistic-structures \
https://github.com/willb/probabilistic-structures
@sophwats @willb
https://github.com/willb/probabilistic-structures \
@sophwats @willb
@sophwats @willb
@sophwats @willb
@sophwats @willb
feature engineering model training and tuning data collection and cleaning model validation model deployment monitoring, validation codifying problem and metrics feature engineering model training and tuning model deployment monitoring, validation
@sophwats @willb
feature engineering model training and tuning data collection and cleaning model validation model deployment monitoring, validation codifying problem and metrics feature engineering model training and tuning model deployment monitoring, validation
@sophwats @willb
mA
@sophwats @willb
mA
@sophwats @willb
mA
distribution of input data? distribution of predictions? distribution of number of multiplications while scoring? (joint)
@sophwats @willb
@sophwats @willb
Where from here?
@sophwats @willb
federate train models events databases file, object storage management web and mobile reporting developer UI transform transform transform archive feature engineerin g model training and tuning data collection and model validation model deploymen t monitoring, validation codifying problem and metrics
codifying problem and metrics feature engineering model training and tuning model validation
data collection and cleaning
model deployment monitoring, validation
@sophwats @willb
data scientists application developers data engineers
federate train models events databases file, object storage management web and mobile reporting developer UI transform transform transform archive
@sophwats @willb
data scientists application developers data engineers
federate train models events databases file, object storage management web and mobile reporting developer UI transform transform transform archive
machine learning engineers
@sophwats @willb
@sophwats @willb
radanalytics.io
@sophwats @willb
Kubeflow
@sophwats @willb
What did we talk about today?
@sophwats @willb
@sophwats @willb
@sophwats @willb
@sophwats @willb
@sophwats @willb
sophie@redhat.com • @sophwats willb@redhat.com • @willb