SlideShare a Scribd company logo
1 of 41
Download to read offline
Productionizing Real-Time
Serving With mlflow
Ron Barabash
Tech Lead @ Yotpo
Agenda
The Yotpo Use Case
Using mlflow serving to deploy and serve AI Models
that enrich and analyze images via REST API
The Challenges with ML in
Production
Tons of repetitive infrastructure work, distributed
across multiple teams
Mlflow Serving
Why it’s Awesome? What we did to make
production ready
Yotpo
at a glance
Founded 2011 | Raised $176,000,000
PAYING
CUSTOMERS +10,000
eCommerce Marketing Platform Overview
EMPLOYEES
524
OFFICES
8
New York Tel Aviv London
Sofia Boston Philippines
Yokneam Modiin
SMSReviews Loyalty ReferralVisual
Use Case - ML models to enrich Visual Content
for the Visual Marketing Suite
Visual Marketing
▪ Combine customer photos,
videos, and reviews and
create product galleries
based on UGC
▪ Leverage visual content to
create a better on site
experience and engaging
marketing campaigns
Smart Filters Module
▪ Shop owner curate images from
Instagram
▪ Filter them based on
▪ Dominant colors
▪ Contains People
▪ Image Quality - noise, under exposed, low res
▪ Scenery - outdoor/indoor
▪ Smiling People
▪ Possibilities are endless - adding more models should
be a breeze
▪ Chooses which images to display
on their onsite widget gallery
Extend the filters in the VMS moderation page
with AI-based visual filters.
Why ML in Production is Hard?
Multiple teams and contexts
common functional silos in large organizations can create barriers, stifling the ability to
automate the end-to-end process of deploying ML applications to production
Challenges
▪ Vast and complex multi-layered of infrastructure
▪ Data Processing & Preparation
▪ Feature Extraction
▪ Training Infrastructure
▪ Serving Infrastructure
▪ Model -> Rest API. Repeat!
▪ Organizational structure
▪ Self contained teams
▪ End-2-End efforts and full accountability & ownership
▪ Dev process
▪ Large and cumbersome “hand-overs”
▪ “Waterfall” instead of “Agile”
https://blog.datakitchen.io/blog/deliver-ai-and-ml-models-at-scale-with-modelops
Eran Strod, Data Kitchen
“MLOps is an application of DataOps principles and
automation to machine learning systems.
It turns data science workflows into robust, repeatable
processes executed in minimal time and with virtually
zero errors”
▪ MLflow Tracking
▪ Record and query experiments: code, data, config, and results
▪ MLflow Projects
▪ Package data science code in a format to reproduce runs on any platform
▪ MLflow Models
▪ Deploy machine learning models in diverse serving environments
▪ Model Registry
▪ Store, annotate, discover, and manage models in a central repository
* Solved a lot of problems for us
An open source platform for the machine learning lifecycle.
▪ Generic and model agnostic (pyfunc_flavour)
▪ Can be automated to streamline any model deployment!
▪ The Out of the box server accepts the following data formats as POST
input to the /invocations path
▪ JSON-serialized pandas DataFrames
▪ JSON-serialized pandas DataFrames in the records orientation
▪ CSV-serialized pandas DataFrames
▪ Running using mlflow cli
▪ Good for testing things locally and experiment
▪ mlflow models serve -m runs:/my-run-id/model-path
A built in module in mlflow models to deploy ML Models as REST API Endpoints
Serving
Requests to mlflow model server
#!/bin/sh
curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"columns": ["a", "b", "c"],
"data": [[1, 2, 3], [4, 5, 6]]
}'
# record-oriented (fine for vector rows, loses ordering for JSON records)
curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json;
format=pandas-records' -d '[
{"a": 1,"b": 2,"c": 3},
{"a": 4,"b": 5,"c": 6}
]'
Scoring Server
mlflow creates a server using the scoring_server module
▪ Loads the model from a given path (run_id, path)
▪ Downloading artifacts and loading them to memory
▪ Initializing conda env (you’re model deps)
▪ Creates a Flask web application
▪ Binds the /invocations endpoint
▪ Code for parsing the request and passing the required input to the model object
▪ Binds the “/ping”
▪ Endpoint for health-checking our server, will respond 200 OK if model can be loaded by mlflow
Scoring Server
wsgi.py as an entrypoint to launch the webserver
import os
from mlflow.pyfunc import scoring_server
from mlflow.pyfunc import load_model
app = scoring_server.init(load_model(os.environ[scoring_server._SERVER_MODEL_PATH]))
Productionizing
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
▪ Treat mlflow based services like any other microservice
▪ Enjoy the centralized infrastructure that is already in place
▪ Streamlined deployment mechanism
▪ Monitoring
▪ Log shipping automatically to ELK
▪ Metrics are scraped automatically by Prometheus - available in Grafana
▪ Auto scaling based on anything we choose to measure
▪ Automatic restarts, registrations in Service Discovery
▪ Canary / B/G Deployments, A/B Testing
▪ Unit Tests, Integration Tests, E2E
* This is about customizing & extending mlflow to suit your current infra
What needs to be productionized?
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
Key Components of an mlflow based server
▪ Flask - lightweight WSGi web application microframework
▪ The web application code
▪ Easy setup and development
▪ Not performant enough for as standalone production server
▪ WSGi - Web Server Gateway Interface
▪ A specification that describes how a web server communicates with web applications
▪ A clear separation and decoupling between the web server (NGINX) and the Python application code (Flask)
▪ Gunicorn - WSGi complaint web server
▪ Widely popular & already being used in mlflow serving
▪ Fast, scalable & flexible
Web application & Web server
Example request flow
Request
localhost:5000
/static
html, css, js, images, pdf…...
Adding Custom Middleware
What is a server middleware?
Request
Response
Middleware 1
//logic
next()
//more logic
Middleware 2
//logic
next()
//more logic
Mlflow
Prediction
Code
//logic
//more logic
Middlewares Examples
Monitoring
Add custom metrics you
wish to measure
Authorization
Authorize requests
against 3rd party
service
Logging
Configure logging level,
handlers and format
Transformation
Emit the pandas format
required input
Custom Instrumentation
Custom wsgi.py entrypoint to launch the web server - Using Prometheus to export metrics
import os
from flask import request
from mlflow.pyfunc import scoring_server, load_model
from prometheus_flask_exporter.multiprocess import GunicornInternalPrometheusMetrics
app = scoring_server.init(load_model(os.getenv('MODEL_PATH')))
metrics = GunicornInternalPrometheusMetrics(app, defaults_prefix=os.getenv('APP_NAME'))
metrics.register_default(
metrics.counter(
'by_path_counter', 'Request count by request paths',
labels={'path': lambda: request.path}
)
)
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
Packaging our Application
FROM python:3.6.5
ENV SERVER_HOST 0.0.0.0
ENV WORKDIR /opt/scene-detector
ENV PYTHONPATH /opt/scene-detector
WORKDIR $WORKDIR
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY gunicorn_logging.conf gunicorn_logging.conf
COPY gunicorn_conf.py gunicorn_conf.py
COPY wsgi.py wsgi.py
COPY entrypoint.sh /
EXPOSE $SERVER_PORT
ENTRYPOINT ["/entrypoint.sh"]
Packaging our Application
#!/bin/sh
export GUNICORN_CMD_ARGS="--statsd-host=${STATSD_HOST:-localhost:8125} 
--statsd-prefix=${STATSD_PREFIX:-scene-detector} 
--log-config ${WORKDIR}/gunicorn_logging.conf 
--config ${WORKDIR}/gunicorn_conf.py 
--bind ${SERVER_HOST}:${SERVER_PORT} 
--workers ${WORKERS:-1} 
--threads ${THREADS:-1} 
--graceful-timeout ${GRACEFUL_TIMEOUT_SECONDS:-5} 
--timeout ${TIMEOUT:-60}"
export prometheus_multiproc_dir=/tmp
#Notice here we are not running mlflow models serve directly, this is because we modify the flask app
and registered our middleware
#mlflow models serve -m "runs:/$MODEL_VERSION/$MODEL_NAME/" -h $SERVER_HOST -p $SERVER_PORT --no-conda -
-workers $WORKERS
exec gunicorn ${GUNICORN_CMD_ARGS} wsgi:app
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
Deploying to production - CI/CD
Validations &
Evaluations
Codebase
Data Processing &
Cleaning
Feature Extraction Model Training
Build Scripts Configurations Monitor
Training
Serving
Deploy
Deploy & Schedule
Optimize
New Run ID
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
Example Dashboard
MLflow microservice lifecycle
Deploy
Run on any container
orchestration, Load
model from MLflow
Develop
Extend and customize
our mlflow serving code
& server
Optimize
Scale, change Instance
types, timeouts, Auto
scaling, Restart Policies
Monitor
Configure logging and
metrics, Service Health
Package
Build docker, install
relevant deps
▪ Instance Types
▪ Memory & CPU
▪ Configuring instance types which suits your model best, can be done on any container orchestration
▪ Horizontal Auto Scaling
▪ HPA on K8s
▪ Libra on Nomad
▪ Spot
General Optimizations
▪ Sync
▪ The most basic and the default worker type is a synchronous worker class that handles a single request at a time.
▪ Async
▪ based on Greenlets (via Eventlet and Gevent).
▪ Greenlets are an implementation of cooperative multi-threading for Python
▪ The suggested number of workers is (2*CPU)+1.
▪ for a quad-core machine: gunicorn --workers=9 main:app
Workers
CPU bound applications - increasing the number of parallel requests
▪ Threads
▪ Gunicorn also allows for each of the workers to have multiple threads
▪ Threads spawned by the same worker shares the same memory space
▪ When using multiple threads the worker type changes automatically to gthread
▪ The suggested number of workers mixed with threads is still (2*CPU)+1.
▪ for a quad-core machine: gunicorn --workers=3 --threads=3 main:app
▪ Pseudo-Threads
▪ There are some Python libraries such as gevent and Asyncio that enables concurrency in Python by using “pseudo-threads”
implemented with coroutines.
▪ mlflow uses gevent worker type by default (pip install gunicorn[gevent])
▪ gunicorn --worker-class=gevent --worker-connections=1000 --workers=9 main:app
▪ in this case, the maximum number of concurrent requests is 9000 (9 workers * 1000 connections per worker)
*Visibility on the requests that are waiting to be served
Threads & Pseudo-Threads
I/O bound applications - increasing the number of concurrent operations
What are the alternatives?
The Serving Space is Crowded!
▪ Databricks released built in Serving module in Databricks
▪ https://databricks.com/blog/2020/06/25/announcing-mlflow-model-serving-on-databricks.html
▪ AWS Sagemaker/Azure ML
▪ cnvrg.io
▪ TF Serving
▪ Seldon
It all comes down to what suits you best!
There are plenty of options out there
Wrapping up!
▪ Key Takeaways
▪ ML In production is hard
▪ Organizational
▪ Technical
▪ mlflow serving is a great generic way to serve any model - and also can be extended easily!
▪ https://github.com/YotpoLtd/scene-detector-demo/tree/master (vgg16)
▪ For Yotpo, this was a game-changer, decreasing the barrier of entry of AI applications.
▪ Utilize the centralised production infrastructure that is already in place
▪ Where to go from here
▪ What about AB Testing?
▪ Base dockers to encapsulate mutual and shared code (entrypoint, Dockerfile, Dependencies)
▪ Dynamic MIddleware registration
▪ CD4ML - When a training pipelines finishes successfully, trigger deployment with new model version
Feedback
Your feedback is important to us.
Don’t forget to rate
and review the sessions.

More Related Content

What's hot

How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformDatabricks
 
MLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine LearningMLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine LearningMatei Zaharia
 
MLOps Bridging the gap between Data Scientists and Ops.
MLOps Bridging the gap between Data Scientists and Ops.MLOps Bridging the gap between Data Scientists and Ops.
MLOps Bridging the gap between Data Scientists and Ops.Knoldus Inc.
 
Drifting Away: Testing ML Models in Production
Drifting Away: Testing ML Models in ProductionDrifting Away: Testing ML Models in Production
Drifting Away: Testing ML Models in ProductionDatabricks
 
Managing the Complete Machine Learning Lifecycle with MLflow
Managing the Complete Machine Learning Lifecycle with MLflowManaging the Complete Machine Learning Lifecycle with MLflow
Managing the Complete Machine Learning Lifecycle with MLflowDatabricks
 
How to Build a ML Platform Efficiently Using Open-Source
How to Build a ML Platform Efficiently Using Open-SourceHow to Build a ML Platform Efficiently Using Open-Source
How to Build a ML Platform Efficiently Using Open-SourceDatabricks
 
"Managing the Complete Machine Learning Lifecycle with MLflow"
"Managing the Complete Machine Learning Lifecycle with MLflow""Managing the Complete Machine Learning Lifecycle with MLflow"
"Managing the Complete Machine Learning Lifecycle with MLflow"Databricks
 
Productionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowProductionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowDatabricks
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine LearningWhat’s New with Databricks Machine Learning
What’s New with Databricks Machine LearningDatabricks
 
From Data Science to MLOps
From Data Science to MLOpsFrom Data Science to MLOps
From Data Science to MLOpsCarl W. Handlin
 
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full LifecycleMLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full LifecycleDatabricks
 
ML-Ops: Philosophy, Best-Practices and Tools
ML-Ops:Philosophy, Best-Practices and ToolsML-Ops:Philosophy, Best-Practices and Tools
ML-Ops: Philosophy, Best-Practices and ToolsJorge Davila-Chacon
 
Building an ML Platform with Ray and MLflow
Building an ML Platform with Ray and MLflowBuilding an ML Platform with Ray and MLflow
Building an ML Platform with Ray and MLflowDatabricks
 
Deep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxDeep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxTomazBratanic1
 
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ... MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...Databricks
 
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...Databricks
 
DVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsDVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsFrancesco Casalegno
 
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...DataWorks Summit
 

What's hot (20)

How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML PlatformHow to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform
 
Serving ML easily with FastAPI
Serving ML easily with FastAPIServing ML easily with FastAPI
Serving ML easily with FastAPI
 
MLOps in action
MLOps in actionMLOps in action
MLOps in action
 
MLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine LearningMLflow: A Platform for Production Machine Learning
MLflow: A Platform for Production Machine Learning
 
MLOps Bridging the gap between Data Scientists and Ops.
MLOps Bridging the gap between Data Scientists and Ops.MLOps Bridging the gap between Data Scientists and Ops.
MLOps Bridging the gap between Data Scientists and Ops.
 
Drifting Away: Testing ML Models in Production
Drifting Away: Testing ML Models in ProductionDrifting Away: Testing ML Models in Production
Drifting Away: Testing ML Models in Production
 
Managing the Complete Machine Learning Lifecycle with MLflow
Managing the Complete Machine Learning Lifecycle with MLflowManaging the Complete Machine Learning Lifecycle with MLflow
Managing the Complete Machine Learning Lifecycle with MLflow
 
How to Build a ML Platform Efficiently Using Open-Source
How to Build a ML Platform Efficiently Using Open-SourceHow to Build a ML Platform Efficiently Using Open-Source
How to Build a ML Platform Efficiently Using Open-Source
 
"Managing the Complete Machine Learning Lifecycle with MLflow"
"Managing the Complete Machine Learning Lifecycle with MLflow""Managing the Complete Machine Learning Lifecycle with MLflow"
"Managing the Complete Machine Learning Lifecycle with MLflow"
 
Productionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowProductionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflow
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine LearningWhat’s New with Databricks Machine Learning
What’s New with Databricks Machine Learning
 
From Data Science to MLOps
From Data Science to MLOpsFrom Data Science to MLOps
From Data Science to MLOps
 
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full LifecycleMLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
MLOps Virtual Event | Building Machine Learning Platforms for the Full Lifecycle
 
ML-Ops: Philosophy, Best-Practices and Tools
ML-Ops:Philosophy, Best-Practices and ToolsML-Ops:Philosophy, Best-Practices and Tools
ML-Ops: Philosophy, Best-Practices and Tools
 
Building an ML Platform with Ray and MLflow
Building an ML Platform with Ray and MLflowBuilding an ML Platform with Ray and MLflow
Building an ML Platform with Ray and MLflow
 
Deep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxDeep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptx
 
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ... MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
MLflow: Infrastructure for a Complete Machine Learning Life Cycle with Mani ...
 
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...
MATS stack (MLFlow, Airflow, Tensorflow, Spark) for Cross-system Orchestratio...
 
DVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projectsDVC - Git-like Data Version Control for Machine Learning projects
DVC - Git-like Data Version Control for Machine Learning projects
 
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycl...
 

Similar to Productionizing Real-time Serving With MLflow

MLflow Model Serving
MLflow Model ServingMLflow Model Serving
MLflow Model ServingDatabricks
 
Productionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices ArchitectureProductionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices ArchitectureDatabricks
 
MLflow Model Serving - DAIS 2021
MLflow Model Serving - DAIS 2021MLflow Model Serving - DAIS 2021
MLflow Model Serving - DAIS 2021amesar0
 
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfPyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfJim Dowling
 
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWS
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWSAWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWS
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWSAWS Chicago
 
Azure appservice
Azure appserviceAzure appservice
Azure appserviceRaju Kumar
 
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdfSlides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdfvitm11
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)Rahul Singh
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Perth MeetUp June 2023
Perth MeetUp June 2023Perth MeetUp June 2023
Perth MeetUp June 2023Michael Price
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azuregjuljo
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectDevOps.com
 
Create Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudCreate Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudRightScale
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learningRajesh Muppalla
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Sotrender
 
Andy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonAndy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonRightScale
 
JBoss BPM Suite 6 Tech labs
JBoss BPM Suite 6 Tech labsJBoss BPM Suite 6 Tech labs
JBoss BPM Suite 6 Tech labsAndrea Leoncini
 

Similar to Productionizing Real-time Serving With MLflow (20)

MLflow Model Serving
MLflow Model ServingMLflow Model Serving
MLflow Model Serving
 
Productionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices ArchitectureProductionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices Architecture
 
MLflow Model Serving - DAIS 2021
MLflow Model Serving - DAIS 2021MLflow Model Serving - DAIS 2021
MLflow Model Serving - DAIS 2021
 
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfPyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
 
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWS
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWSAWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWS
AWS Community Day - Piyali Kamra - Conversational AI Ecosystem on AWS
 
Trinada pabolu profile
Trinada pabolu profileTrinada pabolu profile
Trinada pabolu profile
 
Azure appservice
Azure appserviceAzure appservice
Azure appservice
 
Trinada pabolu profile
Trinada pabolu profileTrinada pabolu profile
Trinada pabolu profile
 
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdfSlides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Perth MeetUp June 2023
Perth MeetUp June 2023Perth MeetUp June 2023
Perth MeetUp June 2023
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azure
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
Create Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the CloudCreate Agile, Automated and Predictable IT Infrastructure in the Cloud
Create Agile, Automated and Predictable IT Infrastructure in the Cloud
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learning
 
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
Trenowanie i wdrażanie modeli uczenia maszynowego z wykorzystaniem Google Clo...
 
Andy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, PearsonAndy West – Director of Technology Architecture, Pearson
Andy West – Director of Technology Architecture, Pearson
 
Resume
ResumeResume
Resume
 
JBoss BPM Suite 6 Tech labs
JBoss BPM Suite 6 Tech labsJBoss BPM Suite 6 Tech labs
JBoss BPM Suite 6 Tech labs
 

More from Databricks

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDatabricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of HadoopDatabricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDatabricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceDatabricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringDatabricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixDatabricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchDatabricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesDatabricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesDatabricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsDatabricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkDatabricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkDatabricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesDatabricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkDatabricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeDatabricks
 

More from Databricks (20)

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
 

Recently uploaded

100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptxAnupama Kate
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfadriantubila
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...shambhavirathore45
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Valters Lauzums
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfRachmat Ramadhan H
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysismanisha194592
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...SUHANI PANDEY
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxolyaivanovalion
 

Recently uploaded (20)

Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
 
100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx100-Concepts-of-AI by Anupama Kate .pptx
100-Concepts-of-AI by Anupama Kate .pptx
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
Digital Advertising Lecture for Advanced Digital & Social Media Strategy at U...
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
Carero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptxCarero dropshipping via API with DroFx.pptx
Carero dropshipping via API with DroFx.pptx
 

Productionizing Real-time Serving With MLflow

  • 1. Productionizing Real-Time Serving With mlflow Ron Barabash Tech Lead @ Yotpo
  • 2. Agenda The Yotpo Use Case Using mlflow serving to deploy and serve AI Models that enrich and analyze images via REST API The Challenges with ML in Production Tons of repetitive infrastructure work, distributed across multiple teams Mlflow Serving Why it’s Awesome? What we did to make production ready
  • 3. Yotpo at a glance Founded 2011 | Raised $176,000,000 PAYING CUSTOMERS +10,000 eCommerce Marketing Platform Overview EMPLOYEES 524 OFFICES 8 New York Tel Aviv London Sofia Boston Philippines Yokneam Modiin SMSReviews Loyalty ReferralVisual
  • 4. Use Case - ML models to enrich Visual Content for the Visual Marketing Suite
  • 5. Visual Marketing ▪ Combine customer photos, videos, and reviews and create product galleries based on UGC ▪ Leverage visual content to create a better on site experience and engaging marketing campaigns
  • 6. Smart Filters Module ▪ Shop owner curate images from Instagram ▪ Filter them based on ▪ Dominant colors ▪ Contains People ▪ Image Quality - noise, under exposed, low res ▪ Scenery - outdoor/indoor ▪ Smiling People ▪ Possibilities are endless - adding more models should be a breeze ▪ Chooses which images to display on their onsite widget gallery Extend the filters in the VMS moderation page with AI-based visual filters.
  • 7. Why ML in Production is Hard?
  • 8.
  • 9. Multiple teams and contexts common functional silos in large organizations can create barriers, stifling the ability to automate the end-to-end process of deploying ML applications to production
  • 10. Challenges ▪ Vast and complex multi-layered of infrastructure ▪ Data Processing & Preparation ▪ Feature Extraction ▪ Training Infrastructure ▪ Serving Infrastructure ▪ Model -> Rest API. Repeat! ▪ Organizational structure ▪ Self contained teams ▪ End-2-End efforts and full accountability & ownership ▪ Dev process ▪ Large and cumbersome “hand-overs” ▪ “Waterfall” instead of “Agile”
  • 11. https://blog.datakitchen.io/blog/deliver-ai-and-ml-models-at-scale-with-modelops Eran Strod, Data Kitchen “MLOps is an application of DataOps principles and automation to machine learning systems. It turns data science workflows into robust, repeatable processes executed in minimal time and with virtually zero errors”
  • 12. ▪ MLflow Tracking ▪ Record and query experiments: code, data, config, and results ▪ MLflow Projects ▪ Package data science code in a format to reproduce runs on any platform ▪ MLflow Models ▪ Deploy machine learning models in diverse serving environments ▪ Model Registry ▪ Store, annotate, discover, and manage models in a central repository * Solved a lot of problems for us An open source platform for the machine learning lifecycle.
  • 13. ▪ Generic and model agnostic (pyfunc_flavour) ▪ Can be automated to streamline any model deployment! ▪ The Out of the box server accepts the following data formats as POST input to the /invocations path ▪ JSON-serialized pandas DataFrames ▪ JSON-serialized pandas DataFrames in the records orientation ▪ CSV-serialized pandas DataFrames ▪ Running using mlflow cli ▪ Good for testing things locally and experiment ▪ mlflow models serve -m runs:/my-run-id/model-path A built in module in mlflow models to deploy ML Models as REST API Endpoints Serving
  • 14. Requests to mlflow model server #!/bin/sh curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{ "columns": ["a", "b", "c"], "data": [[1, 2, 3], [4, 5, 6]] }' # record-oriented (fine for vector rows, loses ordering for JSON records) curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json; format=pandas-records' -d '[ {"a": 1,"b": 2,"c": 3}, {"a": 4,"b": 5,"c": 6} ]'
  • 15. Scoring Server mlflow creates a server using the scoring_server module ▪ Loads the model from a given path (run_id, path) ▪ Downloading artifacts and loading them to memory ▪ Initializing conda env (you’re model deps) ▪ Creates a Flask web application ▪ Binds the /invocations endpoint ▪ Code for parsing the request and passing the required input to the model object ▪ Binds the “/ping” ▪ Endpoint for health-checking our server, will respond 200 OK if model can be loaded by mlflow
  • 16. Scoring Server wsgi.py as an entrypoint to launch the webserver import os from mlflow.pyfunc import scoring_server from mlflow.pyfunc import load_model app = scoring_server.init(load_model(os.environ[scoring_server._SERVER_MODEL_PATH]))
  • 18. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 19. ▪ Treat mlflow based services like any other microservice ▪ Enjoy the centralized infrastructure that is already in place ▪ Streamlined deployment mechanism ▪ Monitoring ▪ Log shipping automatically to ELK ▪ Metrics are scraped automatically by Prometheus - available in Grafana ▪ Auto scaling based on anything we choose to measure ▪ Automatic restarts, registrations in Service Discovery ▪ Canary / B/G Deployments, A/B Testing ▪ Unit Tests, Integration Tests, E2E * This is about customizing & extending mlflow to suit your current infra What needs to be productionized?
  • 20. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 21. Key Components of an mlflow based server ▪ Flask - lightweight WSGi web application microframework ▪ The web application code ▪ Easy setup and development ▪ Not performant enough for as standalone production server ▪ WSGi - Web Server Gateway Interface ▪ A specification that describes how a web server communicates with web applications ▪ A clear separation and decoupling between the web server (NGINX) and the Python application code (Flask) ▪ Gunicorn - WSGi complaint web server ▪ Widely popular & already being used in mlflow serving ▪ Fast, scalable & flexible Web application & Web server
  • 24. What is a server middleware? Request Response Middleware 1 //logic next() //more logic Middleware 2 //logic next() //more logic Mlflow Prediction Code //logic //more logic
  • 25. Middlewares Examples Monitoring Add custom metrics you wish to measure Authorization Authorize requests against 3rd party service Logging Configure logging level, handlers and format Transformation Emit the pandas format required input
  • 26. Custom Instrumentation Custom wsgi.py entrypoint to launch the web server - Using Prometheus to export metrics import os from flask import request from mlflow.pyfunc import scoring_server, load_model from prometheus_flask_exporter.multiprocess import GunicornInternalPrometheusMetrics app = scoring_server.init(load_model(os.getenv('MODEL_PATH'))) metrics = GunicornInternalPrometheusMetrics(app, defaults_prefix=os.getenv('APP_NAME')) metrics.register_default( metrics.counter( 'by_path_counter', 'Request count by request paths', labels={'path': lambda: request.path} ) )
  • 27. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 28. Packaging our Application FROM python:3.6.5 ENV SERVER_HOST 0.0.0.0 ENV WORKDIR /opt/scene-detector ENV PYTHONPATH /opt/scene-detector WORKDIR $WORKDIR COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY gunicorn_logging.conf gunicorn_logging.conf COPY gunicorn_conf.py gunicorn_conf.py COPY wsgi.py wsgi.py COPY entrypoint.sh / EXPOSE $SERVER_PORT ENTRYPOINT ["/entrypoint.sh"]
  • 29. Packaging our Application #!/bin/sh export GUNICORN_CMD_ARGS="--statsd-host=${STATSD_HOST:-localhost:8125} --statsd-prefix=${STATSD_PREFIX:-scene-detector} --log-config ${WORKDIR}/gunicorn_logging.conf --config ${WORKDIR}/gunicorn_conf.py --bind ${SERVER_HOST}:${SERVER_PORT} --workers ${WORKERS:-1} --threads ${THREADS:-1} --graceful-timeout ${GRACEFUL_TIMEOUT_SECONDS:-5} --timeout ${TIMEOUT:-60}" export prometheus_multiproc_dir=/tmp #Notice here we are not running mlflow models serve directly, this is because we modify the flask app and registered our middleware #mlflow models serve -m "runs:/$MODEL_VERSION/$MODEL_NAME/" -h $SERVER_HOST -p $SERVER_PORT --no-conda - -workers $WORKERS exec gunicorn ${GUNICORN_CMD_ARGS} wsgi:app
  • 30. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 31. Deploying to production - CI/CD Validations & Evaluations Codebase Data Processing & Cleaning Feature Extraction Model Training Build Scripts Configurations Monitor Training Serving Deploy Deploy & Schedule Optimize New Run ID
  • 32. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 34. MLflow microservice lifecycle Deploy Run on any container orchestration, Load model from MLflow Develop Extend and customize our mlflow serving code & server Optimize Scale, change Instance types, timeouts, Auto scaling, Restart Policies Monitor Configure logging and metrics, Service Health Package Build docker, install relevant deps
  • 35. ▪ Instance Types ▪ Memory & CPU ▪ Configuring instance types which suits your model best, can be done on any container orchestration ▪ Horizontal Auto Scaling ▪ HPA on K8s ▪ Libra on Nomad ▪ Spot General Optimizations
  • 36. ▪ Sync ▪ The most basic and the default worker type is a synchronous worker class that handles a single request at a time. ▪ Async ▪ based on Greenlets (via Eventlet and Gevent). ▪ Greenlets are an implementation of cooperative multi-threading for Python ▪ The suggested number of workers is (2*CPU)+1. ▪ for a quad-core machine: gunicorn --workers=9 main:app Workers CPU bound applications - increasing the number of parallel requests
  • 37. ▪ Threads ▪ Gunicorn also allows for each of the workers to have multiple threads ▪ Threads spawned by the same worker shares the same memory space ▪ When using multiple threads the worker type changes automatically to gthread ▪ The suggested number of workers mixed with threads is still (2*CPU)+1. ▪ for a quad-core machine: gunicorn --workers=3 --threads=3 main:app ▪ Pseudo-Threads ▪ There are some Python libraries such as gevent and Asyncio that enables concurrency in Python by using “pseudo-threads” implemented with coroutines. ▪ mlflow uses gevent worker type by default (pip install gunicorn[gevent]) ▪ gunicorn --worker-class=gevent --worker-connections=1000 --workers=9 main:app ▪ in this case, the maximum number of concurrent requests is 9000 (9 workers * 1000 connections per worker) *Visibility on the requests that are waiting to be served Threads & Pseudo-Threads I/O bound applications - increasing the number of concurrent operations
  • 38. What are the alternatives?
  • 39. The Serving Space is Crowded! ▪ Databricks released built in Serving module in Databricks ▪ https://databricks.com/blog/2020/06/25/announcing-mlflow-model-serving-on-databricks.html ▪ AWS Sagemaker/Azure ML ▪ cnvrg.io ▪ TF Serving ▪ Seldon It all comes down to what suits you best! There are plenty of options out there
  • 40. Wrapping up! ▪ Key Takeaways ▪ ML In production is hard ▪ Organizational ▪ Technical ▪ mlflow serving is a great generic way to serve any model - and also can be extended easily! ▪ https://github.com/YotpoLtd/scene-detector-demo/tree/master (vgg16) ▪ For Yotpo, this was a game-changer, decreasing the barrier of entry of AI applications. ▪ Utilize the centralised production infrastructure that is already in place ▪ Where to go from here ▪ What about AB Testing? ▪ Base dockers to encapsulate mutual and shared code (entrypoint, Dockerfile, Dependencies) ▪ Dynamic MIddleware registration ▪ CD4ML - When a training pipelines finishes successfully, trigger deployment with new model version
  • 41. Feedback Your feedback is important to us. Don’t forget to rate and review the sessions.