SlideShare a Scribd company logo
Titel der Präsentation,
Name, Abteilung,
Ort, xx. Monat 2014
1
Andreas Lattner
Data Science Team, Business Intelligence, Otto Group
PyData Berlin, May 20, 2016
Setting up predictive analytics services with Palladium
2 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Agenda
1 Introduction
2 Architecture
3 Example: Setting up a classification service
4 Deployment with Docker and Mesos / Marathon
5 Summary
3 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Motivation & History
Requirements Predictive Analytics
• Reduce transition time from prototypes to
operational systems
• High scalability
• Provide reliable predictive services
• Avoid expenses for licenses
• Faster start of projects, avoid re-implementation of
same functionality
+
Parcel Delivery Time
Prediction Framework
PALLADIUM
Generic solution for
group‘s services
• Frequent development of predictive analytics prototypes (R, Python, …)
• Partly reimplementation to set up operational applications
• A great stack of data analysis and machine learning packages exist for Python
(numpy, scipy, pandas, scikit-learn, …)
Palladium emerged from a project for parcel delivery time prediction for Hermes
4 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
What is Palladium?
Framework for fitting, evaluating, saving, deploying and using (predictive) models
Palladium
Model 1
DB
Config
predict(X) ŷ
Palladium
Model 2
DB
Config
predict(X) ŷ
• Unified model management (Python, R, Julia)
Palladium allows fitting, storing, loading,
distributing, versioning of models; metadata
management; using scikit-learn’s interfaces
• Generation of operative predictive services
Provisioning of models as web services
• Flexibility
It is possible to quickly set up new services via
configuration and interfaces
• Automated update
Update of a service‘s data / models in
configurable intervals
• Scalability
Easy distribution and scalability of predictive
services via Docker containers and integration to
load balancer
5 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Agenda
1 Introduction
2 Architecture
3 Example: Setting up a classification service
4 Deployment with Docker and Mesos / Marathon
5 Summary
6 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Architecture
Fitting and evaluating models
Application of models
Load Balancer
host/service/v1.1/predict?feat1=blue&feat2=38.0“class A”
“Service User”
Model DB
Testing Data
Train Server
model
Training Data
Server 1
Predict Node
model
Server 2 Server 3
7 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Architecture
Flexible integration of Authentication, Logging and Monitoring
Fitting and evaluating models
Application of models
Model DB
Testing Data
Server 1 Server 2
Load Balancer
Server 3
host/service/v1.1/predict?feat1=blue&feat2=38.0&access_token=a
Train Server
“class A”
“Service User”
model
model
Training Data
Predict Node
OAuth2-ServerMonitoring Service
8 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Flexible Structure via Interfaces
Palladium‘s
config
dataset
loader train
CSV Loader
DB Connection
grid search
param1: [a, b]
param2: [1.0, 2.0]
model
persister
File Persister
DB Persister
predict
service
/predict?feat1=0.1
→
{"class": "cat"}
model
Support Vector Classifier
Logistic Regression
dataset
loader test
CSV Loader
DB Connection
9 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Agenda
1 Introduction
2 Architecture
3 Example: Setting up a classification service
4 Deployment with Docker and Mesos / Marathon
5 Summary
10 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Example: Iris Classification
sepal length: 5.2
sepal width: 3.5
petal length: 1.5
petal width: 0.2
Iris-setosa
Iris-versicolor
Iris-virginica ?
5.2,3.5,1.5,0.2,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.6,3.0,4.5,1.5,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
5.1,3.8,1.5,0.3,Iris-setosa
...
Training & test data
Palladium Predict Server
http://localhost:5000/predict?
sepal length=5.2&sepal width=3.5&
petal length=1.5&petal width=0.2
{"result": "Iris-virginica",
"metadata":{
"service_name": "iris",
"service_version": "0.1",
"error_code": 0,
"status": "OK"}}
11 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration and Corresponding Classes
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
DatasetLoader
DatasetLoader
Model (→sklearn.base.BaseEstimator)
sklearn.grid_search.GridSearchCV
ModelPersister
PredictService
12 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'__factory__':
'palladium.dataset.Table',
'path': 'iris.data',
'names': [
'sepal length',
'sepal width',
'petal length',
'petal width',
'species',
],
'target_column': 'species',
'sep': ',',
'nrows': 100,
13 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'__factory__':
'palladium.dataset.Table',
'path': 'iris.data',
'names': [
'sepal length',
'sepal width',
'petal length',
'petal width',
'species',
],
'target_column': 'species',
'sep': ',',
'skiprows': 100,
14 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'__factory__':
'sklearn.tree.
DecisionTreeClassifier',
'min_samples_leaf': 1,
15 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'param_grid': {
'min_samples_leaf':
[1, 2, 3],
},
'verbose': 4,
'n_jobs': -1,
16 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'__factory__':
'palladium.persistence.File',
'path':
'iris-model-{version}',
17 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Configuration
'dataset_loader_train': {...},
'dataset_loader_test': {...},
'model': {...},
'grid_search': {...},
'model_persister': {...},
'predict_service': {...},
'__factory__':
'palladium.server.
PredictService',
'mapping': [
('sepal length', 'float'),
('sepal width', 'float'),
('petal length', 'float'),
('petal width', 'float'),
],
18 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Fitting and Testing Models
• Script for fitting models: pld-fit
• Loads training data
• Fits model (using specified estimator)
• Stores model + metadata
• Option to evaluate model on validation set (--evaluate)
INFO:palladium:Loading data...
INFO:palladium:Loading data done in 0.010 sec.
INFO:palladium:Fitting model...
INFO:palladium:Fitting model done in 0.001 sec.
INFO:palladium:Writing model...
INFO:palladium:Writing model done in 0.039 sec.
INFO:palladium:Wrote model with version 8.
19 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Fitting and Testing Models
• Script for testing different parameters: pld-grid-search
• Loads training data
• Splits training data in folds (cross validation)
• Creates runs for all parameter-fold combinations
• Reports results for different settings
INFO:palladium:Loading data...
INFO:palladium:Loading data done in 0.004 sec.
INFO:palladium:Running grid search...
Fitting 3 folds for each of 3 candidates, totalling 9 fits
...
[Parallel(n_jobs=-1)]: Done 9 out of 9 | elapsed: 0.1s finished
INFO:palladium:Running grid search done in 0.041 sec.
INFO:palladium:
[mean: 0.93000, std: 0.03827, params: {'min_samples_leaf': 2},
mean: 0.92000, std: 0.02902, params: {'min_samples_leaf': 1},
mean: 0.92000, std: 0.02902, params: {'min_samples_leaf': 3}]
20 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Fitting and Testing Models
• Script for testing models: pld-test
• Loads test data
• Applies model to test data
• Reports results (e.g., accuracy)
INFO:palladium:Loading data...
INFO:palladium:Loading data done in 0.003 sec.
INFO:palladium:Reading model...
INFO:palladium:Reading model done in 0.000 sec.
INFO:palladium:Applying model...
INFO:palladium:Applying model done in 0.001 sec.
INFO:palladium:Score: 0.92.
21 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying and Applying Models
• Built-in script for providing models: pld-devserver
• Using Flask’s web server
• Recommended to use WSGI container / web
server, e.g., gunicorn / nginx
• Predict server
• Loads model (model persister)
• Schedule for model updates
• Provides web service entry points (“predict”,
“alive”)
/alive
/predict
22 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Testing Service Overhead (1 CPU)
Including prediction of Iris model; using Flask‘s develop server
ab -n 1000
"http://localhost:4999/predict?sepal%20length=5.2&sepal%20width=
3.5&petal%20length=1.5&petal%20width=0.2"
Time taken for tests: 1.217 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 273000 bytes
HTML transferred: 112000 bytes
Requests per second: 821.82 [#/sec] (mean)
Time per request: 1.217 [ms] (mean)
Time per request: 1.217 [ms] (mean, across all concurrent
requests)
Transfer rate: 219.10 [Kbytes/sec] received
(Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz)
23 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Extensions
• Dynamic instantiation of objects (not only for provided interfaces)
• “__factory__” entries are instantiated on config initialization (using
resolve_dotted_name) and can be accessed via get_config()[‘name’]
• Parameters are passed to constructor
• Extension using decorators
• A list of decorators can be set to wrap different calls (predict, fit, update model)
• Can be used, e.g., for authentication or monitoring of “predict” calls
'predict_decorators': [
'my_oauth2.authorization',
'my_monitoring.log',
],
'model': {
'__factory__': 'sklearn.tree.DecisionTreeClassifier',
'min_samples_leaf': 1,
},
24 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Extensions (2)
• Own implementation of PredictService can be set in config, e.g., to adapt response
format or to define own way how sample is created from request
• Here we add a prediction_id to the response:
class MyPredictService(PredictService):
def response_from_prediction(self, y_pred, single=True):
result = y_pred.tolist()
metadata = get_metadata()
metadata.update({'prediction_id': str(uuid.uuid1())})
if single:
result = result[0]
response = {
'metadata': metadata,
'result': result,
}
return make_ujson_response(response, status_code=200)
25 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Agenda
1 Introduction
2 Architecture
3 Example: Setting up a classification service
4 Deployment with Docker and Mesos / Marathon
5 Summary
26 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Docker, Mesos & Marathon
• Docker is a platform for the creation, distribution,
and execution of applications
• Lightweight environment
• Easy combination of components
• Self-contained container including dependencies
• Docker registry for deployment
• Cluster framework Mesos provides resources,
encapsulating details about used hardware
• High scalability and robustness
• Marathon (Mesosphere): Framework to launch and
monitor services; used in combination with Mesos
Source: https://www.docker.com/whatisdocker/
Sources:
http://mesos.apache.org/
https://mesosphere.github.io/marathon/
27 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Docker Container
Containers for and Deployment of Palladium Instances
Palladium
Code
Application
specific code
Config
Server 1 Server 2
Load Balancer
Docker Container
Palladium
Code
Application
specific code
Config
Server 3
Service 1 Service 2
host/service/v1.0/predict?feat1=austria host/service/v1.1/predict?feat1=blue&feat2=38.0
28 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Automated generation of Docker images
pld-dockerize
• Script pld-dockerize creates Docker image for predictive analytics service
• Example:
pld-dockerize pld_codetalks ottogroup/palladium-base:1.0.1 alattner/iris-demo-
tmp:0.1
• There exists an option to create only the Dockerfile without building the image (-d)
29 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying via Mesos / Marathon
Easy deployment: Referring to Docker image and specifying number of instances
30 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying via Mesos / Marathon
Palladium instances provide service after deployment
31 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying via Mesos / Marathon
Easy scaling via GUI if more or less Palladium instances are desired
32 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying via Mesos / Marathon
Easy scaling via GUI if more or less Palladium instances are desired
33 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Deploying via Mesos / Marathon
Easy scaling via GUI if more or less Palladium instances are desired
34 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Summary
• Palladium 1.0.1 is available at GitHub, PyPI, Anaconda (Linux)
• Easy way to expose ML models as web services using scikit-learn’s interface
• Mechanism for automated update of models
• Script to automatically create Docker images for Palladium services
• Easy integration of other relevant services via decorator lists
• Authentication
• Logging, monitoring
• Support for models in other languages than Python: R (via rpy2), Julia (via pyjulia)
• Test-driven development, 100% test coverage
• Various Otto Group services have been realized with Palladium
• We’d be happy to receive feedback, suggestions for improvements, or pull requests!
35 Setting up predictive analytics services with Palladium
Andreas Lattner
Otto Group BI
Acknowledgment
• Daniel Nouri (design & development)
• Tim Dopke (Palladium + Docker, Mesos / Marathon)
• Data Science Team of the Otto Group BI
• Developers of used packages, e.g.,
• scikit-learn
• numpy
• scipy
• pandas
• flask
• sqlalchemy
• pytest
• …
Titel der Präsentation,
Name, Abteilung,
Ort, xx. Monat 2014
36
Thank you very much for your attention!

More Related Content

What's hot

Data Profiling in Apache Calcite
Data Profiling in Apache CalciteData Profiling in Apache Calcite
Data Profiling in Apache Calcite
Julian Hyde
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache Calcite
Julian Hyde
 
New developments in open source ecosystem spark3.0 koalas delta lake
New developments in open source ecosystem spark3.0 koalas delta lakeNew developments in open source ecosystem spark3.0 koalas delta lake
New developments in open source ecosystem spark3.0 koalas delta lake
Xiao Li
 
Big Data Analytics using Mahout
Big Data Analytics using MahoutBig Data Analytics using Mahout
Big Data Analytics using Mahout
IMC Institute
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databases
Julian Hyde
 
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
Herman Wu
 
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
A Rusty introduction to Apache Arrow and how it applies to a  time series dat...A Rusty introduction to Apache Arrow and how it applies to a  time series dat...
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
Andrew Lamb
 
Powering a Virtual Power Station with Big Data
Powering a Virtual Power Station with Big DataPowering a Virtual Power Station with Big Data
Powering a Virtual Power Station with Big Data
DataWorks Summit/Hadoop Summit
 
Machine learning using spark
Machine learning using sparkMachine learning using spark
Machine learning using spark
Ran Silberman
 
HEPData
HEPDataHEPData
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL
Kohei KaiGai
 
20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English
Kohei KaiGai
 
HEPData Open Repositories 2016 Talk
HEPData Open Repositories 2016 TalkHEPData Open Repositories 2016 Talk
HEPData Open Repositories 2016 Talk
Eamonn Maguire
 
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
Comsysto Reply GmbH
 
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack GudenkaufStructured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Databricks
 
HEPData workshop talk
HEPData workshop talkHEPData workshop talk
HEPData workshop talk
Eamonn Maguire
 
Apache Mahout Algorithms
Apache Mahout AlgorithmsApache Mahout Algorithms
Apache Mahout Algorithms
mozgkarakaya
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love Story
Databricks
 
Lazy beats Smart and Fast
Lazy beats Smart and FastLazy beats Smart and Fast
Lazy beats Smart and Fast
Julian Hyde
 
Drill / SQL / Optiq
Drill / SQL / OptiqDrill / SQL / Optiq
Drill / SQL / Optiq
Julian Hyde
 

What's hot (20)

Data Profiling in Apache Calcite
Data Profiling in Apache CalciteData Profiling in Apache Calcite
Data Profiling in Apache Calcite
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache Calcite
 
New developments in open source ecosystem spark3.0 koalas delta lake
New developments in open source ecosystem spark3.0 koalas delta lakeNew developments in open source ecosystem spark3.0 koalas delta lake
New developments in open source ecosystem spark3.0 koalas delta lake
 
Big Data Analytics using Mahout
Big Data Analytics using MahoutBig Data Analytics using Mahout
Big Data Analytics using Mahout
 
Spatial query on vanilla databases
Spatial query on vanilla databasesSpatial query on vanilla databases
Spatial query on vanilla databases
 
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
運用CNTK 實作深度學習物件辨識 Deep Learning based Object Detection with Microsoft Cogniti...
 
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
A Rusty introduction to Apache Arrow and how it applies to a  time series dat...A Rusty introduction to Apache Arrow and how it applies to a  time series dat...
A Rusty introduction to Apache Arrow and how it applies to a time series dat...
 
Powering a Virtual Power Station with Big Data
Powering a Virtual Power Station with Big DataPowering a Virtual Power Station with Big Data
Powering a Virtual Power Station with Big Data
 
Machine learning using spark
Machine learning using sparkMachine learning using spark
Machine learning using spark
 
HEPData
HEPDataHEPData
HEPData
 
20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL20181116 Massive Log Processing using I/O optimized PostgreSQL
20181116 Massive Log Processing using I/O optimized PostgreSQL
 
20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English20181212 - PGconfASIA - LT - English
20181212 - PGconfASIA - LT - English
 
HEPData Open Repositories 2016 Talk
HEPData Open Repositories 2016 TalkHEPData Open Repositories 2016 Talk
HEPData Open Repositories 2016 Talk
 
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
Spark RDD-DF-SQL-DS-Spark Hadoop User Group Munich Meetup 2016
 
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack GudenkaufStructured Streaming for Columnar Data Warehouses with Jack Gudenkauf
Structured Streaming for Columnar Data Warehouses with Jack Gudenkauf
 
HEPData workshop talk
HEPData workshop talkHEPData workshop talk
HEPData workshop talk
 
Apache Mahout Algorithms
Apache Mahout AlgorithmsApache Mahout Algorithms
Apache Mahout Algorithms
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love Story
 
Lazy beats Smart and Fast
Lazy beats Smart and FastLazy beats Smart and Fast
Lazy beats Smart and Fast
 
Drill / SQL / Optiq
Drill / SQL / OptiqDrill / SQL / Optiq
Drill / SQL / Optiq
 

Viewers also liked

Smau milano 2012 fabrizio amarilli architettura
Smau milano 2012 fabrizio amarilli architetturaSmau milano 2012 fabrizio amarilli architettura
Smau milano 2012 fabrizio amarilli architetturaSMAU
 
Costi della qualità: 4. i costi negativi
Costi della qualità: 4. i costi negativi Costi della qualità: 4. i costi negativi
Costi della qualità: 4. i costi negativi
Manager.it
 
Ayurveda school | Ayurveda and Panchakarma Training Centre
Ayurveda school | Ayurveda and Panchakarma Training CentreAyurveda school | Ayurveda and Panchakarma Training Centre
Ayurveda school | Ayurveda and Panchakarma Training Centre
School of Ayurveda & Panchakarma
 
Dell xps m1210バッテリー【送料無料】デルバッテリー
Dell xps m1210バッテリー【送料無料】デルバッテリーDell xps m1210バッテリー【送料無料】デルバッテリー
Dell xps m1210バッテリー【送料無料】デルバッテリー
Followpower Liu
 
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
Manager.it
 
resume vanes new 1
resume vanes new 1resume vanes new 1
resume vanes new 1
Buvanes Buvaneswary
 
กฎหมายเครื่องหมายการค้า
กฎหมายเครื่องหมายการค้ากฎหมายเครื่องหมายการค้า
กฎหมายเครื่องหมายการค้า
Yosiri
 
Latihan
LatihanLatihan
Praktek
PraktekPraktek
Praktek
magreb789
 
What's cooking
What's cookingWhat's cooking
What's cooking
Dattatreya Biswas
 
Crowdsourcing 4. Competition platform
Crowdsourcing 4. Competition platformCrowdsourcing 4. Competition platform
Crowdsourcing 4. Competition platform
Manager.it
 
Osha3530
Osha3530Osha3530
CMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
CMS Emergency Preparedness Rule, Final Rule: A High Altitude FlyoverCMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
CMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
Karl Schmitt
 
BigPrivacy - Privacidad y BigData en Estadísticas Oficiales
BigPrivacy - Privacidad y BigData en Estadísticas OficialesBigPrivacy - Privacidad y BigData en Estadísticas Oficiales
BigPrivacy - Privacidad y BigData en Estadísticas Oficiales
AVPD - Agencia Vasca de Protección de Datos
 
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
AVPD - DBEB
 
Rakesh Rathod Resume Nov 2016
Rakesh Rathod Resume Nov 2016Rakesh Rathod Resume Nov 2016
Rakesh Rathod Resume Nov 2016
Rakesh Rathod
 

Viewers also liked (16)

Smau milano 2012 fabrizio amarilli architettura
Smau milano 2012 fabrizio amarilli architetturaSmau milano 2012 fabrizio amarilli architettura
Smau milano 2012 fabrizio amarilli architettura
 
Costi della qualità: 4. i costi negativi
Costi della qualità: 4. i costi negativi Costi della qualità: 4. i costi negativi
Costi della qualità: 4. i costi negativi
 
Ayurveda school | Ayurveda and Panchakarma Training Centre
Ayurveda school | Ayurveda and Panchakarma Training CentreAyurveda school | Ayurveda and Panchakarma Training Centre
Ayurveda school | Ayurveda and Panchakarma Training Centre
 
Dell xps m1210バッテリー【送料無料】デルバッテリー
Dell xps m1210バッテリー【送料無料】デルバッテリーDell xps m1210バッテリー【送料無料】デルバッテリー
Dell xps m1210バッテリー【送料無料】デルバッテリー
 
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
Marketing SocioVirale 5. il 2° fattore-chiave per acchiappare sui socialmedia...
 
resume vanes new 1
resume vanes new 1resume vanes new 1
resume vanes new 1
 
กฎหมายเครื่องหมายการค้า
กฎหมายเครื่องหมายการค้ากฎหมายเครื่องหมายการค้า
กฎหมายเครื่องหมายการค้า
 
Latihan
LatihanLatihan
Latihan
 
Praktek
PraktekPraktek
Praktek
 
What's cooking
What's cookingWhat's cooking
What's cooking
 
Crowdsourcing 4. Competition platform
Crowdsourcing 4. Competition platformCrowdsourcing 4. Competition platform
Crowdsourcing 4. Competition platform
 
Osha3530
Osha3530Osha3530
Osha3530
 
CMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
CMS Emergency Preparedness Rule, Final Rule: A High Altitude FlyoverCMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
CMS Emergency Preparedness Rule, Final Rule: A High Altitude Flyover
 
BigPrivacy - Privacidad y BigData en Estadísticas Oficiales
BigPrivacy - Privacidad y BigData en Estadísticas OficialesBigPrivacy - Privacidad y BigData en Estadísticas Oficiales
BigPrivacy - Privacidad y BigData en Estadísticas Oficiales
 
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
Avpd upv-etsii - el nuevo rgpd para ingenieros - x2
 
Rakesh Rathod Resume Nov 2016
Rakesh Rathod Resume Nov 2016Rakesh Rathod Resume Nov 2016
Rakesh Rathod Resume Nov 2016
 

Similar to Dr. Andreas Lattner- Setting up predictive services with Palladium

Designing a production grade realtime ml inference endpoint
Designing a production grade realtime ml inference endpointDesigning a production grade realtime ml inference endpoint
Designing a production grade realtime ml inference endpoint
Chandim Sett
 
Bhadale group of companies - Our project works
Bhadale group of companies - Our project worksBhadale group of companies - Our project works
Bhadale group of companies - Our project works
Vijayananda Mohire
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014
Mark Tabladillo
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
llangit
 
Evolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data ApplicationsEvolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data Applications
DataWorks Summit
 
Data Mining 2008
Data Mining 2008Data Mining 2008
Data Mining 2008
llangit
 
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
James Anderson
 
I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)
AZUG FR
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
llangit
 
Azure machine learning service
Azure machine learning serviceAzure machine learning service
Azure machine learning service
Ruth Yakubu
 
Dublin Ireland Spark Meetup October 15, 2015
Dublin Ireland Spark Meetup October 15, 2015Dublin Ireland Spark Meetup October 15, 2015
Dublin Ireland Spark Meetup October 15, 2015
eddiebaggott
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
Vijayananda Mohire
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
Vijayananda Mohire
 
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
ScyllaDB
 
Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture
Rajesh Kumar
 
AWS Summit Auckland - Introducing Well-Architected for Developers
AWS Summit Auckland  - Introducing Well-Architected for DevelopersAWS Summit Auckland  - Introducing Well-Architected for Developers
AWS Summit Auckland - Introducing Well-Architected for Developers
Amazon Web Services
 
Shree krishna 20140214
Shree krishna 20140214Shree krishna 20140214
Shree krishna 20140214
Shree Shrestha
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Nane Kratzke
 

Similar to Dr. Andreas Lattner- Setting up predictive services with Palladium (20)

Designing a production grade realtime ml inference endpoint
Designing a production grade realtime ml inference endpointDesigning a production grade realtime ml inference endpoint
Designing a production grade realtime ml inference endpoint
 
Bhadale group of companies - Our project works
Bhadale group of companies - Our project worksBhadale group of companies - Our project works
Bhadale group of companies - Our project works
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014
 
SQL Server 2008 Data Mining
SQL Server 2008 Data MiningSQL Server 2008 Data Mining
SQL Server 2008 Data Mining
 
Evolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data ApplicationsEvolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data Applications
 
Data Mining 2008
Data Mining 2008Data Mining 2008
Data Mining 2008
 
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
GDG Cloud Southlake #16: Priyanka Vergadia: Scalable Data Analytics in Google...
 
I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)I want my model to be deployed ! (another story of MLOps)
I want my model to be deployed ! (another story of MLOps)
 
BI 2008 Simple
BI 2008 SimpleBI 2008 Simple
BI 2008 Simple
 
Azure machine learning service
Azure machine learning serviceAzure machine learning service
Azure machine learning service
 
Dublin Ireland Spark Meetup October 15, 2015
Dublin Ireland Spark Meetup October 15, 2015Dublin Ireland Spark Meetup October 15, 2015
Dublin Ireland Spark Meetup October 15, 2015
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
 
Key projects Data Science and Engineering
Key projects Data Science and EngineeringKey projects Data Science and Engineering
Key projects Data Science and Engineering
 
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
 
Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture
 
AWS Summit Auckland - Introducing Well-Architected for Developers
AWS Summit Auckland  - Introducing Well-Architected for DevelopersAWS Summit Auckland  - Introducing Well-Architected for Developers
AWS Summit Auckland - Introducing Well-Architected for Developers
 
Shree krishna 20140214
Shree krishna 20140214Shree krishna 20140214
Shree krishna 20140214
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
 

More from PyData

Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
PyData
 
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif WalshUnit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
PyData
 
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake BolewskiThe TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
PyData
 
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
PyData
 
Deploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne BauerDeploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne Bauer
PyData
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
PyData
 
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
PyData
 
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
 
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
PyData
 
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven LottAvoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
PyData
 
Words in Space - Rebecca Bilbro
Words in Space - Rebecca BilbroWords in Space - Rebecca Bilbro
Words in Space - Rebecca Bilbro
PyData
 
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
PyData
 
Pydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica PuertoPydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica Puerto
PyData
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
PyData
 
Extending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will AydExtending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will Ayd
PyData
 
Measuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen HooverMeasuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen Hoover
PyData
 
What's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper SeaboldWhat's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper Seabold
PyData
 
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
PyData
 
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-WardSolving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
PyData
 
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
PyData
 

More from PyData (20)

Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
 
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif WalshUnit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
 
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake BolewskiThe TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
 
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
 
Deploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne BauerDeploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne Bauer
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
 
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
 
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
 
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
 
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven LottAvoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
 
Words in Space - Rebecca Bilbro
Words in Space - Rebecca BilbroWords in Space - Rebecca Bilbro
Words in Space - Rebecca Bilbro
 
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
 
Pydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica PuertoPydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica Puerto
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
 
Extending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will AydExtending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will Ayd
 
Measuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen HooverMeasuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen Hoover
 
What's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper SeaboldWhat's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper Seabold
 
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
 
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-WardSolving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
 
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
 

Recently uploaded

DSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelinesDSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelines
Timothy Spann
 
社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .
NABLAS株式会社
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
Vineet
 
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
osoyvvf
 
一比一原版(UofT毕业证)多伦多大学毕业证如何办理
一比一原版(UofT毕业证)多伦多大学毕业证如何办理一比一原版(UofT毕业证)多伦多大学毕业证如何办理
一比一原版(UofT毕业证)多伦多大学毕业证如何办理
exukyp
 
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
actyx
 
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理 原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
tzu5xla
 
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
hyfjgavov
 
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
9gr6pty
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
bmucuha
 
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
eudsoh
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
Timothy Spann
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
ElizabethGarrettChri
 
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
agdhot
 
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
eoxhsaa
 
Template xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptxTemplate xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptx
TeukuEriSyahputra
 
Build applications with generative AI on Google Cloud
Build applications with generative AI on Google CloudBuild applications with generative AI on Google Cloud
Build applications with generative AI on Google Cloud
Márton Kodok
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
ytypuem
 
一比一原版莱斯大学毕业证(rice毕业证)如何办理
一比一原版莱斯大学毕业证(rice毕业证)如何办理一比一原版莱斯大学毕业证(rice毕业证)如何办理
一比一原版莱斯大学毕业证(rice毕业证)如何办理
zsafxbf
 
Cell The Unit of Life for NEET Multiple Choice Questions.docx
Cell The Unit of Life for NEET Multiple Choice Questions.docxCell The Unit of Life for NEET Multiple Choice Questions.docx
Cell The Unit of Life for NEET Multiple Choice Questions.docx
vasanthatpuram
 

Recently uploaded (20)

DSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelinesDSSML24_tspann_CodelessGenerativeAIPipelines
DSSML24_tspann_CodelessGenerativeAIPipelines
 
社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
 
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
一比一原版(uom毕业证书)曼彻斯特大学毕业证如何办理
 
一比一原版(UofT毕业证)多伦多大学毕业证如何办理
一比一原版(UofT毕业证)多伦多大学毕业证如何办理一比一原版(UofT毕业证)多伦多大学毕业证如何办理
一比一原版(UofT毕业证)多伦多大学毕业证如何办理
 
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
 
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理 原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
 
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
一比一原版兰加拉学院毕业证(Langara毕业证书)学历如何办理
 
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
一比一原版(uob毕业证书)伯明翰大学毕业证如何办理
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
 
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
 
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
 
Template xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptxTemplate xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptx
 
Build applications with generative AI on Google Cloud
Build applications with generative AI on Google CloudBuild applications with generative AI on Google Cloud
Build applications with generative AI on Google Cloud
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
一比一原版(曼大毕业证书)曼尼托巴大学毕业证如何办理
 
一比一原版莱斯大学毕业证(rice毕业证)如何办理
一比一原版莱斯大学毕业证(rice毕业证)如何办理一比一原版莱斯大学毕业证(rice毕业证)如何办理
一比一原版莱斯大学毕业证(rice毕业证)如何办理
 
Cell The Unit of Life for NEET Multiple Choice Questions.docx
Cell The Unit of Life for NEET Multiple Choice Questions.docxCell The Unit of Life for NEET Multiple Choice Questions.docx
Cell The Unit of Life for NEET Multiple Choice Questions.docx
 

Dr. Andreas Lattner- Setting up predictive services with Palladium

  • 1. Titel der Präsentation, Name, Abteilung, Ort, xx. Monat 2014 1 Andreas Lattner Data Science Team, Business Intelligence, Otto Group PyData Berlin, May 20, 2016 Setting up predictive analytics services with Palladium
  • 2. 2 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Agenda 1 Introduction 2 Architecture 3 Example: Setting up a classification service 4 Deployment with Docker and Mesos / Marathon 5 Summary
  • 3. 3 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Motivation & History Requirements Predictive Analytics • Reduce transition time from prototypes to operational systems • High scalability • Provide reliable predictive services • Avoid expenses for licenses • Faster start of projects, avoid re-implementation of same functionality + Parcel Delivery Time Prediction Framework PALLADIUM Generic solution for group‘s services • Frequent development of predictive analytics prototypes (R, Python, …) • Partly reimplementation to set up operational applications • A great stack of data analysis and machine learning packages exist for Python (numpy, scipy, pandas, scikit-learn, …) Palladium emerged from a project for parcel delivery time prediction for Hermes
  • 4. 4 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI What is Palladium? Framework for fitting, evaluating, saving, deploying and using (predictive) models Palladium Model 1 DB Config predict(X) ŷ Palladium Model 2 DB Config predict(X) ŷ • Unified model management (Python, R, Julia) Palladium allows fitting, storing, loading, distributing, versioning of models; metadata management; using scikit-learn’s interfaces • Generation of operative predictive services Provisioning of models as web services • Flexibility It is possible to quickly set up new services via configuration and interfaces • Automated update Update of a service‘s data / models in configurable intervals • Scalability Easy distribution and scalability of predictive services via Docker containers and integration to load balancer
  • 5. 5 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Agenda 1 Introduction 2 Architecture 3 Example: Setting up a classification service 4 Deployment with Docker and Mesos / Marathon 5 Summary
  • 6. 6 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Architecture Fitting and evaluating models Application of models Load Balancer host/service/v1.1/predict?feat1=blue&feat2=38.0“class A” “Service User” Model DB Testing Data Train Server model Training Data Server 1 Predict Node model Server 2 Server 3
  • 7. 7 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Architecture Flexible integration of Authentication, Logging and Monitoring Fitting and evaluating models Application of models Model DB Testing Data Server 1 Server 2 Load Balancer Server 3 host/service/v1.1/predict?feat1=blue&feat2=38.0&access_token=a Train Server “class A” “Service User” model model Training Data Predict Node OAuth2-ServerMonitoring Service
  • 8. 8 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Flexible Structure via Interfaces Palladium‘s config dataset loader train CSV Loader DB Connection grid search param1: [a, b] param2: [1.0, 2.0] model persister File Persister DB Persister predict service /predict?feat1=0.1 → {"class": "cat"} model Support Vector Classifier Logistic Regression dataset loader test CSV Loader DB Connection
  • 9. 9 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Agenda 1 Introduction 2 Architecture 3 Example: Setting up a classification service 4 Deployment with Docker and Mesos / Marathon 5 Summary
  • 10. 10 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Example: Iris Classification sepal length: 5.2 sepal width: 3.5 petal length: 1.5 petal width: 0.2 Iris-setosa Iris-versicolor Iris-virginica ? 5.2,3.5,1.5,0.2,Iris-setosa 4.3,3.0,1.1,0.1,Iris-setosa 5.6,3.0,4.5,1.5,Iris-versicolor 6.3,3.3,6.0,2.5,Iris-virginica 5.1,3.8,1.5,0.3,Iris-setosa ... Training & test data Palladium Predict Server http://localhost:5000/predict? sepal length=5.2&sepal width=3.5& petal length=1.5&petal width=0.2 {"result": "Iris-virginica", "metadata":{ "service_name": "iris", "service_version": "0.1", "error_code": 0, "status": "OK"}}
  • 11. 11 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration and Corresponding Classes 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, DatasetLoader DatasetLoader Model (→sklearn.base.BaseEstimator) sklearn.grid_search.GridSearchCV ModelPersister PredictService
  • 12. 12 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, '__factory__': 'palladium.dataset.Table', 'path': 'iris.data', 'names': [ 'sepal length', 'sepal width', 'petal length', 'petal width', 'species', ], 'target_column': 'species', 'sep': ',', 'nrows': 100,
  • 13. 13 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, '__factory__': 'palladium.dataset.Table', 'path': 'iris.data', 'names': [ 'sepal length', 'sepal width', 'petal length', 'petal width', 'species', ], 'target_column': 'species', 'sep': ',', 'skiprows': 100,
  • 14. 14 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, '__factory__': 'sklearn.tree. DecisionTreeClassifier', 'min_samples_leaf': 1,
  • 15. 15 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, 'param_grid': { 'min_samples_leaf': [1, 2, 3], }, 'verbose': 4, 'n_jobs': -1,
  • 16. 16 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, '__factory__': 'palladium.persistence.File', 'path': 'iris-model-{version}',
  • 17. 17 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Configuration 'dataset_loader_train': {...}, 'dataset_loader_test': {...}, 'model': {...}, 'grid_search': {...}, 'model_persister': {...}, 'predict_service': {...}, '__factory__': 'palladium.server. PredictService', 'mapping': [ ('sepal length', 'float'), ('sepal width', 'float'), ('petal length', 'float'), ('petal width', 'float'), ],
  • 18. 18 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Fitting and Testing Models • Script for fitting models: pld-fit • Loads training data • Fits model (using specified estimator) • Stores model + metadata • Option to evaluate model on validation set (--evaluate) INFO:palladium:Loading data... INFO:palladium:Loading data done in 0.010 sec. INFO:palladium:Fitting model... INFO:palladium:Fitting model done in 0.001 sec. INFO:palladium:Writing model... INFO:palladium:Writing model done in 0.039 sec. INFO:palladium:Wrote model with version 8.
  • 19. 19 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Fitting and Testing Models • Script for testing different parameters: pld-grid-search • Loads training data • Splits training data in folds (cross validation) • Creates runs for all parameter-fold combinations • Reports results for different settings INFO:palladium:Loading data... INFO:palladium:Loading data done in 0.004 sec. INFO:palladium:Running grid search... Fitting 3 folds for each of 3 candidates, totalling 9 fits ... [Parallel(n_jobs=-1)]: Done 9 out of 9 | elapsed: 0.1s finished INFO:palladium:Running grid search done in 0.041 sec. INFO:palladium: [mean: 0.93000, std: 0.03827, params: {'min_samples_leaf': 2}, mean: 0.92000, std: 0.02902, params: {'min_samples_leaf': 1}, mean: 0.92000, std: 0.02902, params: {'min_samples_leaf': 3}]
  • 20. 20 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Fitting and Testing Models • Script for testing models: pld-test • Loads test data • Applies model to test data • Reports results (e.g., accuracy) INFO:palladium:Loading data... INFO:palladium:Loading data done in 0.003 sec. INFO:palladium:Reading model... INFO:palladium:Reading model done in 0.000 sec. INFO:palladium:Applying model... INFO:palladium:Applying model done in 0.001 sec. INFO:palladium:Score: 0.92.
  • 21. 21 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying and Applying Models • Built-in script for providing models: pld-devserver • Using Flask’s web server • Recommended to use WSGI container / web server, e.g., gunicorn / nginx • Predict server • Loads model (model persister) • Schedule for model updates • Provides web service entry points (“predict”, “alive”) /alive /predict
  • 22. 22 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Testing Service Overhead (1 CPU) Including prediction of Iris model; using Flask‘s develop server ab -n 1000 "http://localhost:4999/predict?sepal%20length=5.2&sepal%20width= 3.5&petal%20length=1.5&petal%20width=0.2" Time taken for tests: 1.217 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 273000 bytes HTML transferred: 112000 bytes Requests per second: 821.82 [#/sec] (mean) Time per request: 1.217 [ms] (mean) Time per request: 1.217 [ms] (mean, across all concurrent requests) Transfer rate: 219.10 [Kbytes/sec] received (Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz)
  • 23. 23 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Extensions • Dynamic instantiation of objects (not only for provided interfaces) • “__factory__” entries are instantiated on config initialization (using resolve_dotted_name) and can be accessed via get_config()[‘name’] • Parameters are passed to constructor • Extension using decorators • A list of decorators can be set to wrap different calls (predict, fit, update model) • Can be used, e.g., for authentication or monitoring of “predict” calls 'predict_decorators': [ 'my_oauth2.authorization', 'my_monitoring.log', ], 'model': { '__factory__': 'sklearn.tree.DecisionTreeClassifier', 'min_samples_leaf': 1, },
  • 24. 24 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Extensions (2) • Own implementation of PredictService can be set in config, e.g., to adapt response format or to define own way how sample is created from request • Here we add a prediction_id to the response: class MyPredictService(PredictService): def response_from_prediction(self, y_pred, single=True): result = y_pred.tolist() metadata = get_metadata() metadata.update({'prediction_id': str(uuid.uuid1())}) if single: result = result[0] response = { 'metadata': metadata, 'result': result, } return make_ujson_response(response, status_code=200)
  • 25. 25 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Agenda 1 Introduction 2 Architecture 3 Example: Setting up a classification service 4 Deployment with Docker and Mesos / Marathon 5 Summary
  • 26. 26 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Docker, Mesos & Marathon • Docker is a platform for the creation, distribution, and execution of applications • Lightweight environment • Easy combination of components • Self-contained container including dependencies • Docker registry for deployment • Cluster framework Mesos provides resources, encapsulating details about used hardware • High scalability and robustness • Marathon (Mesosphere): Framework to launch and monitor services; used in combination with Mesos Source: https://www.docker.com/whatisdocker/ Sources: http://mesos.apache.org/ https://mesosphere.github.io/marathon/
  • 27. 27 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Docker Container Containers for and Deployment of Palladium Instances Palladium Code Application specific code Config Server 1 Server 2 Load Balancer Docker Container Palladium Code Application specific code Config Server 3 Service 1 Service 2 host/service/v1.0/predict?feat1=austria host/service/v1.1/predict?feat1=blue&feat2=38.0
  • 28. 28 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Automated generation of Docker images pld-dockerize • Script pld-dockerize creates Docker image for predictive analytics service • Example: pld-dockerize pld_codetalks ottogroup/palladium-base:1.0.1 alattner/iris-demo- tmp:0.1 • There exists an option to create only the Dockerfile without building the image (-d)
  • 29. 29 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying via Mesos / Marathon Easy deployment: Referring to Docker image and specifying number of instances
  • 30. 30 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying via Mesos / Marathon Palladium instances provide service after deployment
  • 31. 31 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying via Mesos / Marathon Easy scaling via GUI if more or less Palladium instances are desired
  • 32. 32 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying via Mesos / Marathon Easy scaling via GUI if more or less Palladium instances are desired
  • 33. 33 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Deploying via Mesos / Marathon Easy scaling via GUI if more or less Palladium instances are desired
  • 34. 34 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Summary • Palladium 1.0.1 is available at GitHub, PyPI, Anaconda (Linux) • Easy way to expose ML models as web services using scikit-learn’s interface • Mechanism for automated update of models • Script to automatically create Docker images for Palladium services • Easy integration of other relevant services via decorator lists • Authentication • Logging, monitoring • Support for models in other languages than Python: R (via rpy2), Julia (via pyjulia) • Test-driven development, 100% test coverage • Various Otto Group services have been realized with Palladium • We’d be happy to receive feedback, suggestions for improvements, or pull requests!
  • 35. 35 Setting up predictive analytics services with Palladium Andreas Lattner Otto Group BI Acknowledgment • Daniel Nouri (design & development) • Tim Dopke (Palladium + Docker, Mesos / Marathon) • Data Science Team of the Otto Group BI • Developers of used packages, e.g., • scikit-learn • numpy • scipy • pandas • flask • sqlalchemy • pytest • …
  • 36. Titel der Präsentation, Name, Abteilung, Ort, xx. Monat 2014 36 Thank you very much for your attention!