Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks...

41
Dr. Andreas Lattner Group Business Intelligence, Otto Group Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium

Transcript of Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks...

Page 1: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

Titel der Präsentation,

Name, Abteilung,

Ort, xx. Monat 2014

1

Dr. Andreas LattnerGroup Business Intelligence, Otto Group

Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium

Page 2: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

2 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Agenda

1 Einleitung

2 Framework und Architektur

3 Beispiel: Aufsetzen eines Klassifikationsdienstes mit Palladium

4 Deployment mit Docker und Mesos / Marathon

5 Zusammenfassung

Page 3: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

3 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Historie und Motivation

Palladium basiert auf einem von der Otto Group BI bei Hermes entwickelten Kern

Anforderungen Predictive Analytics in der

Gruppe

• Machine Learning Modelle schnell vom Prototyp in

Produktion zu bringen. Beschleunigung Übergang

Datenanalyse zu Produktion

• Hohe Skalierbarkeit

• Zuverlässiger Betrieb und Ausfallsicherheit bzgl.

Hardwaredefekten

• Vermeidung von Lizenzkosten bei

Gruppenunternehmen

• Schneller Projektstart. Das Rad nicht für jedes

Predictive Analytics-Projekt neu erfinden

+

Prediction Framework für

Zeitfensterprognose

PALLADIUM

Erweiterung für

Group-weite

Anwendung

Page 4: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

4 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Agenda

1 Einleitung

2 Framework und Architektur

3 Beispiel: Aufsetzen eines Klassifikationsdienstes mit Palladium

4 Deployment mit Docker und Mesos / Marathon

5 Zusammenfassung

Page 5: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

5 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Palladium: Framework für die Erzeugung, Evaluation, Verteilung und Nutzung von PrädiktionsmodellenAnwendungsspezifische Aspekte lassen sich flexibel über Schnittstellen integrieren

Palladium

Model 1

DB

Config

predict(X) ŷ

Palladium

Model 2

DB

Config

predict(X) ŷ

• Model Management (Python, R, Julia)Palladium ermöglicht Erstellen, Speichern, Laden,

Verteilen & Versionieren von Modellen, Erfassung von

Metadaten

• Erstellung operativer PrognosediensteBereitstellung der Dienste als Web Service

• FlexibilitätÜber Konfiguration und definierte Schnittstellen lassen

sich schnell neue Dienste aufsetzen

• Automatisierte AktualisierungUpdate der Daten / Modelle für Dienst in konfigurierbaren

Zyklen

• SkalierbarkeitEinfaches Verteilen und Skalieren der Prognosedienste

über Docker-Container und Load Balancer

• Autorisierung und LoggingOAuth2-Integration und Logging für Prüfung der

Zugriffsrechte und Nutzungsstatistik

Page 6: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

6 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Architektur

Erzeugung von Modellen

Anwendung von Modellen

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

Page 7: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

7 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

ArchitekturFlexibles Einbinden von Autorisierung, Logging und Monitoring

Erzeugung von Modellen

Anwendung von ModellenModel DB

Testing Data

Server 1 Server 2

Load Balancer

Server 3

host/service/v1.1/predict?feat1=blue&feat2=38.0

Train Server

“class A”

“Service User”

model

model

Training Data

Predict Node

OAuth2-ServerMonitoring Service

Page 8: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

8 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Flexible Struktur via Interfaces

Integration von scikit-learn / Nutzung des Interfaces

Palladium

config

dataset

loader train

CSV Loader

DB Connection

grid searchparam1: [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 testCSV Loader

DB Connection

Page 9: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

9 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Agenda

1 Einleitung

2 Framework und Architektur

3 Beispiel: Aufsetzen eines Klassifikationsdienstes mit Palladium

4 Deployment mit Docker und Mesos / Marathon

5 Zusammenfassung

Page 10: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

10 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Beispiel: Iris-Klassifikation

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- & Testdaten

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-setosa",

"status":"OK"}

Page 11: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

11 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration und zugehörige Klassen

'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

Page 12: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

12 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'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,

Page 13: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

13 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'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,

Page 14: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

14 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'dataset_loader_train': {...},

'dataset_loader_test': {...},

'model': {...},

'grid_search': {...},

'model_persister': {...},

'predict_service': {...},

'__factory__':

'sklearn.tree.

DecisionTreeClassifier',

'min_samples_leaf': 1,

Page 15: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

15 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'dataset_loader_train': {...},

'dataset_loader_test': {...},

'model': {...},

'grid_search': {...},

'model_persister': {...},

'predict_service': {...},

'param_grid': {

'min_samples_leaf':

[1, 2, 3],

},

Page 16: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

16 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'dataset_loader_train': {...},

'dataset_loader_test': {...},

'model': {...},

'grid_search': {...},

'model_persister': {...},

'predict_service': {...},

'__factory__':

'palladium.persistence.File',

'path':

'iris-model-{version}.pickle',

Page 17: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

17 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Konfiguration

'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'),

],

Page 18: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

18 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Lernen und Evaluieren von ModellenKommando: pld-fit

• Lädt Trainingsdaten

• Lernt Modell

• Speichert Modell + Metadaten

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.

Page 19: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

19 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Lernen und Evaluieren von ModellenKommando: pld-grid-search

• Lädt Trainingsdaten

• Teilt Trainingsdaten in “Folds” (Cross Validation)

• Trainiert und evaluiert Modelle auf verschiedenen Folds

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}]

Page 20: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

20 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Lernen und Evaluieren von ModellenKommando: pld-test

• Lädt Testdaten

• Wendet gelerntes Modell auf Testdaten an

• Zeigt Ergebnis (z.B. 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.

Page 21: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

21 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Anwenden von ModellenKommandos: pld-devserver & pld-stream

• Integriertes Script zum Testen des Web Services: pld-devserver

• Einsatz des Flask Web Servers

• Empfehlung zur Nutzung eines WSGI-Containers + Web Server,

z. B. gunicorn / nginx

• Predict Server

• Lädt Modell (via Model Persister)

• Konfiguration regelmäßiger Modell-Updates möglich

• Bereitstellung von Web Service Entry Points (“predict”, “alive”)

• Kommando für stdin/stdout-Verarbeitung von Prognoseanfragen: pld-stream

• Zeilenweise Verarbeitung, Rückgabe der Prognose an stdout

• In Kombination mit Hive zur Erstellung großer Anzahl an Prognosen eingesetzt

Page 22: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

22 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Statusinformationen über aktuellen predict-NodeEntry Point /alive, z.B. http://localhost:5000/alive

{

"memory_usage": 68,

"palladium_version": "1.0",

"service_metadata": {

"service_name": "iris",

"service_version": "0.1"

},

"model": {

"updated": "2015-09-28T16:33:53.316178",

"metadata": {

"train_timestamp": "2015-09-28T10:16:33.226367",

"version": 2,

"score_train": 0.94,

"score_test": 0.96

}

}

}

Page 23: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

23 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Anwendung des ModellsEntry Point /predict

GET Request:

http://localhost:5000/predict?sepal%20length=5.2&sepal%20width=3

.5&petal%20length=1.5&petal%20width=0.2

{

"result": "Iris-setosa",

"metadata": {

"error_code": 0,

"service_version": "0.1",

"status": "OK",

"service_name": "iris"

}

}

Page 24: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

24 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Performanztest des Service-Overheads (1 CPU)Inklusive Prognose durch Iris-Modell; Verwendung des Entwicklungs-Webservers von Flask

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)

Page 25: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

25 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Agenda

1 Einleitung

2 Framework und Architektur

3 Beispiel: Aufsetzen eines Klassifikationsdienstes mit Palladium

4 Deployment mit Docker und Mesos / Marathon

5 Zusammenfassung

Page 26: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

26 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Docker, Mesos & Marathon

• Docker ist eine Plattform für die

Erzeugung, Verteilung & Ausführung

von Applikationen

• Leichtgewichtige Umgebung

• Einfache Kombination von Komponenten

• Gesamtpaket inkl. Abhängigkeiten

• Docker Hub für Deployment

• Cluster-Framework Mesos abstrahiert

von eingesetzter Hardware und

stellt Ressourcen bereit

• Hohe Skalierbarkeit und Ausfallsicherheit

• Marathon (Mesosphere): Framework zum

Initialisieren und Überwachen von Diensten im

Cluster; Einsatz in Kombination mit Mesos

Quelle: https://www.docker.com/whatisdocker/

Quellen:

http://mesos.apache.org/

https://mesosphere.github.io/marathon/

Page 27: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

27 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Docker Image

Deployment von Palladium-Instanzen via Docker

Palladium

Base Image

Application

specific code

Config

Server 1 Server 2

Load Balancer

Docker Image

Palladium

Base Image

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

Skript zum automatischen Erzeugen von Docker-Images für Palladium-basierte Dienste

Page 28: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

28 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Automatisches Erzeugen von Docker-ImagesKommando: pld-dockerize

• Script pld-dockerize erzeugt Docker-Image für Prognosedienst, z.B.

pld-dockerize pld_codetalks ottogroup/palladium-base:1.0 alattner/iris-demo-

tmp:0.1

• Option, nur das Dockerfile für eine Nachbearbeitung zu erzeugen (ohne Erstellung

des Images)

Page 29: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

29 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 30: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

30 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 31: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

31 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 32: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

32 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 33: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

33 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 34: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

34 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 35: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

35 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 36: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

36 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 37: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

37 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Deployment via Mesos / Marathon

Page 38: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

38 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Agenda

1 Einleitung

2 Framework und Architektur

3 Beispiel: Aufsetzen eines Klassifikationsdienstes mit Palladium

4 Deployment mit Docker und Mesos / Marathon

5 Zusammenfassung

Page 39: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

39 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Zusammenfassunghttps://github.com/ottogroup/palladium

• Unterstützung von Modellen in Python, R und Julia

• Mechanismus für automatisches Modell-Update

• Einfache Integration von Authentifizierungs-, Logging- und Monitoringlösungen

• Administration von Modellen (Aktivieren / Löschen)

• Automatisierte Generierung von Docker-Images (pld-dockerize)

• Skalierung und Überwachung z.B. mit Mesos / Marathon

• Einfache Installation über pip oder conda

• Bereitstellung des Palladium Docker Images bei Docker Hub:

https://hub.docker.com/r/ottogroup/palladium-base/

• Ausführliche Dokumentation inkl. Tutorial für Beispieldienst bei readthedocs

• Test-driven development, 100% Coverage

• Verschiedene Otto Group Services wurden mit Palladium umgesetzt

Page 40: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

40 Skalierbare Prognose- und Analysedienste mit Palladium

Dr. Andreas Lattner

Otto Group BI

Herzlichen Dank an…

• Daniel Nouri (gemeinsame Konzeption & Entwicklung von Palladium)

• Tim Dopke (Palladium mit Docker, Mesos / Marathon)

• das Data Science-Team der Otto Group BI

• alle Entwickler der eingesetzten Pakete, u.a.

• scikit-learn

• numpy

• scipy

• pandas

• flask

• sqlalchemy

• pytest

• …

Page 41: Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit Palladium - code.talks 2015

Titel der Präsentation,

Name, Abteilung,

Ort, xx. Monat 2014

41

Vielen Dank für Ihre Aufmerksamkeit!

andreas.lattner //AT\\ ottogroup.com