SlideShare a Scribd company logo
Python Ireland Meetup, Sep 14th 2022
Jim Dowling, CEO @ Hopsworks and Assoc Prof @ KTH
Serverless ML in Python
Predict surf height at Lahinch Beach
Beyond Notebooks: Don’t just train models, build “Prediction Services”
❌ Static Datasets
❌ Data is downloaded from a single
URL
❌ Features for ML are engineered,
correct, and unbiased
❌ Use a model evaluation metric
(accuracy) to communicate the value
of your model
💚 Data never stops coming
💚 Data comes from different
heterogeneous data sources
💚 Write code to extract and validate
the features from input data
💚 Communicate the value of your
model with a UI or app/service
💚 Build and deploy a reliable service
around your model with MLOps
Serverless ML “Prediction Service”
Once or Twice/day
Features Pipelines & Batch Prediction Pipelines
HOPSWORKS.AI
Features
Twice/day Predictions
Github Pages UI
Publish to UI
train model
https://github.com/jimdowling/cjsurf
Models
Serverless Python Functions
● render. com
● pythonanywhere.com
● replit.com
● deta.sh
● linode.com
● hetzner.com
● digitalocean.com
● AWS lambda functions
● Google Cloud Functions
Orchestration Platforms
● Astronomer (Airflow)
● Dagster
● Prefect
● Azure Data Factory
● Amazon Managed Workflows
for Apache Airflow (MWAA)
● Google Cloud Composer
● Databricks Workflows
Alternatives to Github Actions for Serverless Python
(Good) Bombs going off at Mullaghmore, Ireland
What height will the surf be at Lahinch this weekend?
When I lived in Dublin, I always wanted to
know what I would do the next weekend…
surfs up?
No Yes
We built a system called CJSurf to predict surf at Lahinch
Open Ocean Swell Predictions Lahinch Beach Surf Height Predictions
Swells/Waves have (1) height, (2) period, (3) direction
Height
Period is the time between waves
Direction
Wave height at the point is 4 times higher than wave height at the beach
https://polar.ncep.noaa.gov/waves/WEB/gfswave.latest_run/plots/gfswave.62108.bull
Swell Predictions by NOAA Buoys with height, period, direction
Accurate Surf Height Observations by Lahinch Surf Shop
Reports are published at 10am every day by
https://www.lahinchsurfshop.com/
Can I write CJSurf from 2004 with with free managed services?
Can we rewrite a LAMP architecture to a free serverless Python architecture in 2022?
Java Data Collector
& K-NN Predictions.
CronJob.
Php Web App
MySQL
lahinchsurfhop.com noaa.gov (62081, 62105)
Production Machine Learning in 2004!
Lookup Precomputed Predictions
Write Features &
Predictions
Serverless Analytical ML Application in Python (2022)
surf-report-features.ipynb
swell-features.ipynb
batch-predict-surf.ipynb
Github
Pages
Hopsworks
Feature Store
Lahinch, NOAA
Hopsworks
Model Registry
download
model
latest_lahinch.png
insert
DataFrames
https://github.com/jimdowling/cjsurf
train-model.ipynb
add model
SERVERLESS COMPUTE SERVERLESS STATE SERVERLESS UI
Feature Store
Feature Engineering with Pandas/Spark/SQL/Flink
Feature Store
HOPSWORKS
DataFrames DataFrames/Files
Aggregations
Dimensionality
Reductions
Validations
Normalization
One-hot encoding
SQL
Feature Groups Feature Views
Search, Versioning, Metrics
Lineage, Source Code
</>
Feature Store: write to Feature Groups, read from Feature Views
Write DataFrames
Real-Time
Features
Batch Data
Read Feature Vectors
Online API
HOPSWORKS FEATURE STORE
Read Files/DataFrames
Offline API
Feature
Engineering
in Pandas
Feature Engineering: what time does the swell “hit_at” Lahinch?
Prediction
Time=0
“hits_at”
Lahinch Time=?
The swell velocity is calculated by
multiplying the swell period by 1.5. But,
we also need to consider swell direction.
Swell Direction and the Swell Window at Lahinch
SWELL WINDOW
for Lahinch
Lahinch
Swell directions that work for
Lahinch ~(15-120 degrees)
Writing Pandas DataFrames to Hopsworks as Feature Groups
Data Validation for Feature Groups with Great Expectations
Data Validation with Great Expectations and Hopsworks
Feature
Group
Hopsworks Alerting for Data Validation with Great Expectations
✔
❌
DataFrame Great
Expectations
Hopsworks
Alert
Creating
Training Data From
Feature Groups
Feature Groups Feature Views
Search, Versioning, Metrics
Lineage, Source Code
</>
Feature Store: write to Feature Groups, read from Feature Views
Write DataFrames
Real-Time
Features
Batch Data
Read Feature Vectors
Online API
HOPSWORKS FEATURE STORE
Read Files/DataFrames
Offline API
beach_id obs_time height min max
1 2004-01-01 10:00 1 1 1
1 2004-01-02 11:00 1.5 1 2
1 2004-01-03 12:00 3 2 4
lahinch_surf_reports updated every 24 hrs
buoy_id hits_at height direction period
62105 2004-01-01 00:00 1.25 88 9.8
62105 2004-01-02 06:00 1.30 92 10.2
62105 2004-01-03 12:00 2.45 100 11.4
noa_swells updated every 6 hrs
obs_time => hits_at height (swell) direction period height (label)
2004-01-01 10:00 1.25 88 9.8 1.5
2004-01-02 11:00 1.30 92 10.2 2
2004-01-03 12:00 2.45 100 11.4 3
Point-in-time Correct JOIN
(no future data leakage)
Join Features to create Point-in-time Correct Training Data
Training Data
Python DSL for Point-in-Time JOINs, transpiled into SQL
query = lahinch.select(['wave_height'])
.join(swells.select(['height','period','direction']))
fv = fs.create_feature_view(name='lahinch_surf',
description="Lahinch surf height features",
version=1,
labels=["wave_height"],
query=query)
Avoid Training/Serving
Skew with Online Models
Maximize Feature Reuse: Transformations after Feature Groups
Feature Store
HOPSWORKS
DataFrames DataFrames/Files
Aggregations
Dimensionality
Reductions
Validations
Normalization
One-hot encoding
SQL
Normalizing numerical features often improves model performance
Normalization of swell height, period, distance
RMSE 5.11
RMSE 7.0
Scikit-Learn Transformation Functions
Training Pipeline
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train_scaled = scaler.fit_transform(X_train)
joblib.dump(scaler, ‘scaler.pkl')
Online Inference Pipeline
scalar = joblib.load(“/path/to/scalar.pkl”)
from sklearn.preprocessing import MinMaxScaler
X_test_scaled = scaler.fit_transform(X_test)
Ensure
Consistency
with Versioning
& Code Review
& Testing
Online Transformation Functions
Training Pipeline
standard_scaler =
fs.get_transformation_function(name="standard_scaler")
transformation_functions = {
"height": standard_scaler,
"period": standard_scaler,
"direction": standard_scaler,
}
fv = fs.create_feature_view(name='lahinch_surf',
…
transformation_functions=transformation_functions)
X_train,y_train,X_test,y_test = fv.train_test_split(0.1)
Online Inference Pipeline
keys= {“beach_id”: 1}
feature_vector = fv.get_feature_vector(keys)
Transformation
functions (UDFs)
consistent over
training & serving
Lesson Learned:
Refactor Monolithic ML
Pipelines into
Production ML Services
Beyond Notebooks and Monolithic ML Pipelines
Feature
Engineering
Train
Model
Evaluate
Model
Raw Data
● Monolithic ML Pipelines are a single pipeline that transforms raw data
into features and trains and scores the model in one single program
● No easy path to production, so often just thrown over the wall to ops :)
Refactor Monolithic Pipelines into Feature, Training, Inference Pipelines
Feature
Pipeline
Historical Data
Hopsworks
Data Source
Batch
Inference
Pipeline
Training
Pipeline
model
features inference data
training data
predictions
model
Run on a
schedule
Run
on-demand
● A feature pipeline to create features from new live data or to backfill features
from historical data
● A training pipeline that can be run when a new model is needed
● An inference pipeline (either batch or online) that takes features from the feature
store, and if the model is online, combines them with online features.
backfill
new
data
Online Inference Pipelines are part of Model Serving Infra
● Some features are pre-computed and retrieved from the feature store
(typically those that require history and context information)
● Some features are computed on-demand (at run-time) with
application-supplied data (and possibly also history/context)
Feature
Pipeline
Historical Data
Hopsworks
Batch Source
Model
Serving
features
precomputed
features Application
or Service
request
on-demand
features
Stream Source
Training
Pipeline
model
training data
Run on a
schedule
Run
on-demand
Operational
Service
prediction
backfill
Case Study: Iris Flowers as a Batch Prediction Service
iris-feature-
pipeline.ipynb
iris.csv
Hopsworks
Synthetic Data
iris-batch-infere
nce-pipeline
.ipynb
iris-train-knn-
model.ipynb
register
model
features DataFrame
training data
iris_model
GH Actions
Once/day
Colab - run
on-demand
backfill
new
data
Github
Pages UI
https://github.com/featurestoreorg/serverless-ml-course/tree/main/src/01-module
SERVERLESS ML
www.serverless-ml.org
September 2022
Serverless ML Flywheels with Hopsworks
PyData London Exclusive: limited registrations now available at:
https://app.hopsworks.ai
Our Promise to you:
Time Unlimited Free Tier
www.hopsworks.ai
Open &
modular
Efficiency
At Scale
Compliance
Governance
Twitter: @jim_dowling

More Related Content

Similar to _Python Ireland Meetup - Serverless ML - Dowling.pdf

Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
samuel segal
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData Seattle
Jim Dowling
 
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
PAPIs.io
 
Himansu-Java&BigdataDeveloper
Himansu-Java&BigdataDeveloperHimansu-Java&BigdataDeveloper
Himansu-Java&BigdataDeveloperHimansu Behera
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learning
Rajesh Muppalla
 
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Sascha Wenninger
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
Lightbend
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward
 
Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019
Iulian Pintoiu
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
Databricks
 
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
Flink Forward
 
Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)
Ido Green
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
markgrover
 
JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017John Connolly
 
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Andreas Grabner
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
C4Media
 
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
VMware Tanzu
 
Hydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on KubeflowHydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on Kubeflow
Rustem Zakiev
 
Serverless machine learning operations
Serverless machine learning operationsServerless machine learning operations
Serverless machine learning operations
Stepan Pushkarev
 

Similar to _Python Ireland Meetup - Serverless ML - Dowling.pdf (20)

Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData Seattle
 
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
 
Himansu-Java&BigdataDeveloper
Himansu-Java&BigdataDeveloperHimansu-Java&BigdataDeveloper
Himansu-Java&BigdataDeveloper
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learning
 
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
Navigating SAP’s Integration Options (Mastering SAP Technologies 2013)
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
 
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...Flink Forward San Francisco 2018:  Dave Torok & Sameer Wadkar - "Embedding Fl...
Flink Forward San Francisco 2018: Dave Torok & Sameer Wadkar - "Embedding Fl...
 
Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019Productionizing Machine Learning - Bigdata meetup 5-06-2019
Productionizing Machine Learning - Bigdata meetup 5-06-2019
 
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
How to Productionize Your Machine Learning Models Using Apache Spark MLlib 2....
 
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
Flink Forward San Francisco 2018: - Jinkui Shi and Radu Tudoran "Flink real-t...
 
Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017JohnConnollyResumePerformance2017
JohnConnollyResumePerformance2017
 
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
 
B.Karthik
B.KarthikB.Karthik
B.Karthik
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
Delivering the power of data using Spring Cloud DataFlow and DataStax Enterpr...
 
Hydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on KubeflowHydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on Kubeflow
 
Serverless machine learning operations
Serverless machine learning operationsServerless machine learning operations
Serverless machine learning operations
 

More from Jim Dowling

ARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdfARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdf
Jim Dowling
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
Jim Dowling
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning
Jim Dowling
 
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
Jim Dowling
 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Jim Dowling
 
Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021
Jim Dowling
 
Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21
Jim Dowling
 
Hopsworks Feature Store 2.0 a new paradigm
Hopsworks Feature Store  2.0   a new paradigmHopsworks Feature Store  2.0   a new paradigm
Hopsworks Feature Store 2.0 a new paradigm
Jim Dowling
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks
Jim Dowling
 
GANs for Anti Money Laundering
GANs for Anti Money LaunderingGANs for Anti Money Laundering
GANs for Anti Money Laundering
Jim Dowling
 
Berlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowlingBerlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowling
Jim Dowling
 
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala UniversityInvited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Jim Dowling
 
Hopsworks data engineering melbourne april 2020
Hopsworks   data engineering melbourne april 2020Hopsworks   data engineering melbourne april 2020
Hopsworks data engineering melbourne april 2020
Jim Dowling
 
The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines
Jim Dowling
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Jim Dowling
 
Hopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, SunnyvaleHopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, Sunnyvale
Jim Dowling
 
Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019 Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019
Jim Dowling
 
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
Jim Dowling
 
PyData Meetup - Feature Store for Hopsworks and ML Pipelines
PyData Meetup - Feature Store for Hopsworks and ML PipelinesPyData Meetup - Feature Store for Hopsworks and ML Pipelines
PyData Meetup - Feature Store for Hopsworks and ML Pipelines
Jim Dowling
 
The Feature Store in Hopsworks
The Feature Store in HopsworksThe Feature Store in Hopsworks
The Feature Store in Hopsworks
Jim Dowling
 

More from Jim Dowling (20)

ARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdfARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdf
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning
 
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science Meetup
 
Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021
 
Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21
 
Hopsworks Feature Store 2.0 a new paradigm
Hopsworks Feature Store  2.0   a new paradigmHopsworks Feature Store  2.0   a new paradigm
Hopsworks Feature Store 2.0 a new paradigm
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks
 
GANs for Anti Money Laundering
GANs for Anti Money LaunderingGANs for Anti Money Laundering
GANs for Anti Money Laundering
 
Berlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowlingBerlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowling
 
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala UniversityInvited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
 
Hopsworks data engineering melbourne april 2020
Hopsworks   data engineering melbourne april 2020Hopsworks   data engineering melbourne april 2020
Hopsworks data engineering melbourne april 2020
 
The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
 
Hopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, SunnyvaleHopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, Sunnyvale
 
Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019 Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019
 
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
 
PyData Meetup - Feature Store for Hopsworks and ML Pipelines
PyData Meetup - Feature Store for Hopsworks and ML PipelinesPyData Meetup - Feature Store for Hopsworks and ML Pipelines
PyData Meetup - Feature Store for Hopsworks and ML Pipelines
 
The Feature Store in Hopsworks
The Feature Store in HopsworksThe Feature Store in Hopsworks
The Feature Store in Hopsworks
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

_Python Ireland Meetup - Serverless ML - Dowling.pdf

  • 1. Python Ireland Meetup, Sep 14th 2022 Jim Dowling, CEO @ Hopsworks and Assoc Prof @ KTH Serverless ML in Python Predict surf height at Lahinch Beach
  • 2. Beyond Notebooks: Don’t just train models, build “Prediction Services” ❌ Static Datasets ❌ Data is downloaded from a single URL ❌ Features for ML are engineered, correct, and unbiased ❌ Use a model evaluation metric (accuracy) to communicate the value of your model 💚 Data never stops coming 💚 Data comes from different heterogeneous data sources 💚 Write code to extract and validate the features from input data 💚 Communicate the value of your model with a UI or app/service 💚 Build and deploy a reliable service around your model with MLOps
  • 3. Serverless ML “Prediction Service” Once or Twice/day Features Pipelines & Batch Prediction Pipelines HOPSWORKS.AI Features Twice/day Predictions Github Pages UI Publish to UI train model https://github.com/jimdowling/cjsurf Models
  • 4. Serverless Python Functions ● render. com ● pythonanywhere.com ● replit.com ● deta.sh ● linode.com ● hetzner.com ● digitalocean.com ● AWS lambda functions ● Google Cloud Functions Orchestration Platforms ● Astronomer (Airflow) ● Dagster ● Prefect ● Azure Data Factory ● Amazon Managed Workflows for Apache Airflow (MWAA) ● Google Cloud Composer ● Databricks Workflows Alternatives to Github Actions for Serverless Python
  • 5. (Good) Bombs going off at Mullaghmore, Ireland
  • 6. What height will the surf be at Lahinch this weekend? When I lived in Dublin, I always wanted to know what I would do the next weekend… surfs up? No Yes
  • 7. We built a system called CJSurf to predict surf at Lahinch Open Ocean Swell Predictions Lahinch Beach Surf Height Predictions
  • 8. Swells/Waves have (1) height, (2) period, (3) direction Height Period is the time between waves Direction Wave height at the point is 4 times higher than wave height at the beach
  • 10. Accurate Surf Height Observations by Lahinch Surf Shop Reports are published at 10am every day by https://www.lahinchsurfshop.com/
  • 11. Can I write CJSurf from 2004 with with free managed services? Can we rewrite a LAMP architecture to a free serverless Python architecture in 2022? Java Data Collector & K-NN Predictions. CronJob. Php Web App MySQL lahinchsurfhop.com noaa.gov (62081, 62105) Production Machine Learning in 2004! Lookup Precomputed Predictions Write Features & Predictions
  • 12. Serverless Analytical ML Application in Python (2022) surf-report-features.ipynb swell-features.ipynb batch-predict-surf.ipynb Github Pages Hopsworks Feature Store Lahinch, NOAA Hopsworks Model Registry download model latest_lahinch.png insert DataFrames https://github.com/jimdowling/cjsurf train-model.ipynb add model SERVERLESS COMPUTE SERVERLESS STATE SERVERLESS UI
  • 14. Feature Engineering with Pandas/Spark/SQL/Flink Feature Store HOPSWORKS DataFrames DataFrames/Files Aggregations Dimensionality Reductions Validations Normalization One-hot encoding SQL
  • 15. Feature Groups Feature Views Search, Versioning, Metrics Lineage, Source Code </> Feature Store: write to Feature Groups, read from Feature Views Write DataFrames Real-Time Features Batch Data Read Feature Vectors Online API HOPSWORKS FEATURE STORE Read Files/DataFrames Offline API
  • 17. Feature Engineering: what time does the swell “hit_at” Lahinch? Prediction Time=0 “hits_at” Lahinch Time=? The swell velocity is calculated by multiplying the swell period by 1.5. But, we also need to consider swell direction.
  • 18. Swell Direction and the Swell Window at Lahinch SWELL WINDOW for Lahinch Lahinch Swell directions that work for Lahinch ~(15-120 degrees)
  • 19. Writing Pandas DataFrames to Hopsworks as Feature Groups
  • 20. Data Validation for Feature Groups with Great Expectations
  • 21. Data Validation with Great Expectations and Hopsworks
  • 22. Feature Group Hopsworks Alerting for Data Validation with Great Expectations ✔ ❌ DataFrame Great Expectations Hopsworks Alert
  • 24. Feature Groups Feature Views Search, Versioning, Metrics Lineage, Source Code </> Feature Store: write to Feature Groups, read from Feature Views Write DataFrames Real-Time Features Batch Data Read Feature Vectors Online API HOPSWORKS FEATURE STORE Read Files/DataFrames Offline API
  • 25. beach_id obs_time height min max 1 2004-01-01 10:00 1 1 1 1 2004-01-02 11:00 1.5 1 2 1 2004-01-03 12:00 3 2 4 lahinch_surf_reports updated every 24 hrs buoy_id hits_at height direction period 62105 2004-01-01 00:00 1.25 88 9.8 62105 2004-01-02 06:00 1.30 92 10.2 62105 2004-01-03 12:00 2.45 100 11.4 noa_swells updated every 6 hrs obs_time => hits_at height (swell) direction period height (label) 2004-01-01 10:00 1.25 88 9.8 1.5 2004-01-02 11:00 1.30 92 10.2 2 2004-01-03 12:00 2.45 100 11.4 3 Point-in-time Correct JOIN (no future data leakage) Join Features to create Point-in-time Correct Training Data Training Data
  • 26. Python DSL for Point-in-Time JOINs, transpiled into SQL query = lahinch.select(['wave_height']) .join(swells.select(['height','period','direction'])) fv = fs.create_feature_view(name='lahinch_surf', description="Lahinch surf height features", version=1, labels=["wave_height"], query=query)
  • 28. Maximize Feature Reuse: Transformations after Feature Groups Feature Store HOPSWORKS DataFrames DataFrames/Files Aggregations Dimensionality Reductions Validations Normalization One-hot encoding SQL
  • 29. Normalizing numerical features often improves model performance Normalization of swell height, period, distance RMSE 5.11 RMSE 7.0
  • 30. Scikit-Learn Transformation Functions Training Pipeline from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train_scaled = scaler.fit_transform(X_train) joblib.dump(scaler, ‘scaler.pkl') Online Inference Pipeline scalar = joblib.load(“/path/to/scalar.pkl”) from sklearn.preprocessing import MinMaxScaler X_test_scaled = scaler.fit_transform(X_test) Ensure Consistency with Versioning & Code Review & Testing
  • 31. Online Transformation Functions Training Pipeline standard_scaler = fs.get_transformation_function(name="standard_scaler") transformation_functions = { "height": standard_scaler, "period": standard_scaler, "direction": standard_scaler, } fv = fs.create_feature_view(name='lahinch_surf', … transformation_functions=transformation_functions) X_train,y_train,X_test,y_test = fv.train_test_split(0.1) Online Inference Pipeline keys= {“beach_id”: 1} feature_vector = fv.get_feature_vector(keys) Transformation functions (UDFs) consistent over training & serving
  • 32. Lesson Learned: Refactor Monolithic ML Pipelines into Production ML Services
  • 33. Beyond Notebooks and Monolithic ML Pipelines Feature Engineering Train Model Evaluate Model Raw Data ● Monolithic ML Pipelines are a single pipeline that transforms raw data into features and trains and scores the model in one single program ● No easy path to production, so often just thrown over the wall to ops :)
  • 34. Refactor Monolithic Pipelines into Feature, Training, Inference Pipelines Feature Pipeline Historical Data Hopsworks Data Source Batch Inference Pipeline Training Pipeline model features inference data training data predictions model Run on a schedule Run on-demand ● A feature pipeline to create features from new live data or to backfill features from historical data ● A training pipeline that can be run when a new model is needed ● An inference pipeline (either batch or online) that takes features from the feature store, and if the model is online, combines them with online features. backfill new data
  • 35. Online Inference Pipelines are part of Model Serving Infra ● Some features are pre-computed and retrieved from the feature store (typically those that require history and context information) ● Some features are computed on-demand (at run-time) with application-supplied data (and possibly also history/context) Feature Pipeline Historical Data Hopsworks Batch Source Model Serving features precomputed features Application or Service request on-demand features Stream Source Training Pipeline model training data Run on a schedule Run on-demand Operational Service prediction backfill
  • 36. Case Study: Iris Flowers as a Batch Prediction Service iris-feature- pipeline.ipynb iris.csv Hopsworks Synthetic Data iris-batch-infere nce-pipeline .ipynb iris-train-knn- model.ipynb register model features DataFrame training data iris_model GH Actions Once/day Colab - run on-demand backfill new data Github Pages UI https://github.com/featurestoreorg/serverless-ml-course/tree/main/src/01-module
  • 38. Serverless ML Flywheels with Hopsworks PyData London Exclusive: limited registrations now available at: https://app.hopsworks.ai Our Promise to you: Time Unlimited Free Tier