SlideShare a Scribd company logo
1 of 79
Download to read offline
© Instaclustr Pty Limited, 2023
Spinning your Drones with
Cadence® Workflows, Apache
Kafka®, and TensorFlow
Paul Brebner
Open Source Technology Evangelist
Instaclustr (by Spot by NetApp)
www.instaclustr.com/paul-brebner/
Community Over Code Halifax 2023
Geospatial Track
(Where) is this talk Geospatial?
© Instaclustr Pty Limited, 2023
Simulates, integrates, generates and learns using spatiotemporal data
1. (Simulated) Drones (fly around in space and time)
2. Cadence + Kafka = integration across different Timescales (Slow and Fast)
3. Drone simulation generates lots of spatiotemporal data
4. Incremental Machine Learning over spatiotemporal drifting data is tricky
5. We live in a 4 (at least) dimensional spacetime universe J
“Henceforth space by itself and time by itself are doomed to fade away into mere
shadows, and only a kind of union of the two will preserve an independent reality” –
Minkowski, 1908
Watch out for the
Geospatial highlights
Special and general relativity
Minkowski Light Cone (for causality,
showing the future, the past, and
“elsewhere”) (Wikipedia)
Cloud Platform for Big
Data Open Source
Technologies
A recent addition is
Workflow Orchestration
with Uber’s Open Source
Instaclustr Managed Platform
© Instaclustr Pty Limited, 2023
This Talk Is About Cadence,
Kafka, and TensorFlow
© Instaclustr Pty Limited, 2023
Workflow Orchestration (Simple
Concept): Task Ordering
Start
© Instaclustr Pty Limited, 2023
Start Task 1
© Instaclustr Pty Limited, 2023
Workflow Orchestration (Simple
Concept): Task Ordering
Start Task 1 Task 2
© Instaclustr Pty Limited, 2023
Workflow Orchestration (Simple
Concept): Task Ordering
Start Task 1 Task 2 End
© Instaclustr Pty Limited, 2023
Workflow Orchestration (Simple
Concept): Task Ordering
But Harder In Practice…
Pedalling with a high Cadence (pedal revolutions) is called Spinning!
Mashing or grinding is slow (and bad).
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Workload Orchestration with
Cadence is Horizontally Scalable—the number of workflows is unlimited (Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Cadence is Fault-Tolerant—Workflows can fail!
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
...And recover (Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Cadence supports Long Running & Scheduled Workflows
(Source: Photo by Soly Moses from Pexels)
© Instaclustr Pty Limited, 2023
3, 2, 1, Go!
Cadence Workflows Are Code
@Override
public void startWorkflow(String a) {
String b = activities.task1(a);
String c = activities.task2(b);
}
A workflow implementation with 2 tasks executed sequentially
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Cadence Architecture
Instaclustr Managed Service
Workers
Run workflow logic
Customer Managed
Clients and Workers
Workers
Workers
Clients and
Workers
Instaclustr Managed
Cadence and Database Clusters
Cadence Servers
Database
Cassandra
PostgreSQL
Kafka
OpenSearch
(optional)
Java and Go Clients
are supported
APIs
© Instaclustr Pty Limited, 2023
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Database
State Change History Written to Database –
Write efficient – classic time vs. space (network) tradeoff
S0
𝜹1
𝜹2
HERE
How Does Cadence Fault-Tolerance Work?
Event-Sourcing = State Change History + Replaying
S1 S2
Workflow State Recovery by
Replaying History
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Database
Failure causes complete history
replay
Replay
Workflow State Recovery by
Replaying History
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Database
Replaying workflow history recreates
Workflow state and restart point –
Read inefficient but hopefully infrequent
Replay
Restart
S2
= S0 +𝜹1 + 𝜹2
𝜹1 𝜹2
S0
Sleep/Schedule use the same
mechanism
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Database
Sleep…
(Source: Getty Images)
Sleep/Schedule use the same
mechanism
© Instaclustr Pty Limited, 2023
Start Task 1 Task 2 End
Database
Workflow state is recreated when
tasks are scheduled to start
Replay
Schedule
S2
= S0 +𝜹1 + 𝜹2
𝜹1 𝜹2
S0
Eat
Sleep…
(Source: Getty Images)
Cadence Activities implement Tasks
Activities (including
backwards cycling)
can fail
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Activity: Task 2
Activity: Task 1
§ Activities are core to Cadence, they implement tasks
§ Remote calls can fail, so wrap them in Activities
§ They can contain any code
§ Activities are executed at most once and can be automatically retried on failure
§ But must be deterministic
Cadence Activities
© Instaclustr Pty Limited, 2023
Start End
Remote
Call
§ 100s to millions of running workflows
§ Long running workflows, sleeping and scheduled tasks
§ Stateful fault-tolerant applications
§ Complex workflows
§ Integration with unreliable external systems
§ Integration with streaming and event-based systems (e.g. Kafka)
§ Short workflows
§ Short workflows (100s of steps)
§ Long workflows (1000s of steps) may take longer to replay history
For example? Financial, retail, delivery!
Good Use Cases?
© Instaclustr Pty Limited, 2023
Spinning your Drones!
A Drone Delivery Application
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Drone Workflow Steps
§ Charged ready to go at base
§ Get an Order to deliver
§ Fly to Order location and collect Order
§ Fly to Delivery location and drop Order
§ Fly back to base
§ Recharge
§ Repeat
© Instaclustr Pty Limited, 2023
Shop
Customer
3 Legs: Base to Order to
Delivery to Base
Example (Pirates) of Drone Delivery
Flight
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Drone Way Point Flight Calculations
§ Drone flight path is computed in an
activity
§ Using location, distance, bearing,
speed, and charge
§ Every 10 seconds
§ On failure, the drone won’t crash
and will continue flying from
the last location
Returning to Base Example
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
The System: Swim-Lane Diagrams
1st Workflow: Drone Workflow
Recharge
© Instaclustr Pty Limited, 2023
Start, Ready, Wait for Order, Movement Activities, Recharge, Repeat
Orders Are Also Stateful→Workflow
2nd Workflow: Order Workflow
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Start, Generate locations, ready for drone, update locations, End if delivered
Orders Are Also Stateful→Workflow
2nd Workflow: Order Workflow
So, we need coordination
between the workflows:
(1) Asynchronous Signaling
between workflows
(Source: Shutterstock)
1
© Instaclustr Pty Limited, 2023
Next, Cadence Meets Kafka
(Source: https://bahumbug.wordpress.com/2014/08/03/kafka-onna-bike/)
© Instaclustr Pty Limited, 2023
(1) Starting a workflow
from Kafka
© Instaclustr Pty Limited, 2023
1
Integration With Kafka Adds
(2) Using a Kafka microservice
to coordinate Drone and Order
workflows
© Instaclustr Pty Limited, 2023
2
Integration With Kafka Adds
Step 1: Customer Places an Order—
Order Sent to Kafka New Orders Topic
1
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
2
Consumer
Step 2: Start New Order Workflow—
Kafka Consumer Gets Order, Starts New Order Workflow Using Cadence Client
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
3
Activity
Step 3: Order Ready for Drone Pickup—
Activity: Send Order Ready Message to Orders Ready Topic
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
4
Activity
Consumer
A Drone+Order Matching
Microservice
Step 4: Drone Workflow—
Activity: Send Drone Ready Message to Drone Ready Topic, Kafka Consumer
Gets an Order ID and Sends Signal Back to Drone to start the order pickup
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
5
Step 5: Drone Workflow—Fly To Order
Activity: Fly to Order Location
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
5
Step 5: Drone Workflow—Fly To Order
And Pickup Order
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
6
Step 6: Drone Workflow—Fly To Delivery Location
Activity: Fly to Delivery Location
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Step 6: Drone Workflow—Fly To Delivery Location
And Drop Order; Send Location Updates to Order Workflow Every 10s
6
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
7
Step 7: Drone Workflow—Fly To Base
Activity: Fly to Delivery Location; recharge when back at base and start new drone workflow
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
8
Step 8: Order Workflow—Update Location
Receive State and Location Signal From Drone Workflow, Update State;
If Delivered Then End Workflow
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Uber’s Cadence + Apache Kafka =
Complementary Timescales
© Instaclustr Pty Limited, 2023
(Source: Wikipedia)
Uber’s Cadence + Apache Kafka =
Complementary Timescales
© Instaclustr Pty Limited, 2023
Cadence (Slow Workflows) Kafka (Fast Streaming Events)
Synchronous Events Asynchronous Events
Stateful flows Stateless events
Sequences One-off events
Slow/long-running flows Fast/instantaneous events
Sleep/Schedule events Real-time processing of events
Complex flow logic Complex Stream Processing (Kafka
Streams)
How Many Drones
Can We Fly?
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Cluster Details (VCPUS):
Client (8), Cadence (6), Cassandra (18)
6
18
8
VCPUs Per Cluster (32 total)
Cadence Cassandra Client (EC2)
© Instaclustr Pty Limited, 2023
Load Test:
2,000 Drones + 2,000 Orders = 4,000 Workflows
2000 2000
4000
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Concurrent Workflows
Drones Orders Total
© Instaclustr Pty Limited, 2023
20 Drones Flying
Purple = base
Black = drone
Orange = shop
Red = delivery location
Green = successful delivery
© Instaclustr Pty Limited, 2023
Part 2: Kafka+ML (TensorFlow)
over spatiotemporal drifting streaming data
© Instaclustr Pty Limited, 2023
Goal: Predict which shops
will be busy
Busy
(Source: Getty Images)
Part 2: Kafka+ML (TensorFlow)
over spatiotemporal drifting streaming data
© Instaclustr Pty Limited, 2023
Not Busy
Goal: Predict which shops
will be busy, or not busy
(Source: Getty Images)
Real-time ML is Everywhere—
TikTok+Cat Videos etc.
© Instaclustr Pty Limited, 2023 (Source: Shutterstock)
Incremental Learning Challenges
© Instaclustr Pty Limited, 2023
Big Data—lots of data
Fast Data—streaming, new data
constantly arriving
Changing Data—concept drift
Just-in-time learning—continuous
learning, model must be up to date
Streaming data is infinite, so can’t
assume access to all past data
(Source: Shutterstock)
The Drone Learning Problem
The Drone Delivery System
Generates massive amounts of
spatiotemporal data
Drone order data sent to Kafka
Can we learn how to predict which shops will
be busy in an hour?
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
ML Architecture
© Instaclustr Pty Limited, 2023
Kafka Streams
Kafka Streams computes aggregated
hourly shop & order details à
Busy/NotBusy categorization
Sent to TensorFlow
Simulation produces lots of
streaming spatiotemporal
data (drone and order state
and locations)
“C” Is for Cat!
Mark 1 Perceptron Circa 1960
© Instaclustr Pty Limited, 2023
TensorFlow is a
modern neural
network framework
which supports
incremental learning
Incremental ML—Incrementally!
Experiment 1: “Still” Batch Data Only, No Drift
© Instaclustr Pty Limited, 2023
6,000 samples over a week
Class: Shop busy/not busy per hour
Class and features are computed from
hourly aggregated delivery/shop data
Other features include weekday, shop
type, average delivery time, etc.
Time is quantized to hours, location to
“suburb” (this is “cheating” and ignores
actual time/space scale granularity)
Rule is a combination of shop type,
location, weekday and hour (Source: Shutterstock)
TensorFlow Steps
© Instaclustr Pty Limited, 2023
1 Setup Python TensorFlow on your computer
2 Import Pandas and “Numpies”
3 Define data columns (and class label)
4 Read the data into a Panda DataFrame
5 Split the data into training/evaluation subsets
6 Create a model (design, build, compile)
7 Prepare training data (features and class)
8 Train/fit the model (auto epochs)
9 Evaluate the model
In step 8, every time the “fit”
method is called it updates
the model – this is critical for
Incremental learning
10 Use the model on new data
In step 6, we used the “Adam”
optimizer
Evaluation: What Matters?
Accuracy
© Instaclustr Pty Limited, 2023
Can be misleading unless roughly equal positive/negative samples
(Source: Shutterstock)
Initial Results: 1 week of drone delivery data
with shop busy/not busy 50:50 split
© Instaclustr Pty Limited, 2023
Training: Accuracy improved during training from 0.5 to 0.88 over 125 Epochs
Evaluation confusion matrix – also good results
But! Results not repeatable, accuracy (0.5-0.9) and training time (5-92s) vary
Sensitive to batch size (number of samples used per epoch: 8-64, 32 most consistent)
And it sometimes gets stuck in a bad local minima.
Data size = 6,000 samples
Shop busy/not busy
hourly over a week
Training/evaluation only
use a subset
Experiment 2: Incremental Learning—
No Kafka, No Drift
© Instaclustr Pty Limited, 2023
Incremental clicker games can be addictive
Goals:
Continuous model training
From streaming data
Incremental learning—don’t need all the data
Model is up-to-date all the time
Useful for real-time use cases
Can cope with concept drift in the data
(eventually)
This experiment:
Same data as last time
But incremental learning (Source: Shutterstock)
Approach and Results
© Instaclustr Pty Limited, 2023
Approach
Slicing the data to get 100 samples at a time
(simulating Kafka poll)
Fit with each sample
Batch 8, 20 fixed epochs
Evaluate against all previous data
Results
Accuracy improves with time - good
Max accuracy comparable with Batch learning
But Oscillation! What’s going on?
Experiment 3:
Incremental Learning Using Kafka
© Instaclustr Pty Limited, 2023
“Franz Kafka reading data in the style of Dali”
(Source: Paul Brebner. Dalle-2)
Results:
Better, Not as Much Oscillation
© Instaclustr Pty Limited, 2023
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 10 20 30 40 50 60
Accuracy over 1 week
X-axis is just “loop” number
But accuracy worse: 0.72 c.f. 0.9
for batch on same data
Experiment 4:
Incremental Learning, Kafka & Concept Drift
© Instaclustr Pty Limited, 2023
(Source: Shutterstock)
Concept Drift at Start of Week 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0 20 40 60 80 100 120
Concept Drift - incremental training (time vs accuracy)
same model guessing
Best accuracy during week 1 = 0.7
Concept drift introduced at start of week 2
Accuracy instantly drops to worse (0.3)
than guessing (0.5)
Accuracy gradually improves to 0.75
Oscillation still
Drift
© Instaclustr Pty Limited, 2023
Experiment 4b: Reset the Model
© Instaclustr Pty Limited, 2023
(Source: Getty Images)
Reset the Model After Drift
If accuracy drops too much, reset the model.
Retrain using only new data – removes pre-drift model “inertia”.
Helps immediately (accuracy 0.9)
But oscillation, and accuracy drops to 0.7 by end of week 2.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 20 40 60 80 100 120
Concept Drift - incremental training (time vs
accuracy)
same model reset model guessing
© Instaclustr Pty Limited, 2023
Why Oscillation?
Accidental Drift
We had accidental drift!
Even though the rules weren’t changing,
the data was changing over time.
Why? Because temporal features (day of
week and time of day) were used to
determine shops busy/not busy.
And some hours had no busy shops (end
of day!) – so accuracy actually increased.
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Time Bias/Fixation
I’m late! I’m late!
Incremental learning may result in
a temporal bias due to fixation on
recent samples
(Similar to spatial bias from nearby
samples?)
(Source: Wikimedia)
© Instaclustr Pty Limited, 2023
And Then Down a Rabbit-Hole
Model overfitting (indicated by Oscillation) on time-series data is a well-known problem
Time-series data + incremental learning = down the rabbit-hole (somewhere strange and hard to understand!)
(Source: Getty Images)
© Instaclustr Pty Limited, 2023
Other (Spatio)Temporal Challenges:
Time Encoding (Wrap Around)
© Instaclustr Pty Limited, 2023
Default time encodings have “temporal discontinuities”
E.g. Time wraps around at midnight/midday (12:00 = 00:00)
C.f. Prime Meridian and Anti-Meridian
International date line – not a straight line!
Both temporal and spatial – on West side it’s Today, on the
East side it’s Yesterday!)
(Source: Wikimedia)
(Source: Wikimedia)
(Source: Wikimedia)
Other (Spatio)Temporal Challenges:
Periodicity (Repetition)
© Instaclustr Pty Limited, 2023
Periodicity is common in temporal (and
spatial?) data
Ocean Waves have Temporal and Spatial
Periodicity
Surfers, Gold Coast, Australia (Source: AdobeStock)
Can We Fix It? Get Rid of Time
But not space
Time to try “no time”
(Source: Shutterstock)
© Instaclustr Pty Limited, 2023
Experiment 4c: No Time Results
No wild oscillations
With reset model, big drop in accuracy initially, but slightly better accuracy by end of week 2.
In production could continue using old model until new one is trained up again.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 20 40 60 80 100 120
Concept Drift - incremental training (time vs accuracy)
No time features
same model reset model guessing
© Instaclustr Pty Limited, 2023
Conclusions
• Incremental learning is fast, it should be able to keep up with streaming data in a production
system
• And incremental learning is able to keep the model up to date (more or less), in conjunction
with resetting
• Model accuracy may oscillate due to the presence
of time features, fixation on recent data, changes in sample
class distribution over time, and concept drift
• Overfitting on timeseries data is something to watch out
for and take action to prevent/mitigate - maybe try
“Rolling/Sliding Windows” (better for concept drifts)
• Try multiple competing models concurrently
• Potential to use Cadence Workflows for MLOps
© Instaclustr Pty Limited, 2023
Rolling maybe better (Source: Adobe Stock)
Geospatial Highlights
• Simulated spatiotemporal Drone Delivery system
• Cadence + Kafka integrated different timescales (slow and fast)
• Cadence Scheduled Activities for movement calculations
• Generated lots of spatiotemporal data
• ML over spatiotemporal data
• Spatiotemporal challenges
• Detecting and relearning temporal drift is tricky – similar problem for spatial drift?
• Simplified precomputed aggregated spatiotemporal quantization (hour, suburb)
• Watch out for
• spatiotemporal encoding discontinuities, wraparounds and periodicity
• bias and overfitting in incremental learning due to focus on the now (and here for
spatial data)
© Instaclustr Pty Limited, 2023
Spatial/Temporal Bias Is Inevitable
Observations are always
from a single point in
space and time—you only
directly experience ”here”
& “now”, and can only
inspect past events (not
future events), and space
is “big”!
You are (only) here
© Instaclustr Pty Limited, 2023
www.instaclustr.com
info@instaclustr.com
@instaclustr
THANK
YOU!
© Instaclustr Pty Limited, 2023
www.instaclustr.com/paul-brebner/

More Related Content

Similar to Spinning your Drones with Cadence Workflows, Apache Kafka, and TensforFlow

Addressing data plane performance measurement on OpenStack clouds using VMTP
Addressing data plane performance measurement on OpenStack clouds using VMTPAddressing data plane performance measurement on OpenStack clouds using VMTP
Addressing data plane performance measurement on OpenStack clouds using VMTP
Suhail Syed
 

Similar to Spinning your Drones with Cadence Workflows, Apache Kafka, and TensforFlow (20)

Modern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and MicrometerModern DevOps with Spinnaker/Concourse and Micrometer
Modern DevOps with Spinnaker/Concourse and Micrometer
 
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Integrating Cloud Services in Behaviour  Programming for Autonomous RobotsIntegrating Cloud Services in Behaviour  Programming for Autonomous Robots
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
 
Realtà aumentata ed Azure, un binomio imbattibile
Realtà aumentata ed Azure, un binomio imbattibileRealtà aumentata ed Azure, un binomio imbattibile
Realtà aumentata ed Azure, un binomio imbattibile
 
Paper444012-4014
Paper444012-4014Paper444012-4014
Paper444012-4014
 
Building a Reactive System with Akka - Workshop @ O'Reilly SAConf NYC
Building a Reactive System with Akka - Workshop @ O'Reilly SAConf NYCBuilding a Reactive System with Akka - Workshop @ O'Reilly SAConf NYC
Building a Reactive System with Akka - Workshop @ O'Reilly SAConf NYC
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with Galaxy
 
OpenStack - An Overview
OpenStack - An OverviewOpenStack - An Overview
OpenStack - An Overview
 
Introduction to open stack
Introduction to open stackIntroduction to open stack
Introduction to open stack
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
Druid in Spot Instances
Druid in Spot InstancesDruid in Spot Instances
Druid in Spot Instances
 
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
Change Data Capture (CDC) With Kafka Connect® and the Debezium PostgreSQL Sou...
 
Introduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with StormIntroduction to Streaming Distributed Processing with Storm
Introduction to Streaming Distributed Processing with Storm
 
Enabling Microservices Frameworks to Solve Business Problems
Enabling Microservices Frameworks to Solve  Business ProblemsEnabling Microservices Frameworks to Solve  Business Problems
Enabling Microservices Frameworks to Solve Business Problems
 
Addressing data plane performance measurement on OpenStack clouds using VMTP
Addressing data plane performance measurement on OpenStack clouds using VMTPAddressing data plane performance measurement on OpenStack clouds using VMTP
Addressing data plane performance measurement on OpenStack clouds using VMTP
 
OpenStack Collaboration made in heaven with Heat, Mistral, Neutron and more..
OpenStack Collaboration made in heaven with Heat, Mistral, Neutron and more..OpenStack Collaboration made in heaven with Heat, Mistral, Neutron and more..
OpenStack Collaboration made in heaven with Heat, Mistral, Neutron and more..
 
Better Information Faster: Programming the Continuum
Better Information Faster: Programming the ContinuumBetter Information Faster: Programming the Continuum
Better Information Faster: Programming the Continuum
 
OpenStack Boston meetup 12 4-2014
OpenStack Boston meetup 12 4-2014OpenStack Boston meetup 12 4-2014
OpenStack Boston meetup 12 4-2014
 
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
 
Open source IoT gateway
Open source IoT gatewayOpen source IoT gateway
Open source IoT gateway
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Spinning your Drones with Cadence Workflows, Apache Kafka, and TensforFlow

  • 1. © Instaclustr Pty Limited, 2023 Spinning your Drones with Cadence® Workflows, Apache Kafka®, and TensorFlow Paul Brebner Open Source Technology Evangelist Instaclustr (by Spot by NetApp) www.instaclustr.com/paul-brebner/ Community Over Code Halifax 2023 Geospatial Track
  • 2. (Where) is this talk Geospatial? © Instaclustr Pty Limited, 2023 Simulates, integrates, generates and learns using spatiotemporal data 1. (Simulated) Drones (fly around in space and time) 2. Cadence + Kafka = integration across different Timescales (Slow and Fast) 3. Drone simulation generates lots of spatiotemporal data 4. Incremental Machine Learning over spatiotemporal drifting data is tricky 5. We live in a 4 (at least) dimensional spacetime universe J “Henceforth space by itself and time by itself are doomed to fade away into mere shadows, and only a kind of union of the two will preserve an independent reality” – Minkowski, 1908 Watch out for the Geospatial highlights Special and general relativity Minkowski Light Cone (for causality, showing the future, the past, and “elsewhere”) (Wikipedia)
  • 3. Cloud Platform for Big Data Open Source Technologies A recent addition is Workflow Orchestration with Uber’s Open Source Instaclustr Managed Platform © Instaclustr Pty Limited, 2023
  • 4. This Talk Is About Cadence, Kafka, and TensorFlow © Instaclustr Pty Limited, 2023
  • 5. Workflow Orchestration (Simple Concept): Task Ordering Start © Instaclustr Pty Limited, 2023
  • 6. Start Task 1 © Instaclustr Pty Limited, 2023 Workflow Orchestration (Simple Concept): Task Ordering
  • 7. Start Task 1 Task 2 © Instaclustr Pty Limited, 2023 Workflow Orchestration (Simple Concept): Task Ordering
  • 8. Start Task 1 Task 2 End © Instaclustr Pty Limited, 2023 Workflow Orchestration (Simple Concept): Task Ordering But Harder In Practice…
  • 9. Pedalling with a high Cadence (pedal revolutions) is called Spinning! Mashing or grinding is slow (and bad). (Source: Shutterstock) © Instaclustr Pty Limited, 2023 Workload Orchestration with
  • 10. Cadence is Horizontally Scalable—the number of workflows is unlimited (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 11. Cadence is Fault-Tolerant—Workflows can fail! (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 12. ...And recover (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 13. Cadence supports Long Running & Scheduled Workflows (Source: Photo by Soly Moses from Pexels) © Instaclustr Pty Limited, 2023 3, 2, 1, Go!
  • 14. Cadence Workflows Are Code @Override public void startWorkflow(String a) { String b = activities.task1(a); String c = activities.task2(b); } A workflow implementation with 2 tasks executed sequentially © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End
  • 15. Cadence Architecture Instaclustr Managed Service Workers Run workflow logic Customer Managed Clients and Workers Workers Workers Clients and Workers Instaclustr Managed Cadence and Database Clusters Cadence Servers Database Cassandra PostgreSQL Kafka OpenSearch (optional) Java and Go Clients are supported APIs © Instaclustr Pty Limited, 2023
  • 16. © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End Database State Change History Written to Database – Write efficient – classic time vs. space (network) tradeoff S0 𝜹1 𝜹2 HERE How Does Cadence Fault-Tolerance Work? Event-Sourcing = State Change History + Replaying S1 S2
  • 17. Workflow State Recovery by Replaying History © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End Database Failure causes complete history replay Replay
  • 18. Workflow State Recovery by Replaying History © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End Database Replaying workflow history recreates Workflow state and restart point – Read inefficient but hopefully infrequent Replay Restart S2 = S0 +𝜹1 + 𝜹2 𝜹1 𝜹2 S0
  • 19. Sleep/Schedule use the same mechanism © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End Database Sleep… (Source: Getty Images)
  • 20. Sleep/Schedule use the same mechanism © Instaclustr Pty Limited, 2023 Start Task 1 Task 2 End Database Workflow state is recreated when tasks are scheduled to start Replay Schedule S2 = S0 +𝜹1 + 𝜹2 𝜹1 𝜹2 S0 Eat Sleep… (Source: Getty Images)
  • 21. Cadence Activities implement Tasks Activities (including backwards cycling) can fail © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 22. Activity: Task 2 Activity: Task 1 § Activities are core to Cadence, they implement tasks § Remote calls can fail, so wrap them in Activities § They can contain any code § Activities are executed at most once and can be automatically retried on failure § But must be deterministic Cadence Activities © Instaclustr Pty Limited, 2023 Start End Remote Call
  • 23. § 100s to millions of running workflows § Long running workflows, sleeping and scheduled tasks § Stateful fault-tolerant applications § Complex workflows § Integration with unreliable external systems § Integration with streaming and event-based systems (e.g. Kafka) § Short workflows § Short workflows (100s of steps) § Long workflows (1000s of steps) may take longer to replay history For example? Financial, retail, delivery! Good Use Cases? © Instaclustr Pty Limited, 2023
  • 24. Spinning your Drones! A Drone Delivery Application (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 25. Drone Workflow Steps § Charged ready to go at base § Get an Order to deliver § Fly to Order location and collect Order § Fly to Delivery location and drop Order § Fly back to base § Recharge § Repeat © Instaclustr Pty Limited, 2023 Shop Customer
  • 26. 3 Legs: Base to Order to Delivery to Base Example (Pirates) of Drone Delivery Flight © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 27. Drone Way Point Flight Calculations § Drone flight path is computed in an activity § Using location, distance, bearing, speed, and charge § Every 10 seconds § On failure, the drone won’t crash and will continue flying from the last location Returning to Base Example © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 28. The System: Swim-Lane Diagrams 1st Workflow: Drone Workflow Recharge © Instaclustr Pty Limited, 2023 Start, Ready, Wait for Order, Movement Activities, Recharge, Repeat
  • 29. Orders Are Also Stateful→Workflow 2nd Workflow: Order Workflow © Instaclustr Pty Limited, 2023 (Source: Shutterstock) Start, Generate locations, ready for drone, update locations, End if delivered
  • 30. Orders Are Also Stateful→Workflow 2nd Workflow: Order Workflow So, we need coordination between the workflows: (1) Asynchronous Signaling between workflows (Source: Shutterstock) 1 © Instaclustr Pty Limited, 2023
  • 31. Next, Cadence Meets Kafka (Source: https://bahumbug.wordpress.com/2014/08/03/kafka-onna-bike/) © Instaclustr Pty Limited, 2023
  • 32. (1) Starting a workflow from Kafka © Instaclustr Pty Limited, 2023 1 Integration With Kafka Adds
  • 33. (2) Using a Kafka microservice to coordinate Drone and Order workflows © Instaclustr Pty Limited, 2023 2 Integration With Kafka Adds
  • 34. Step 1: Customer Places an Order— Order Sent to Kafka New Orders Topic 1 © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 35. 2 Consumer Step 2: Start New Order Workflow— Kafka Consumer Gets Order, Starts New Order Workflow Using Cadence Client © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 36. 3 Activity Step 3: Order Ready for Drone Pickup— Activity: Send Order Ready Message to Orders Ready Topic © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 37. 4 Activity Consumer A Drone+Order Matching Microservice Step 4: Drone Workflow— Activity: Send Drone Ready Message to Drone Ready Topic, Kafka Consumer Gets an Order ID and Sends Signal Back to Drone to start the order pickup © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 38. 5 Step 5: Drone Workflow—Fly To Order Activity: Fly to Order Location © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 39. 5 Step 5: Drone Workflow—Fly To Order And Pickup Order © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 40. 6 Step 6: Drone Workflow—Fly To Delivery Location Activity: Fly to Delivery Location © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 41. Step 6: Drone Workflow—Fly To Delivery Location And Drop Order; Send Location Updates to Order Workflow Every 10s 6 © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 42. 7 Step 7: Drone Workflow—Fly To Base Activity: Fly to Delivery Location; recharge when back at base and start new drone workflow (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 43. 8 Step 8: Order Workflow—Update Location Receive State and Location Signal From Drone Workflow, Update State; If Delivered Then End Workflow © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 44. Uber’s Cadence + Apache Kafka = Complementary Timescales © Instaclustr Pty Limited, 2023 (Source: Wikipedia)
  • 45. Uber’s Cadence + Apache Kafka = Complementary Timescales © Instaclustr Pty Limited, 2023 Cadence (Slow Workflows) Kafka (Fast Streaming Events) Synchronous Events Asynchronous Events Stateful flows Stateless events Sequences One-off events Slow/long-running flows Fast/instantaneous events Sleep/Schedule events Real-time processing of events Complex flow logic Complex Stream Processing (Kafka Streams)
  • 46. How Many Drones Can We Fly? © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 47. Cluster Details (VCPUS): Client (8), Cadence (6), Cassandra (18) 6 18 8 VCPUs Per Cluster (32 total) Cadence Cassandra Client (EC2) © Instaclustr Pty Limited, 2023
  • 48. Load Test: 2,000 Drones + 2,000 Orders = 4,000 Workflows 2000 2000 4000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 Concurrent Workflows Drones Orders Total © Instaclustr Pty Limited, 2023
  • 49. 20 Drones Flying Purple = base Black = drone Orange = shop Red = delivery location Green = successful delivery © Instaclustr Pty Limited, 2023
  • 50. Part 2: Kafka+ML (TensorFlow) over spatiotemporal drifting streaming data © Instaclustr Pty Limited, 2023 Goal: Predict which shops will be busy Busy (Source: Getty Images)
  • 51. Part 2: Kafka+ML (TensorFlow) over spatiotemporal drifting streaming data © Instaclustr Pty Limited, 2023 Not Busy Goal: Predict which shops will be busy, or not busy (Source: Getty Images)
  • 52. Real-time ML is Everywhere— TikTok+Cat Videos etc. © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 53. Incremental Learning Challenges © Instaclustr Pty Limited, 2023 Big Data—lots of data Fast Data—streaming, new data constantly arriving Changing Data—concept drift Just-in-time learning—continuous learning, model must be up to date Streaming data is infinite, so can’t assume access to all past data (Source: Shutterstock)
  • 54. The Drone Learning Problem The Drone Delivery System Generates massive amounts of spatiotemporal data Drone order data sent to Kafka Can we learn how to predict which shops will be busy in an hour? (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 55. ML Architecture © Instaclustr Pty Limited, 2023 Kafka Streams Kafka Streams computes aggregated hourly shop & order details à Busy/NotBusy categorization Sent to TensorFlow Simulation produces lots of streaming spatiotemporal data (drone and order state and locations)
  • 56. “C” Is for Cat! Mark 1 Perceptron Circa 1960 © Instaclustr Pty Limited, 2023 TensorFlow is a modern neural network framework which supports incremental learning
  • 57. Incremental ML—Incrementally! Experiment 1: “Still” Batch Data Only, No Drift © Instaclustr Pty Limited, 2023 6,000 samples over a week Class: Shop busy/not busy per hour Class and features are computed from hourly aggregated delivery/shop data Other features include weekday, shop type, average delivery time, etc. Time is quantized to hours, location to “suburb” (this is “cheating” and ignores actual time/space scale granularity) Rule is a combination of shop type, location, weekday and hour (Source: Shutterstock)
  • 58. TensorFlow Steps © Instaclustr Pty Limited, 2023 1 Setup Python TensorFlow on your computer 2 Import Pandas and “Numpies” 3 Define data columns (and class label) 4 Read the data into a Panda DataFrame 5 Split the data into training/evaluation subsets 6 Create a model (design, build, compile) 7 Prepare training data (features and class) 8 Train/fit the model (auto epochs) 9 Evaluate the model In step 8, every time the “fit” method is called it updates the model – this is critical for Incremental learning 10 Use the model on new data In step 6, we used the “Adam” optimizer
  • 59. Evaluation: What Matters? Accuracy © Instaclustr Pty Limited, 2023 Can be misleading unless roughly equal positive/negative samples (Source: Shutterstock)
  • 60. Initial Results: 1 week of drone delivery data with shop busy/not busy 50:50 split © Instaclustr Pty Limited, 2023 Training: Accuracy improved during training from 0.5 to 0.88 over 125 Epochs Evaluation confusion matrix – also good results But! Results not repeatable, accuracy (0.5-0.9) and training time (5-92s) vary Sensitive to batch size (number of samples used per epoch: 8-64, 32 most consistent) And it sometimes gets stuck in a bad local minima. Data size = 6,000 samples Shop busy/not busy hourly over a week Training/evaluation only use a subset
  • 61. Experiment 2: Incremental Learning— No Kafka, No Drift © Instaclustr Pty Limited, 2023 Incremental clicker games can be addictive Goals: Continuous model training From streaming data Incremental learning—don’t need all the data Model is up-to-date all the time Useful for real-time use cases Can cope with concept drift in the data (eventually) This experiment: Same data as last time But incremental learning (Source: Shutterstock)
  • 62. Approach and Results © Instaclustr Pty Limited, 2023 Approach Slicing the data to get 100 samples at a time (simulating Kafka poll) Fit with each sample Batch 8, 20 fixed epochs Evaluate against all previous data Results Accuracy improves with time - good Max accuracy comparable with Batch learning But Oscillation! What’s going on?
  • 63. Experiment 3: Incremental Learning Using Kafka © Instaclustr Pty Limited, 2023 “Franz Kafka reading data in the style of Dali” (Source: Paul Brebner. Dalle-2)
  • 64. Results: Better, Not as Much Oscillation © Instaclustr Pty Limited, 2023 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 10 20 30 40 50 60 Accuracy over 1 week X-axis is just “loop” number But accuracy worse: 0.72 c.f. 0.9 for batch on same data
  • 65. Experiment 4: Incremental Learning, Kafka & Concept Drift © Instaclustr Pty Limited, 2023 (Source: Shutterstock)
  • 66. Concept Drift at Start of Week 2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 20 40 60 80 100 120 Concept Drift - incremental training (time vs accuracy) same model guessing Best accuracy during week 1 = 0.7 Concept drift introduced at start of week 2 Accuracy instantly drops to worse (0.3) than guessing (0.5) Accuracy gradually improves to 0.75 Oscillation still Drift © Instaclustr Pty Limited, 2023
  • 67. Experiment 4b: Reset the Model © Instaclustr Pty Limited, 2023 (Source: Getty Images)
  • 68. Reset the Model After Drift If accuracy drops too much, reset the model. Retrain using only new data – removes pre-drift model “inertia”. Helps immediately (accuracy 0.9) But oscillation, and accuracy drops to 0.7 by end of week 2. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 20 40 60 80 100 120 Concept Drift - incremental training (time vs accuracy) same model reset model guessing © Instaclustr Pty Limited, 2023
  • 69. Why Oscillation? Accidental Drift We had accidental drift! Even though the rules weren’t changing, the data was changing over time. Why? Because temporal features (day of week and time of day) were used to determine shops busy/not busy. And some hours had no busy shops (end of day!) – so accuracy actually increased. (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 70. Time Bias/Fixation I’m late! I’m late! Incremental learning may result in a temporal bias due to fixation on recent samples (Similar to spatial bias from nearby samples?) (Source: Wikimedia) © Instaclustr Pty Limited, 2023
  • 71. And Then Down a Rabbit-Hole Model overfitting (indicated by Oscillation) on time-series data is a well-known problem Time-series data + incremental learning = down the rabbit-hole (somewhere strange and hard to understand!) (Source: Getty Images) © Instaclustr Pty Limited, 2023
  • 72. Other (Spatio)Temporal Challenges: Time Encoding (Wrap Around) © Instaclustr Pty Limited, 2023 Default time encodings have “temporal discontinuities” E.g. Time wraps around at midnight/midday (12:00 = 00:00) C.f. Prime Meridian and Anti-Meridian International date line – not a straight line! Both temporal and spatial – on West side it’s Today, on the East side it’s Yesterday!) (Source: Wikimedia) (Source: Wikimedia) (Source: Wikimedia)
  • 73. Other (Spatio)Temporal Challenges: Periodicity (Repetition) © Instaclustr Pty Limited, 2023 Periodicity is common in temporal (and spatial?) data Ocean Waves have Temporal and Spatial Periodicity Surfers, Gold Coast, Australia (Source: AdobeStock)
  • 74. Can We Fix It? Get Rid of Time But not space Time to try “no time” (Source: Shutterstock) © Instaclustr Pty Limited, 2023
  • 75. Experiment 4c: No Time Results No wild oscillations With reset model, big drop in accuracy initially, but slightly better accuracy by end of week 2. In production could continue using old model until new one is trained up again. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 20 40 60 80 100 120 Concept Drift - incremental training (time vs accuracy) No time features same model reset model guessing © Instaclustr Pty Limited, 2023
  • 76. Conclusions • Incremental learning is fast, it should be able to keep up with streaming data in a production system • And incremental learning is able to keep the model up to date (more or less), in conjunction with resetting • Model accuracy may oscillate due to the presence of time features, fixation on recent data, changes in sample class distribution over time, and concept drift • Overfitting on timeseries data is something to watch out for and take action to prevent/mitigate - maybe try “Rolling/Sliding Windows” (better for concept drifts) • Try multiple competing models concurrently • Potential to use Cadence Workflows for MLOps © Instaclustr Pty Limited, 2023 Rolling maybe better (Source: Adobe Stock)
  • 77. Geospatial Highlights • Simulated spatiotemporal Drone Delivery system • Cadence + Kafka integrated different timescales (slow and fast) • Cadence Scheduled Activities for movement calculations • Generated lots of spatiotemporal data • ML over spatiotemporal data • Spatiotemporal challenges • Detecting and relearning temporal drift is tricky – similar problem for spatial drift? • Simplified precomputed aggregated spatiotemporal quantization (hour, suburb) • Watch out for • spatiotemporal encoding discontinuities, wraparounds and periodicity • bias and overfitting in incremental learning due to focus on the now (and here for spatial data) © Instaclustr Pty Limited, 2023
  • 78. Spatial/Temporal Bias Is Inevitable Observations are always from a single point in space and time—you only directly experience ”here” & “now”, and can only inspect past events (not future events), and space is “big”! You are (only) here © Instaclustr Pty Limited, 2023