SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Lars Gregori, SAP CX
September 30, 2019
BYOM

Bring Your Own Model
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !2
BYOM - Bring Your Own Model
Data Model Hosting
?
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !3
Save and load a model (classical)
TensorFlow Serving local
TensorFlow Serving with Docker
Cloud (BYOM)
TensorFlow Extended (TFX)
Agenda
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !4
XOR
input_a input_b output
0 0 0
0 1 1
1 0 1
1 1 0
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !5
XOR Model
https://github.com/choas/byom_with_tf
INTERNAL© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !6
“[A] SavedModel [is] a universal,
language-neutral, hermetic,
recoverable serialization of a
TensorFlow model”
SavedModel
https://www.tensorflow.org/tfx/guide#model_vs_savedmodel
Demo Save and Load
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !8


“A flexible, high-performance 

serving system for machine 

learning models”
TensorFlow Serving
https://www.tensorflow.org/tfx/guide/serving
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !9
“TFServe is a framework

designed to serve 

TensorFlow models 

in a simple and easy way 

as an HTTP API server.”
TFServe (Python)
https://pypi.org/project/tfserve/
Demo TFServe
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !11
“One of the easiest ways

to get started using
TensorFlow Serving

is with Docker.”
TensorFlow Serving with Docker
https://www.tensorflow.org/tfx/serving/docker
Demo TensorFlow Serving with Docker
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !13
BYOM - Bring Your Own Model
http://sappress.de/4795
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !14
BYOM - Deploy Modell
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !15
BYOM - Deploy Modell
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !16
BYOM - Deploy Modell
Demo BYOM (XOR)
Demo BYOM Application
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !19
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !20
BYOM Application
Fiori App SCP Python App
Model
token/
Same-origin policy gRPC

caCrt
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !21
applications:
- name: xor
memory: 1024M
buildpack: python_buildpack
command: python app.py
env:
MODEL_NAME: xor
MODEL_VERSION: 3
DEPLOYMENT_URL: https://mlfproduction-deployment-api.cfapps.eu10.hana.ondemand.com
services:
- ml
BYOM - manifest.yaml (Cloud Foundry)
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !22
grpcio==1.12.1
tensorflow==1.8.0
tensorflow-serving-api==1.8.0
requests
flask
BYOM - requirements.txt
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !23
deployment_url = DEPLOYMENT_URL + "/api/v2/modelServers"
token = globals.request.headers.get("Authorization")
headers = {

'Authorization': token,

'Cache-Control': "no-cache"

}
query = {"modelName": MODEL_NAME, "modelVersion": MODEL_VERSION}
response = requests.request("GET", deployment_url,
headers=headers, params=query)
model_info = json.loads(response.text)
BYOM - app.py
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !24
model_info = model_info["modelServers"][0]
endpoint = model_info["endpoints"][0]
credentials = implementations.ssl_channel_credentials(
root_certificates=str(endpoint["caCrt"]))
channel = implementations.secure_channel(
str(endpoint["host"]),
int(endpoint["port"]),
credentials)
BYOM - app.py
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !25
request = predict_pb2.PredictRequest()
request.model_spec.name = MODEL_NAME
request.model_spec.signature_name = 'serving_default'
tfutil = tf.contrib.util
t_proto = tfutil.make_tensor_proto(data, shape=[1, len(data)],
dtype="float")
request.inputs["dense_1_input:0"].CopyFrom(t_proto)
predict = stub.Predict(request)
res = predict.outputs['dense_2/Sigmoid:0'].float_val[0]
return str(res)
BYOM - app.py
TensorFlow Extended (TFX)
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !27
“TensorFlow Extended (TFX) is
an end-to-end platform 

for deploying 

production ML pipelines.”
TensorFlow Extended (TFX)
https://www.tensorflow.org/tfx
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !28
TensorFlow Extended
https://www.tensorflow.org/tfx/guide#tfx_pipeline_components
© 2019 SAP SE or an SAP affiliate company. All rights reserved. !29
TensorFlow Extended (TFX)
https://www.youtube.com/watch?v=A5wiwT1qFjc
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !30
TensorFlow Serving
BYOM
BYOM Application
TensorFlow Extended (TFX)
Summary
Contact information:
Lars Gregori
@choas
Thank you.
www.sap.com/germany/contactsap
© 2019 SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten.
Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer,
ohne die ausdrückliche schriftliche Genehmigung durch SAP SE oder ein SAP-Konzernunternehmen nicht gestattet.
In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die von SAP SE oder deren
Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Produkte
können länderspezifische Unterschiede aufweisen.
Die vorliegenden Unterlagen werden von der SAP SE oder einem SAP-Konzernunternehmen bereitgestellt und dienen ausschließlich
zu Informationszwecken. Die SAP SE oder ihre Konzernunternehmen übernehmen keinerlei Haftung oder Gewährleistung für Fehler
oder Unvollständigkeiten in dieser Publikation. Die SAP SE oder ein SAP-Konzernunternehmen steht lediglich für Produkte und
Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich
geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren.
Insbesondere sind die SAP SE oder ihre Konzernunternehmen in keiner Weise verpflichtet, in dieser Publikation oder einer
zugehörigen Präsentation dargestellte Geschäftsabläufe zu verfolgen oder hierin wiedergegebene Funktionen zu entwickeln oder zu
veröffentlichen. Diese Publikation oder eine zugehörige Präsentation, die Strategie und etwaige künftige Entwicklungen, Produkte und/
oder Plattformen der SAP SE oder ihrer Konzernunternehmen können von der SAP SE oder ihren Konzernunternehmen jederzeit und
ohne Angabe von Gründen unangekündigt geändert werden. Die in dieser Publikation enthaltenen Informationen stellen keine Zusage,
kein Versprechen und keine rechtliche Verpflichtung zur Lieferung von Material, Code oder Funktionen dar. Sämtliche
vorausschauenden Aussagen unterliegen unterschiedlichen Risiken und Unsicherheiten, durch die die tatsächlichen Ergebnisse von
den Erwartungen abweichen können. Dem Leser wird empfohlen, diesen vorausschauenden Aussagen kein übertriebenes Vertrauen
zu schenken und sich bei Kaufentscheidungen nicht auf sie zu stützen.
SAP und andere in diesem Dokument erwähnte Produkte und Dienstleistungen von SAP sowie die dazugehörigen Logos sind Marken
oder eingetragene Marken der SAP SE (oder von einem SAP-Konzernunternehmen) in Deutschland und verschiedenen anderen
Ländern weltweit. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen.
Zusätzliche Informationen zur Marke und Vermerke finden Sie auf der Seite www.sap.com/corporate/de/legal/copyright.html.
SAP folgen auf

Weitere ähnliche Inhalte

Ähnlich wie BYOM - Bring Your Own Model

SAP Skills digital Lernen im SAP Learning Hub
SAP Skills digital Lernen im SAP Learning Hub  SAP Skills digital Lernen im SAP Learning Hub
SAP Skills digital Lernen im SAP Learning Hub Thomas Jenewein
 
Espresso nk fertiger_2016
Espresso nk fertiger_2016Espresso nk fertiger_2016
Espresso nk fertiger_2016Steffen König
 
Lernen bei Bedarf & im Kontext mit Performance Support
Lernen bei Bedarf & im Kontext mit Performance Support Lernen bei Bedarf & im Kontext mit Performance Support
Lernen bei Bedarf & im Kontext mit Performance Support Thomas Jenewein
 
SAP PM – Neue Entwicklungen der SAP 2019
SAP PM – Neue Entwicklungen der SAP 2019SAP PM – Neue Entwicklungen der SAP 2019
SAP PM – Neue Entwicklungen der SAP 2019Branding Maintenance
 
Ui5con satyendra raksha1725-1810
Ui5con satyendra raksha1725-1810Ui5con satyendra raksha1725-1810
Ui5con satyendra raksha1725-1810sayendra_dhar
 
Aras PLM Company Update
Aras PLM Company UpdateAras PLM Company Update
Aras PLM Company UpdateAras
 
Fifty shades of Cloud - Überblick, Best Practices, Beispiele
Fifty shades of Cloud - Überblick, Best Practices, BeispieleFifty shades of Cloud - Überblick, Best Practices, Beispiele
Fifty shades of Cloud - Überblick, Best Practices, BeispieleSEEBURGER
 
Splunk Webinar: Maschinendaten anreichern mit Informationen
Splunk Webinar: Maschinendaten anreichern mit InformationenSplunk Webinar: Maschinendaten anreichern mit Informationen
Splunk Webinar: Maschinendaten anreichern mit InformationenGeorg Knon
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1DNUG e.V.
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...Salesforce Deutschland
 
Magic xpi sap salesforce speed start paket (1)
Magic xpi sap salesforce speed start paket (1)Magic xpi sap salesforce speed start paket (1)
Magic xpi sap salesforce speed start paket (1)Mullrich1012
 
aicomp | group übernimmt ABAYOO
aicomp | group übernimmt ABAYOOaicomp | group übernimmt ABAYOO
aicomp | group übernimmt ABAYOOSascha Rauhe
 
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...AI Frontiers
 
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...SERKEM GmbH
 
SAP SuccessFactors Enablement-Angebote für Neu- und Bestandskunden
SAP SuccessFactors Enablement-Angebote für Neu- und BestandskundenSAP SuccessFactors Enablement-Angebote für Neu- und Bestandskunden
SAP SuccessFactors Enablement-Angebote für Neu- und BestandskundenUwe Hafner
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
SAP Bedrohungserkennung als Cloud Lösung - SAP ETD
 SAP Bedrohungserkennung als Cloud Lösung - SAP ETD SAP Bedrohungserkennung als Cloud Lösung - SAP ETD
SAP Bedrohungserkennung als Cloud Lösung - SAP ETDIBsolution GmbH
 

Ähnlich wie BYOM - Bring Your Own Model (20)

SAP HANA Platform
SAP HANA Platform SAP HANA Platform
SAP HANA Platform
 
SAP Skills digital Lernen im SAP Learning Hub
SAP Skills digital Lernen im SAP Learning Hub  SAP Skills digital Lernen im SAP Learning Hub
SAP Skills digital Lernen im SAP Learning Hub
 
Espresso nk fertiger_2016
Espresso nk fertiger_2016Espresso nk fertiger_2016
Espresso nk fertiger_2016
 
Lernen bei Bedarf & im Kontext mit Performance Support
Lernen bei Bedarf & im Kontext mit Performance Support Lernen bei Bedarf & im Kontext mit Performance Support
Lernen bei Bedarf & im Kontext mit Performance Support
 
SAP PM – Neue Entwicklungen der SAP 2019
SAP PM – Neue Entwicklungen der SAP 2019SAP PM – Neue Entwicklungen der SAP 2019
SAP PM – Neue Entwicklungen der SAP 2019
 
Ui5con satyendra raksha1725-1810
Ui5con satyendra raksha1725-1810Ui5con satyendra raksha1725-1810
Ui5con satyendra raksha1725-1810
 
Aras PLM Company Update
Aras PLM Company UpdateAras PLM Company Update
Aras PLM Company Update
 
Fifty shades of Cloud - Überblick, Best Practices, Beispiele
Fifty shades of Cloud - Überblick, Best Practices, BeispieleFifty shades of Cloud - Überblick, Best Practices, Beispiele
Fifty shades of Cloud - Überblick, Best Practices, Beispiele
 
Splunk Webinar: Maschinendaten anreichern mit Informationen
Splunk Webinar: Maschinendaten anreichern mit InformationenSplunk Webinar: Maschinendaten anreichern mit Informationen
Splunk Webinar: Maschinendaten anreichern mit Informationen
 
Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1Entwicklung mit Volt MX und Co. | Teil 1
Entwicklung mit Volt MX und Co. | Teil 1
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...
Magic - Schnelle Integration von Salesforce.com® und SAP® durch vorkonfigurie...
 
Magic xpi sap salesforce speed start paket (1)
Magic xpi sap salesforce speed start paket (1)Magic xpi sap salesforce speed start paket (1)
Magic xpi sap salesforce speed start paket (1)
 
aicomp | group übernimmt ABAYOO
aicomp | group übernimmt ABAYOOaicomp | group übernimmt ABAYOO
aicomp | group übernimmt ABAYOO
 
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...
Rohit Tripathi at AI Frontiers : Using intelligent connectivity and AI to tra...
 
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...
Einführung einer SAP Fiori-Anwendung zur Realisierung einer effizienten, digi...
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
 
SAP SuccessFactors Enablement-Angebote für Neu- und Bestandskunden
SAP SuccessFactors Enablement-Angebote für Neu- und BestandskundenSAP SuccessFactors Enablement-Angebote für Neu- und Bestandskunden
SAP SuccessFactors Enablement-Angebote für Neu- und Bestandskunden
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
SAP Bedrohungserkennung als Cloud Lösung - SAP ETD
 SAP Bedrohungserkennung als Cloud Lösung - SAP ETD SAP Bedrohungserkennung als Cloud Lösung - SAP ETD
SAP Bedrohungserkennung als Cloud Lösung - SAP ETD
 

Mehr von Lars Gregori

uTensor - embedded devices and machine learning models
uTensor - embedded devices and machine learning modelsuTensor - embedded devices and machine learning models
uTensor - embedded devices and machine learning modelsLars Gregori
 
SAP Leonardo Machine Learning
SAP Leonardo Machine LearningSAP Leonardo Machine Learning
SAP Leonardo Machine LearningLars Gregori
 
Minecraft and reinforcement learning
Minecraft and reinforcement learningMinecraft and reinforcement learning
Minecraft and reinforcement learningLars Gregori
 
Machine Learning Models on Mobile Devices
Machine Learning Models on Mobile DevicesMachine Learning Models on Mobile Devices
Machine Learning Models on Mobile DevicesLars Gregori
 
Minecraft and Reinforcement Learning
Minecraft and Reinforcement LearningMinecraft and Reinforcement Learning
Minecraft and Reinforcement LearningLars Gregori
 
IoT protocolls - smart washing machine
IoT protocolls - smart washing machineIoT protocolls - smart washing machine
IoT protocolls - smart washing machineLars Gregori
 
[DE] AI und Minecraft
[DE] AI und Minecraft[DE] AI und Minecraft
[DE] AI und MinecraftLars Gregori
 
Minecraft and Reinforcement Learning
Minecraft and Reinforcement LearningMinecraft and Reinforcement Learning
Minecraft and Reinforcement LearningLars Gregori
 
[DE] IoT Protokolle
[DE] IoT Protokolle[DE] IoT Protokolle
[DE] IoT ProtokolleLars Gregori
 
Using a trained model on your mobile device
Using a trained model on your mobile deviceUsing a trained model on your mobile device
Using a trained model on your mobile deviceLars Gregori
 
Using a trained model on your mobile device
Using a trained model on your mobile deviceUsing a trained model on your mobile device
Using a trained model on your mobile deviceLars Gregori
 
[German] Boards für das IoT-Prototyping
[German] Boards für das IoT-Prototyping[German] Boards für das IoT-Prototyping
[German] Boards für das IoT-PrototypingLars Gregori
 
IoT, APIs und Microservices - alles unter Node-RED
IoT, APIs und Microservices - alles unter Node-REDIoT, APIs und Microservices - alles unter Node-RED
IoT, APIs und Microservices - alles unter Node-REDLars Gregori
 
Web Bluetooth - Next Generation Bluetooth?
Web Bluetooth - Next Generation Bluetooth?   Web Bluetooth - Next Generation Bluetooth?
Web Bluetooth - Next Generation Bluetooth? Lars Gregori
 
Embedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesEmbedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesLars Gregori
 
Embedded Rust on IoT devices
Embedded Rust on IoT devicesEmbedded Rust on IoT devices
Embedded Rust on IoT devicesLars Gregori
 
IoT mit Rust programmieren
IoT mit Rust programmierenIoT mit Rust programmieren
IoT mit Rust programmierenLars Gregori
 
Boards for the IoT-Prototyping
Boards for the IoT-PrototypingBoards for the IoT-Prototyping
Boards for the IoT-PrototypingLars Gregori
 
Groß steuert klein - Wie lässt sich ein Arduino steuern?
Groß steuert klein - Wie lässt sich ein Arduino steuern?Groß steuert klein - Wie lässt sich ein Arduino steuern?
Groß steuert klein - Wie lässt sich ein Arduino steuern?Lars Gregori
 

Mehr von Lars Gregori (20)

uTensor - embedded devices and machine learning models
uTensor - embedded devices and machine learning modelsuTensor - embedded devices and machine learning models
uTensor - embedded devices and machine learning models
 
SAP Leonardo Machine Learning
SAP Leonardo Machine LearningSAP Leonardo Machine Learning
SAP Leonardo Machine Learning
 
Minecraft and reinforcement learning
Minecraft and reinforcement learningMinecraft and reinforcement learning
Minecraft and reinforcement learning
 
Machine Learning Models on Mobile Devices
Machine Learning Models on Mobile DevicesMachine Learning Models on Mobile Devices
Machine Learning Models on Mobile Devices
 
Minecraft and Reinforcement Learning
Minecraft and Reinforcement LearningMinecraft and Reinforcement Learning
Minecraft and Reinforcement Learning
 
IoT protocolls - smart washing machine
IoT protocolls - smart washing machineIoT protocolls - smart washing machine
IoT protocolls - smart washing machine
 
[DE] AI und Minecraft
[DE] AI und Minecraft[DE] AI und Minecraft
[DE] AI und Minecraft
 
Minecraft and Reinforcement Learning
Minecraft and Reinforcement LearningMinecraft and Reinforcement Learning
Minecraft and Reinforcement Learning
 
[DE] IoT Protokolle
[DE] IoT Protokolle[DE] IoT Protokolle
[DE] IoT Protokolle
 
Using a trained model on your mobile device
Using a trained model on your mobile deviceUsing a trained model on your mobile device
Using a trained model on your mobile device
 
Using a trained model on your mobile device
Using a trained model on your mobile deviceUsing a trained model on your mobile device
Using a trained model on your mobile device
 
AI and Minecraft
AI and MinecraftAI and Minecraft
AI and Minecraft
 
[German] Boards für das IoT-Prototyping
[German] Boards für das IoT-Prototyping[German] Boards für das IoT-Prototyping
[German] Boards für das IoT-Prototyping
 
IoT, APIs und Microservices - alles unter Node-RED
IoT, APIs und Microservices - alles unter Node-REDIoT, APIs und Microservices - alles unter Node-RED
IoT, APIs und Microservices - alles unter Node-RED
 
Web Bluetooth - Next Generation Bluetooth?
Web Bluetooth - Next Generation Bluetooth?   Web Bluetooth - Next Generation Bluetooth?
Web Bluetooth - Next Generation Bluetooth?
 
Embedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devicesEmbedded Rust – Rust on IoT devices
Embedded Rust – Rust on IoT devices
 
Embedded Rust on IoT devices
Embedded Rust on IoT devicesEmbedded Rust on IoT devices
Embedded Rust on IoT devices
 
IoT mit Rust programmieren
IoT mit Rust programmierenIoT mit Rust programmieren
IoT mit Rust programmieren
 
Boards for the IoT-Prototyping
Boards for the IoT-PrototypingBoards for the IoT-Prototyping
Boards for the IoT-Prototyping
 
Groß steuert klein - Wie lässt sich ein Arduino steuern?
Groß steuert klein - Wie lässt sich ein Arduino steuern?Groß steuert klein - Wie lässt sich ein Arduino steuern?
Groß steuert klein - Wie lässt sich ein Arduino steuern?
 

BYOM - Bring Your Own Model

  • 1. Lars Gregori, SAP CX September 30, 2019 BYOM
 Bring Your Own Model
  • 2. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !2 BYOM - Bring Your Own Model Data Model Hosting ?
  • 3. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !3 Save and load a model (classical) TensorFlow Serving local TensorFlow Serving with Docker Cloud (BYOM) TensorFlow Extended (TFX) Agenda
  • 4. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !4 XOR input_a input_b output 0 0 0 0 1 1 1 0 1 1 1 0
  • 5. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !5 XOR Model https://github.com/choas/byom_with_tf
  • 6. INTERNAL© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !6 “[A] SavedModel [is] a universal, language-neutral, hermetic, recoverable serialization of a TensorFlow model” SavedModel https://www.tensorflow.org/tfx/guide#model_vs_savedmodel
  • 8. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !8 
 “A flexible, high-performance 
 serving system for machine 
 learning models” TensorFlow Serving https://www.tensorflow.org/tfx/guide/serving
  • 9. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !9 “TFServe is a framework
 designed to serve 
 TensorFlow models 
 in a simple and easy way 
 as an HTTP API server.” TFServe (Python) https://pypi.org/project/tfserve/
  • 11. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !11 “One of the easiest ways
 to get started using TensorFlow Serving
 is with Docker.” TensorFlow Serving with Docker https://www.tensorflow.org/tfx/serving/docker
  • 12. Demo TensorFlow Serving with Docker
  • 13. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !13 BYOM - Bring Your Own Model http://sappress.de/4795
  • 14. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !14 BYOM - Deploy Modell
  • 15. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !15 BYOM - Deploy Modell
  • 16. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !16 BYOM - Deploy Modell
  • 19. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !19
  • 20. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !20 BYOM Application Fiori App SCP Python App Model token/ Same-origin policy gRPC
 caCrt
  • 21. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !21 applications: - name: xor memory: 1024M buildpack: python_buildpack command: python app.py env: MODEL_NAME: xor MODEL_VERSION: 3 DEPLOYMENT_URL: https://mlfproduction-deployment-api.cfapps.eu10.hana.ondemand.com services: - ml BYOM - manifest.yaml (Cloud Foundry)
  • 22. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !22 grpcio==1.12.1 tensorflow==1.8.0 tensorflow-serving-api==1.8.0 requests flask BYOM - requirements.txt
  • 23. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !23 deployment_url = DEPLOYMENT_URL + "/api/v2/modelServers" token = globals.request.headers.get("Authorization") headers = {
 'Authorization': token,
 'Cache-Control': "no-cache"
 } query = {"modelName": MODEL_NAME, "modelVersion": MODEL_VERSION} response = requests.request("GET", deployment_url, headers=headers, params=query) model_info = json.loads(response.text) BYOM - app.py
  • 24. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !24 model_info = model_info["modelServers"][0] endpoint = model_info["endpoints"][0] credentials = implementations.ssl_channel_credentials( root_certificates=str(endpoint["caCrt"])) channel = implementations.secure_channel( str(endpoint["host"]), int(endpoint["port"]), credentials) BYOM - app.py
  • 25. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !25 request = predict_pb2.PredictRequest() request.model_spec.name = MODEL_NAME request.model_spec.signature_name = 'serving_default' tfutil = tf.contrib.util t_proto = tfutil.make_tensor_proto(data, shape=[1, len(data)], dtype="float") request.inputs["dense_1_input:0"].CopyFrom(t_proto) predict = stub.Predict(request) res = predict.outputs['dense_2/Sigmoid:0'].float_val[0] return str(res) BYOM - app.py
  • 27. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !27 “TensorFlow Extended (TFX) is an end-to-end platform 
 for deploying 
 production ML pipelines.” TensorFlow Extended (TFX) https://www.tensorflow.org/tfx
  • 28. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !28 TensorFlow Extended https://www.tensorflow.org/tfx/guide#tfx_pipeline_components
  • 29. © 2019 SAP SE or an SAP affiliate company. All rights reserved. !29 TensorFlow Extended (TFX) https://www.youtube.com/watch?v=A5wiwT1qFjc
  • 30. © 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ !30 TensorFlow Serving BYOM BYOM Application TensorFlow Extended (TFX) Summary
  • 32. www.sap.com/germany/contactsap © 2019 SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP SE oder ein SAP-Konzernunternehmen nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die von SAP SE oder deren Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Produkte können länderspezifische Unterschiede aufweisen. Die vorliegenden Unterlagen werden von der SAP SE oder einem SAP-Konzernunternehmen bereitgestellt und dienen ausschließlich zu Informationszwecken. Die SAP SE oder ihre Konzernunternehmen übernehmen keinerlei Haftung oder Gewährleistung für Fehler oder Unvollständigkeiten in dieser Publikation. Die SAP SE oder ein SAP-Konzernunternehmen steht lediglich für Produkte und Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren. Insbesondere sind die SAP SE oder ihre Konzernunternehmen in keiner Weise verpflichtet, in dieser Publikation oder einer zugehörigen Präsentation dargestellte Geschäftsabläufe zu verfolgen oder hierin wiedergegebene Funktionen zu entwickeln oder zu veröffentlichen. Diese Publikation oder eine zugehörige Präsentation, die Strategie und etwaige künftige Entwicklungen, Produkte und/ oder Plattformen der SAP SE oder ihrer Konzernunternehmen können von der SAP SE oder ihren Konzernunternehmen jederzeit und ohne Angabe von Gründen unangekündigt geändert werden. Die in dieser Publikation enthaltenen Informationen stellen keine Zusage, kein Versprechen und keine rechtliche Verpflichtung zur Lieferung von Material, Code oder Funktionen dar. Sämtliche vorausschauenden Aussagen unterliegen unterschiedlichen Risiken und Unsicherheiten, durch die die tatsächlichen Ergebnisse von den Erwartungen abweichen können. Dem Leser wird empfohlen, diesen vorausschauenden Aussagen kein übertriebenes Vertrauen zu schenken und sich bei Kaufentscheidungen nicht auf sie zu stützen. SAP und andere in diesem Dokument erwähnte Produkte und Dienstleistungen von SAP sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP SE (oder von einem SAP-Konzernunternehmen) in Deutschland und verschiedenen anderen Ländern weltweit. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen. Zusätzliche Informationen zur Marke und Vermerke finden Sie auf der Seite www.sap.com/corporate/de/legal/copyright.html. SAP folgen auf