SlideShare une entreprise Scribd logo
1  sur  46
1
Comments on Streaming
Deep Learning with Flink
Flink Forward San Francisco, April 11, 2017
Dean Wampler, Ph.D.
dean@lightbend.com
@deanwampler
© Lightbend, 2014-2017. All rights reserved.
2
• Why DL for Streaming? Why DL for
Flink?
• Model Training vs. Inference
• Practical Approaches with Flink
• The Future of DL with Flink
Outline - This is a status report of work in progress at Lightbend. It’s far from complete and definitely not “battle tested”, but this talk reflects our current
thinking and approach.
Why DL for Streaming?
Why DL for Flink?
Because deep learning
is “so hot right now.”
Images: https://github.com/tensorflow/models/tree/master/inception, https://deeplearning4j.org, https://github.com/tensorflow, and https://
deepmind.com/
What Is deep learning?
• A very sophisticated non-
linear model
• A way to discover
features, rather than
engineer them
https://en.wikipedia.org/wiki/Convolutional_neural_network
I won’t explain DL, but offer a few points. It’s not mysterious. It’s a sophisticated non-linear modeler. It’s also a tool for learning the “features” (the
characteristics of the data), rather than engineering them explicitly.
Because streaming
is “so hot right now.”
http://tradinghub.co/watch-list-for-mar-26th-2015/
… and Flink provides large
scale and low latency!
http://tradinghub.co/watch-list-for-mar-26th-2015/
Why Lightbend likes Flink
On	Cray!!
FDP
Streaming
Lightbend Fast Data Platform V1.0
REST
Logs
Sockets
Kafka
Connect
Storage
HDFS,
S3,	…
SQL/
NoSQL
Search
Kafka
Streams
Lightbend.ai
Cluster
Analysis
Machine	
LearningMicroservices
Produc@on	Suite
Machine
Learning
ML …
Streaming
Streams
Batch
Streaming
Flink
SQL
Intelligent	Management
9
The Fast Data Platform that we’re building as a commercial, streaming data processing stack. I won’t go through the details (but I’ll show a link at the end
for more information). Rather, I’ll focus on the streaming core…
Streaming
Logs
Sockets
Storage
HDFS,
S3,	…
SQL/
NoSQL
Search
Kafka
Streams
Streaming
Streams
Batch
Streaming
Flink
SQL
10
The core: It requires a backplane designed from streaming - Kafka here. To meet the full spectrum of streaming needs, we’re bundling 4 stream
processing engines, because no single engine meets all needs. Finally, persistence is required.
Streaming
Logs
Sockets
Storage
HDFS,
S3,	…
SQL/
NoSQL
Search
Kafka
Streams
Streaming
Streams
Batch
Streaming
Flink
SQL
•Low latency
•High volume
•Apache Beam
Data flows
(correctness)
11
Flink contrasts mostly with Spark. It fixes two (current) limitations: 1) low latency instead of medium latency from the current mini-batch streaming model
in Spark, 2) Flink provides state of the art semantics for more sophisticated stream processing, especially when high accuracy (as opposed to approximate
values) is important. These semantics are defined by Apache Beam (a.k.a., Google Dataflow). Flink can run Beam data flows (The open source Apache Beam
requires a third-party runner). Both Spark and Flink provide excellent, scalable performance at high volumes.
Streaming
Logs
Sockets
Storage
HDFS,
S3,	…
SQL/
NoSQL
Search
Kafka
Streams
Streaming
Streams
Batch
Streaming
Flink
SQL
•Mini-batch
model useful for
model training
•Richer ML
options
12
Spark has medium latency (~0.5 seconds and up), optimized for excellent, scalable performance at high volumes, but it’s not a true streaming engine. We
would rather use Flink for low-latency model application (scoring), but training models incrementally through is one option we’ll discuss. Also, the Spark
ecosystem is ahead of Flink’s in terms of integrations with ML tools.
Challenges Using Flink
for Deep Learning
Use a Static Model for
Inference?
• This is (relatively) straightforward. You load a
model at startup and apply it (score data) in
the stream.
• See Eron Wright’s talk!
First, if you have a static model and you want to use it from Flink (“as a map function” - Eron Wright), this is relatively straightforward.
Train the Model and Do
Inference?
• May not be reasonable to do training per
record with low latency
• But see Swaminathan Sundararaman’s talk
Harder problem is training the model on the stream and doing inference
Train the Model and Do
Inference
• If too slow, could train mini-batches in
windows with longer latency
• Periodically update the model
• Do inference with low latency using “old”
model
Distributed Training
• You have to train on each data partition
separately, then merge the model.
• Actually, DL4J does this, then averages the
model parameters.
Model Training vs.
Model Serving (Inference)
Kinds of Training
• Batch - all data at once
• Mini-batch - sample batches (with
replacement!), iterate the model with each
batch
• “Online” - iterate the model with each record
Online Mini-batch Batch
The “with replacement” means that by design, you keep sampling the same data set, so each record will appear in 0, 1, or more mini-batches.
Mini-batch Training
• Originally developed for offline use, where
it’s too expensive to train with all the data.
• Would “mini-batches” of stream data work?
Online Mini-batch Batch
That is, mini-batch training was originally invented as a more efficient, if potentially less accurate way to train offline, where each mini-batch samples the
same data set repeatedly and the model improves with each iteration (this does work). What if the “mini-batch” is actually a group of N new records
instead? By this definition, Online is a mini-batch where N = 1.
Online Training
• Go to Trevor Grant’s talk next!
Online Mini-batch Batch
Trevor is going to discuss online learning scenarios in depth.
Practical Approaches
with Flink
Design Approaches
• Training and scoring
using the same ML
library, in the same
job.
1. Same Job - Call Library
Node
ML
lib.
Flink
Task
Node
Flink
Job
Data
Control
Node
ML
lib.
Flink
Task
Model
Sharing
The main problem is how to share the model across the tasks running across a cluster. A model/parameter server is one answer.
• But what does that
mean in a distributed
system like Flink?
• Must share model
across the cluster &
tasks.
1. Same Job - Call Library
Node
ML
lib.
Flink
Task
Node
Flink
Job
Data
Control
Node
ML
lib.
Flink
Task
Model
Sharing
The main problem is how to share the model across the tasks running across a cluster. A model/parameter server is one answer.
2. Same Job - Call Service
• Training and
scoring are done
using Async I/O to a
separate service,
but from the same
Flink job. Node
NodeNode
ML
Service
Flink
Task
Node
Flink
Job
Data
Control
Node
ML
Service
Flink
Task
Model
Sharing
Control
This service might itself be distributed. It may or may not run on separate nodes from Flink tasks.
3. Two Flink Jobs
• Training and scoring
using separate Flink
jobs.
• Could either use a ML
library or service.
Node
Node
Node
ML
Service
Flink
Task
Node
Flink
Training	
Job
Data
Control
Node
ML
Service
Flink
Task
Node
Flink
Task
Node
Flink
Scoring	
Job
Control
Node
Flink
Task
4. Two Different
Systems
• Training with Spark
Streaming or Batch
(for example) and
scoring with Flink.
Node
Node
Node
ML
Service
Spark
Task
Node
Spark
Training	
Job
Data
Control
Node
ML
Service
Spark
Task
Node
Flink
Task
Node
Flink
Scoring	
Job
Control
Node
Flink
Task
5. Cache is King!
• Use a distributed
cache
• Alluxio (Tachyon)
• Hazelcast
• …
Node
Node
Node
ML
Service
Spark
Task
Node
Spark
Training	
Job
Data
Control
Node
ML
Service
Spark
Task
Node
Flink
Task
Node
Flink
Scoring	
Job
Control
Node
Flink
Task
Distributed	Cache
About Model Sharing
Node
Node
ML
Service
ML
Service
Model
Sharing
Parameter Servers
• Scalable, low-latency.
• Serve both training and scoring engines.
• ND4J parameter server
• TensorFlow serving system
• Clipper - prediction serving system
• PredictionIO - ML server
ND4J provides multi-dimensional arrays for Java, targeting CPUs, GPUs, etc. Mimics Numpy, Matlab, and Scikit-learn.
ND4J parameter server: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-parameter-server-parent
TensorFlow parameter server:
Clipper: https://github.com/ucbrise/clipper
Deeplearning4J
• JVM-based.
• Discussed at last year’s Flink Forward.
• Use Flink Dataset to load data into DL4J’s
DataVec format, then feed to DL4J service.
https://www.slideshare.net/FlinkForward/suneel-marthi-deep-learning-with-apache-flink-and-dl4j
Leveraging Flink Features
Side Inputs
• Use case: Join a stream with slowly changing
data.
• So, for ML, what do you join with what?
• Keyed or broadcast?
• Windowed or not (“global window”)
https://cwiki.apache.org/confluence/display/FLINK/FLIP-17+Side+Inputs+for+DataStream+API
// Side Input sketch
// Example adapted from https://cwiki.apache.org/confluence/
display/FLINK/FLIP-17+Side+Inputs+for+DataStream+API
val dataStream: DataStream[Record] = …
val modelStream: DataStream[Params] = …
val modelInput = new SingletonSideInput(modelStream)
dataStream
.map { record =>
val params = getRuntimeContext().getSideInput(modelInput)
val score = model.withParams(params).score(records)
(score, record)
}
.withSideInput(modelInput);
Async I/O
• Callback
response
handler
Async I/O
• Might be better for periodically retrieving
model parameter updates.
• Calling to a model server for scoring could be
too inefficient?
// Async I/O sketch
// Example adapted from https://ci.apache.org/projects/flink/
flink-docs-release-1.2/dev/stream/asyncio.html
/**
* Params is a type that encapsulates the notion of a
* sequence of model parameters, each of which knows its
* location in the model, etc.
*/
case class Params(...) extends Iterable[Param] {...}
/**
* Handle asynchronous requests for the entire set of model
* parameters, where a String key is used to specify the
* model.
*/
/**
* Handle asynchronous requests for the entire set of model
* parameters, where a String key is used to specify the
* model.
*/
class AsyncMLModelParameterRequest
extends AsyncFunction[String, Params] {
/**
* An ML Model-specific client that can issue concurrent
* requests with callbacks. Would be customized for
* DL4J, TensorFlow, etc.
*/
lazy val client = MLModelClient(host, port, ...)
/** The Flink context used for the future callbacks. */
implicit lazy val executor =
ExecutionContext.fromExecutor(Executors.directExecutor())
override def asyncInvoke(
key: String,
asyncCollector: AsyncCollector[Params]): Unit = {
// Issue the asynchronous request, receive a
// future for the result
val paramsFuture: Future[Params] = client.getParams(key)
// Set the callback to be executed once the request by the
// client is complete. The callback simply forwards the
// params to the collector, exploiting the fact that Params
// implements Iterable.
paramsFuture.onSuccess {
case params: Params => asyncCollector.collect(params);
}
}
}
The Future of
Deep Learning with Flink
Current Flink ML Roadmap
• Today: Offline batch learning
• New: Google Doc investigating:
• Offline training with Flink Streaming
• Online training
• Low-latency model serving
Flink ML: Do
• Focus on 3rd-party integrations:
• DL4J (like the Spark integration)
• TensorFlow
• H2O
• Mahout
• …
Flink ML: Do
• Complete useful core capabilities, e.g.,
• FLINK-5782 (GPU support)
• FLINK-6131 (Side inputs)
• Remove anything in today’s ML library that
isn’t “solid”.
Flink ML: Don’t
• PMML - doesn’t work well enough. Not really
that useful?
• Samoa - appears dead
• Reinvent the wheel…
lightbend.com/fast-data-platform
Thank You!
	On	Cray!!
FDP
Streaming
Lightbend Fast Data Platform V1.0
REST
Logs
Sockets
Kafka
Connect
Storage
HDFS,
S3,	…
SQL/
NoSQL
Search
Kafka
Streams
Lightbend.ai
Cluster
Analysis
Machine	
LearningMicroservices
Produc@on	Suite
Machine
Learning
ML …
Streaming
Streams
Batch
Streaming
Flink
SQL
Intelligent	Management
Dean Wampler, Ph.D.
dean@lightbend.com
@deanwampler
For more information on the Fast Data Platform.

Contenu connexe

Tendances

Márton Balassi Streaming ML with Flink-
Márton Balassi Streaming ML with Flink- Márton Balassi Streaming ML with Flink-
Márton Balassi Streaming ML with Flink- Flink Forward
 
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...Till Rohrmann
 
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamMalo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamFlink Forward
 
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry confluent
 
Ufuc Celebi – Stream & Batch Processing in one System
Ufuc Celebi – Stream & Batch Processing in one SystemUfuc Celebi – Stream & Batch Processing in one System
Ufuc Celebi – Stream & Batch Processing in one SystemFlink Forward
 
Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Apache Flink vs Apache Spark - Reproducible experiments on cloud.Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Apache Flink vs Apache Spark - Reproducible experiments on cloud.Shelan Perera
 
Flink history, roadmap and vision
Flink history, roadmap and visionFlink history, roadmap and vision
Flink history, roadmap and visionStephan Ewen
 
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloads
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloadsTill Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloads
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloadsFlink Forward
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsFlink Forward
 
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...Spark Summit
 
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Provectus
 
Juggling with Bits and Bytes - How Apache Flink operates on binary data
Juggling with Bits and Bytes - How Apache Flink operates on binary dataJuggling with Bits and Bytes - How Apache Flink operates on binary data
Juggling with Bits and Bytes - How Apache Flink operates on binary dataFabian Hueske
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkTheodoros Vasiloudis
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkFlink Forward
 
Spark Summit EU talk by Luca Canali
Spark Summit EU talk by Luca CanaliSpark Summit EU talk by Luca Canali
Spark Summit EU talk by Luca CanaliSpark Summit
 
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)Spark Summit
 
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Dan Halperin
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streamingdatamantra
 
Functional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming FrameworksFunctional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming FrameworksHuafeng Wang
 
Random Walks on Large Scale Graphs with Apache Spark with Min Shen
Random Walks on Large Scale Graphs with Apache Spark with Min ShenRandom Walks on Large Scale Graphs with Apache Spark with Min Shen
Random Walks on Large Scale Graphs with Apache Spark with Min ShenDatabricks
 

Tendances (20)

Márton Balassi Streaming ML with Flink-
Márton Balassi Streaming ML with Flink- Márton Balassi Streaming ML with Flink-
Márton Balassi Streaming ML with Flink-
 
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...
Dynamic Scaling: How Apache Flink Adapts to Changing Workloads (at FlinkForwa...
 
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamMalo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache Beam
 
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry
Fundamentals of Stream Processing with Apache Beam, Tyler Akidau, Frances Perry
 
Ufuc Celebi – Stream & Batch Processing in one System
Ufuc Celebi – Stream & Batch Processing in one SystemUfuc Celebi – Stream & Batch Processing in one System
Ufuc Celebi – Stream & Batch Processing in one System
 
Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Apache Flink vs Apache Spark - Reproducible experiments on cloud.Apache Flink vs Apache Spark - Reproducible experiments on cloud.
Apache Flink vs Apache Spark - Reproducible experiments on cloud.
 
Flink history, roadmap and vision
Flink history, roadmap and visionFlink history, roadmap and vision
Flink history, roadmap and vision
 
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloads
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloadsTill Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloads
Till Rohrmann - Dynamic Scaling - How Apache Flink adapts to changing workloads
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
 
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
Scaling Apache Spark MLlib to Billions of Parameters: Spark Summit East talk ...
 
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
 
Juggling with Bits and Bytes - How Apache Flink operates on binary data
Juggling with Bits and Bytes - How Apache Flink operates on binary dataJuggling with Bits and Bytes - How Apache Flink operates on binary data
Juggling with Bits and Bytes - How Apache Flink operates on binary data
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of Flink
 
Spark Summit EU talk by Luca Canali
Spark Summit EU talk by Luca CanaliSpark Summit EU talk by Luca Canali
Spark Summit EU talk by Luca Canali
 
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)
Towards True Elasticity of Spark-(Michael Le and Min Li, IBM)
 
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
Introduction to Apache Beam & No Shard Left Behind: APIs for Massive Parallel...
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streaming
 
Functional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming FrameworksFunctional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming Frameworks
 
Random Walks on Large Scale Graphs with Apache Spark with Min Shen
Random Walks on Large Scale Graphs with Apache Spark with Min ShenRandom Walks on Large Scale Graphs with Apache Spark with Min Shen
Random Walks on Large Scale Graphs with Apache Spark with Min Shen
 

Similaire à Flink Forward SF 2017: Dean Wampler - Streaming Deep Learning Scenarios with Flink

A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...Databricks
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...Databricks
 
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...Data Con LA
 
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ... MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...Databricks
 
DL4J at Workday Meetup
DL4J at Workday MeetupDL4J at Workday Meetup
DL4J at Workday MeetupDavid Kale
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesDeep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesJen Aman
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDatabricks
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesJen Aman
 
Integrating Deep Learning Libraries with Apache Spark
Integrating Deep Learning Libraries with Apache SparkIntegrating Deep Learning Libraries with Apache Spark
Integrating Deep Learning Libraries with Apache SparkDatabricks
 
Atlanta Hadoop Users Meetup 09 21 2016
Atlanta Hadoop Users Meetup 09 21 2016Atlanta Hadoop Users Meetup 09 21 2016
Atlanta Hadoop Users Meetup 09 21 2016Chris Fregly
 
Tuning ML Models: Scaling, Workflows, and Architecture
Tuning ML Models: Scaling, Workflows, and ArchitectureTuning ML Models: Scaling, Workflows, and Architecture
Tuning ML Models: Scaling, Workflows, and ArchitectureDatabricks
 
Applied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jApplied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jDataWorks Summit
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesDavid Martínez Rego
 
Deep learning with DL4J - Hadoop Summit 2015
Deep learning with DL4J - Hadoop Summit 2015Deep learning with DL4J - Hadoop Summit 2015
Deep learning with DL4J - Hadoop Summit 2015Josh Patterson
 
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...Chris Fregly
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationHoward Greenberg
 
Build, Scale, and Deploy Deep Learning Pipelines Using Apache Spark
Build, Scale, and Deploy Deep Learning Pipelines Using Apache SparkBuild, Scale, and Deploy Deep Learning Pipelines Using Apache Spark
Build, Scale, and Deploy Deep Learning Pipelines Using Apache SparkDatabricks
 
How to Build Deep Learning Models
How to Build Deep Learning ModelsHow to Build Deep Learning Models
How to Build Deep Learning ModelsJosh Patterson
 

Similaire à Flink Forward SF 2017: Dean Wampler - Streaming Deep Learning Scenarios with Flink (20)

A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, & Deep Learning ...
 
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
A Tale of Three Deep Learning Frameworks: TensorFlow, Keras, and Deep Learnin...
 
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
Data Con LA 2018 - A Tale of DL Frameworks: TensorFlow, Keras, & Deep Learnin...
 
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ... MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 
TensorFlow 101
TensorFlow 101TensorFlow 101
TensorFlow 101
 
DL4J at Workday Meetup
DL4J at Workday MeetupDL4J at Workday Meetup
DL4J at Workday Meetup
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesDeep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best Practices
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best Practices
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best Practices
 
Integrating Deep Learning Libraries with Apache Spark
Integrating Deep Learning Libraries with Apache SparkIntegrating Deep Learning Libraries with Apache Spark
Integrating Deep Learning Libraries with Apache Spark
 
Atlanta Hadoop Users Meetup 09 21 2016
Atlanta Hadoop Users Meetup 09 21 2016Atlanta Hadoop Users Meetup 09 21 2016
Atlanta Hadoop Users Meetup 09 21 2016
 
Tuning ML Models: Scaling, Workflows, and Architecture
Tuning ML Models: Scaling, Workflows, and ArchitectureTuning ML Models: Scaling, Workflows, and Architecture
Tuning ML Models: Scaling, Workflows, and Architecture
 
Applied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4jApplied Deep Learning with Spark and Deeplearning4j
Applied Deep Learning with Spark and Deeplearning4j
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming Architectures
 
Deep learning with DL4J - Hadoop Summit 2015
Deep learning with DL4J - Hadoop Summit 2015Deep learning with DL4J - Hadoop Summit 2015
Deep learning with DL4J - Hadoop Summit 2015
 
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...
Tallinn Estonia Advanced Java Meetup Spark + TensorFlow = TensorFrames Oct 24...
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
Build, Scale, and Deploy Deep Learning Pipelines Using Apache Spark
Build, Scale, and Deploy Deep Learning Pipelines Using Apache SparkBuild, Scale, and Deploy Deep Learning Pipelines Using Apache Spark
Build, Scale, and Deploy Deep Learning Pipelines Using Apache Spark
 
How to Build Deep Learning Models
How to Build Deep Learning ModelsHow to Build Deep Learning Models
How to Build Deep Learning Models
 

Plus de Flink Forward

Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Flink Forward
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkFlink Forward
 
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...Flink Forward
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Flink Forward
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorFlink Forward
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeFlink Forward
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Flink Forward
 
One sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkOne sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkFlink Forward
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink Forward
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraFlink Forward
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkFlink Forward
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentFlink Forward
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022Flink Forward
 
Flink SQL on Pulsar made easy
Flink SQL on Pulsar made easyFlink SQL on Pulsar made easy
Flink SQL on Pulsar made easyFlink Forward
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsFlink Forward
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotFlink Forward
 
Processing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial ServicesProcessing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial ServicesFlink Forward
 
Tame the small files problem and optimize data layout for streaming ingestion...
Tame the small files problem and optimize data layout for streaming ingestion...Tame the small files problem and optimize data layout for streaming ingestion...
Tame the small files problem and optimize data layout for streaming ingestion...Flink Forward
 
Batch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergBatch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergFlink Forward
 

Plus de Flink Forward (20)

Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...Building a fully managed stream processing platform on Flink at scale for Lin...
Building a fully managed stream processing platform on Flink at scale for Lin...
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
 
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes Operator
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
One sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkOne sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async Sink
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptx
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at Pinterest
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native Era
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
 
Flink SQL on Pulsar made easy
Flink SQL on Pulsar made easyFlink SQL on Pulsar made easy
Flink SQL on Pulsar made easy
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data AlertsDynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
 
Processing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial ServicesProcessing Semantically-Ordered Streams in Financial Services
Processing Semantically-Ordered Streams in Financial Services
 
Tame the small files problem and optimize data layout for streaming ingestion...
Tame the small files problem and optimize data layout for streaming ingestion...Tame the small files problem and optimize data layout for streaming ingestion...
Tame the small files problem and optimize data layout for streaming ingestion...
 
Batch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergBatch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & Iceberg
 

Dernier

Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...SUHANI PANDEY
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxolyaivanovalion
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysismanisha194592
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceDelhi Call girls
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 

Dernier (20)

Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptx
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 

Flink Forward SF 2017: Dean Wampler - Streaming Deep Learning Scenarios with Flink

  • 1. 1 Comments on Streaming Deep Learning with Flink Flink Forward San Francisco, April 11, 2017 Dean Wampler, Ph.D. dean@lightbend.com @deanwampler © Lightbend, 2014-2017. All rights reserved.
  • 2. 2 • Why DL for Streaming? Why DL for Flink? • Model Training vs. Inference • Practical Approaches with Flink • The Future of DL with Flink Outline - This is a status report of work in progress at Lightbend. It’s far from complete and definitely not “battle tested”, but this talk reflects our current thinking and approach.
  • 3. Why DL for Streaming? Why DL for Flink?
  • 4. Because deep learning is “so hot right now.” Images: https://github.com/tensorflow/models/tree/master/inception, https://deeplearning4j.org, https://github.com/tensorflow, and https:// deepmind.com/
  • 5. What Is deep learning? • A very sophisticated non- linear model • A way to discover features, rather than engineer them https://en.wikipedia.org/wiki/Convolutional_neural_network I won’t explain DL, but offer a few points. It’s not mysterious. It’s a sophisticated non-linear modeler. It’s also a tool for learning the “features” (the characteristics of the data), rather than engineering them explicitly.
  • 6. Because streaming is “so hot right now.” http://tradinghub.co/watch-list-for-mar-26th-2015/
  • 7. … and Flink provides large scale and low latency! http://tradinghub.co/watch-list-for-mar-26th-2015/
  • 9. On Cray!! FDP Streaming Lightbend Fast Data Platform V1.0 REST Logs Sockets Kafka Connect Storage HDFS, S3, … SQL/ NoSQL Search Kafka Streams Lightbend.ai Cluster Analysis Machine LearningMicroservices Produc@on Suite Machine Learning ML … Streaming Streams Batch Streaming Flink SQL Intelligent Management 9 The Fast Data Platform that we’re building as a commercial, streaming data processing stack. I won’t go through the details (but I’ll show a link at the end for more information). Rather, I’ll focus on the streaming core…
  • 10. Streaming Logs Sockets Storage HDFS, S3, … SQL/ NoSQL Search Kafka Streams Streaming Streams Batch Streaming Flink SQL 10 The core: It requires a backplane designed from streaming - Kafka here. To meet the full spectrum of streaming needs, we’re bundling 4 stream processing engines, because no single engine meets all needs. Finally, persistence is required.
  • 11. Streaming Logs Sockets Storage HDFS, S3, … SQL/ NoSQL Search Kafka Streams Streaming Streams Batch Streaming Flink SQL •Low latency •High volume •Apache Beam Data flows (correctness) 11 Flink contrasts mostly with Spark. It fixes two (current) limitations: 1) low latency instead of medium latency from the current mini-batch streaming model in Spark, 2) Flink provides state of the art semantics for more sophisticated stream processing, especially when high accuracy (as opposed to approximate values) is important. These semantics are defined by Apache Beam (a.k.a., Google Dataflow). Flink can run Beam data flows (The open source Apache Beam requires a third-party runner). Both Spark and Flink provide excellent, scalable performance at high volumes.
  • 12. Streaming Logs Sockets Storage HDFS, S3, … SQL/ NoSQL Search Kafka Streams Streaming Streams Batch Streaming Flink SQL •Mini-batch model useful for model training •Richer ML options 12 Spark has medium latency (~0.5 seconds and up), optimized for excellent, scalable performance at high volumes, but it’s not a true streaming engine. We would rather use Flink for low-latency model application (scoring), but training models incrementally through is one option we’ll discuss. Also, the Spark ecosystem is ahead of Flink’s in terms of integrations with ML tools.
  • 13. Challenges Using Flink for Deep Learning
  • 14. Use a Static Model for Inference? • This is (relatively) straightforward. You load a model at startup and apply it (score data) in the stream. • See Eron Wright’s talk! First, if you have a static model and you want to use it from Flink (“as a map function” - Eron Wright), this is relatively straightforward.
  • 15. Train the Model and Do Inference? • May not be reasonable to do training per record with low latency • But see Swaminathan Sundararaman’s talk Harder problem is training the model on the stream and doing inference
  • 16. Train the Model and Do Inference • If too slow, could train mini-batches in windows with longer latency • Periodically update the model • Do inference with low latency using “old” model
  • 17. Distributed Training • You have to train on each data partition separately, then merge the model. • Actually, DL4J does this, then averages the model parameters.
  • 18. Model Training vs. Model Serving (Inference)
  • 19. Kinds of Training • Batch - all data at once • Mini-batch - sample batches (with replacement!), iterate the model with each batch • “Online” - iterate the model with each record Online Mini-batch Batch The “with replacement” means that by design, you keep sampling the same data set, so each record will appear in 0, 1, or more mini-batches.
  • 20. Mini-batch Training • Originally developed for offline use, where it’s too expensive to train with all the data. • Would “mini-batches” of stream data work? Online Mini-batch Batch That is, mini-batch training was originally invented as a more efficient, if potentially less accurate way to train offline, where each mini-batch samples the same data set repeatedly and the model improves with each iteration (this does work). What if the “mini-batch” is actually a group of N new records instead? By this definition, Online is a mini-batch where N = 1.
  • 21. Online Training • Go to Trevor Grant’s talk next! Online Mini-batch Batch Trevor is going to discuss online learning scenarios in depth.
  • 24. • Training and scoring using the same ML library, in the same job. 1. Same Job - Call Library Node ML lib. Flink Task Node Flink Job Data Control Node ML lib. Flink Task Model Sharing The main problem is how to share the model across the tasks running across a cluster. A model/parameter server is one answer.
  • 25. • But what does that mean in a distributed system like Flink? • Must share model across the cluster & tasks. 1. Same Job - Call Library Node ML lib. Flink Task Node Flink Job Data Control Node ML lib. Flink Task Model Sharing The main problem is how to share the model across the tasks running across a cluster. A model/parameter server is one answer.
  • 26. 2. Same Job - Call Service • Training and scoring are done using Async I/O to a separate service, but from the same Flink job. Node NodeNode ML Service Flink Task Node Flink Job Data Control Node ML Service Flink Task Model Sharing Control This service might itself be distributed. It may or may not run on separate nodes from Flink tasks.
  • 27. 3. Two Flink Jobs • Training and scoring using separate Flink jobs. • Could either use a ML library or service. Node Node Node ML Service Flink Task Node Flink Training Job Data Control Node ML Service Flink Task Node Flink Task Node Flink Scoring Job Control Node Flink Task
  • 28. 4. Two Different Systems • Training with Spark Streaming or Batch (for example) and scoring with Flink. Node Node Node ML Service Spark Task Node Spark Training Job Data Control Node ML Service Spark Task Node Flink Task Node Flink Scoring Job Control Node Flink Task
  • 29. 5. Cache is King! • Use a distributed cache • Alluxio (Tachyon) • Hazelcast • … Node Node Node ML Service Spark Task Node Spark Training Job Data Control Node ML Service Spark Task Node Flink Task Node Flink Scoring Job Control Node Flink Task Distributed Cache
  • 31. Parameter Servers • Scalable, low-latency. • Serve both training and scoring engines. • ND4J parameter server • TensorFlow serving system • Clipper - prediction serving system • PredictionIO - ML server ND4J provides multi-dimensional arrays for Java, targeting CPUs, GPUs, etc. Mimics Numpy, Matlab, and Scikit-learn. ND4J parameter server: https://github.com/deeplearning4j/nd4j/tree/master/nd4j-parameter-server-parent TensorFlow parameter server: Clipper: https://github.com/ucbrise/clipper
  • 32. Deeplearning4J • JVM-based. • Discussed at last year’s Flink Forward. • Use Flink Dataset to load data into DL4J’s DataVec format, then feed to DL4J service. https://www.slideshare.net/FlinkForward/suneel-marthi-deep-learning-with-apache-flink-and-dl4j
  • 34. Side Inputs • Use case: Join a stream with slowly changing data. • So, for ML, what do you join with what? • Keyed or broadcast? • Windowed or not (“global window”) https://cwiki.apache.org/confluence/display/FLINK/FLIP-17+Side+Inputs+for+DataStream+API
  • 35. // Side Input sketch // Example adapted from https://cwiki.apache.org/confluence/ display/FLINK/FLIP-17+Side+Inputs+for+DataStream+API val dataStream: DataStream[Record] = … val modelStream: DataStream[Params] = … val modelInput = new SingletonSideInput(modelStream) dataStream .map { record => val params = getRuntimeContext().getSideInput(modelInput) val score = model.withParams(params).score(records) (score, record) } .withSideInput(modelInput);
  • 37. Async I/O • Might be better for periodically retrieving model parameter updates. • Calling to a model server for scoring could be too inefficient?
  • 38. // Async I/O sketch // Example adapted from https://ci.apache.org/projects/flink/ flink-docs-release-1.2/dev/stream/asyncio.html /** * Params is a type that encapsulates the notion of a * sequence of model parameters, each of which knows its * location in the model, etc. */ case class Params(...) extends Iterable[Param] {...} /** * Handle asynchronous requests for the entire set of model * parameters, where a String key is used to specify the * model. */
  • 39. /** * Handle asynchronous requests for the entire set of model * parameters, where a String key is used to specify the * model. */ class AsyncMLModelParameterRequest extends AsyncFunction[String, Params] { /** * An ML Model-specific client that can issue concurrent * requests with callbacks. Would be customized for * DL4J, TensorFlow, etc. */ lazy val client = MLModelClient(host, port, ...) /** The Flink context used for the future callbacks. */ implicit lazy val executor = ExecutionContext.fromExecutor(Executors.directExecutor())
  • 40. override def asyncInvoke( key: String, asyncCollector: AsyncCollector[Params]): Unit = { // Issue the asynchronous request, receive a // future for the result val paramsFuture: Future[Params] = client.getParams(key) // Set the callback to be executed once the request by the // client is complete. The callback simply forwards the // params to the collector, exploiting the fact that Params // implements Iterable. paramsFuture.onSuccess { case params: Params => asyncCollector.collect(params); } } }
  • 41. The Future of Deep Learning with Flink
  • 42. Current Flink ML Roadmap • Today: Offline batch learning • New: Google Doc investigating: • Offline training with Flink Streaming • Online training • Low-latency model serving
  • 43. Flink ML: Do • Focus on 3rd-party integrations: • DL4J (like the Spark integration) • TensorFlow • H2O • Mahout • …
  • 44. Flink ML: Do • Complete useful core capabilities, e.g., • FLINK-5782 (GPU support) • FLINK-6131 (Side inputs) • Remove anything in today’s ML library that isn’t “solid”.
  • 45. Flink ML: Don’t • PMML - doesn’t work well enough. Not really that useful? • Samoa - appears dead • Reinvent the wheel…
  • 46. lightbend.com/fast-data-platform Thank You! On Cray!! FDP Streaming Lightbend Fast Data Platform V1.0 REST Logs Sockets Kafka Connect Storage HDFS, S3, … SQL/ NoSQL Search Kafka Streams Lightbend.ai Cluster Analysis Machine LearningMicroservices Produc@on Suite Machine Learning ML … Streaming Streams Batch Streaming Flink SQL Intelligent Management Dean Wampler, Ph.D. dean@lightbend.com @deanwampler For more information on the Fast Data Platform.