Specialized tools for machine learning development and model governance are becoming essential. MlFlow is an open source platform for managing the machine learning lifecycle. Just by adding a few lines of code in the function or script that trains their model, data scientists can log parameters, metrics, artifacts (plots, miscellaneous files, etc.) and a deployable packaging of the ML model. Every time that function or script is run, the results will be logged automatically as a byproduct of those lines of code being added, even if the party doing the training run makes no special effort to record the results. MLflow application programming interfaces (APIs) are available for the Python, R and Java programming languages, and MLflow sports a language-agnostic REST API as well. Over a relatively short time period, MLflow has garnered more than 3,300 stars on GitHub , almost 500,000 monthly downloads and 80 contributors from more than 40 companies. Most significantly, more than 200 companies are now using MLflow. We will demo MlFlow Tracking , Project and Model components with Azure Machine Learning (AML) Services and show you how easy it is to get started with MlFlow on-prem or in the cloud.
Introducing MlFlow: An Open Source Platform for the Machine Learning Lifecycle for On-Prem or in the Cloud
1. Alex Zeltov
An Open Source Platform for the Machine
Learning Lifecycle for On-Prem or in the
Cloud
Introductionto Ml
2. Alex Zeltov
Big Data Solutions Architect / AI Engineer
Background:
• Sr. Solutions Architect - part of a Global Black Belt Team Big
Data & AI in Microsoft
• Sr. Solutions Engineer at Hortonworks specializing in HDP and
HDF
• Research Scientist at Independent Blue Cross – BigData and
ML
• Sr. Software Engineer at Oracle
3. Machine Learning E2E Development is Complex!!!
Typical E2E Process
…
Prepare Experiment Deploy
Orchestrate
Result: It is difficult to productionize and share.
5. ML Development Challenges
• 100s of software tools to leverage
• Hard to track & reproduce results: code, data, params, etc
• Hard to productionize models
• Needs large scale for best results
6. Custom MLPlatforms
Facebook FBLearner,Uber Michelangelo, Google TFX
+Standardize the data prep /training / deployloop:
if you work with theplatform,you get these!
–Limited to a few algorithms orframeworks
–Tied to one company’sinfrastructure
–Out of luck if you left the company….
Can we provide similar benefits in an open manner?
7. • Open source platform for the machine learning lifecycle.
• API First:
Allow submitting runs, models, works with any ML
library & language
MlFlow APIs are available for the Python, R and Java
REST API
• Runs the same way anywhere: on-prem or any cloud
• > 3,700 stars on GitHub , 92 contributors from > 40
companies. > 200 companies are now using MlFlow*
Introductionto Ml
* https://www.oreilly.com/ideas/specialized-tools-for-machine-learning-development-and-model-governance-are-becoming-essential
8. MlFlowComponents
Tracking
Record and query
experiments: code,
data, config, results
Projects
Packaging format
for reproducibleruns
onany platform
Models
General modelformat
that supports diverse
deploymenttools
distinct components: use different components individually based on your needs
9. Tracking Experiments with MlFlowTracking Server
MLflow Tracking is…
• a logging API specific for machine learning
• agnostic to libraries and environments that do the training
• organized around the concept of runs, which are executions of data
science code
• runs are aggregated into experiments where many runs can be a part
of a given experiment
• An MLflow server can host many experiments
11. Experiments inTracking Server
Parameters: key-value inputs to your code
Metrics: numeric values (can update over time)
Artifacts: arbitrary files, including models
Tags/Notes: info about a run
Source: what code ran
Version: git version
import mlflow
# log model’s tuning parameters
with mlflow.start_run():
mlflow.log_param("layers", layers)
mlflow.log_param("alpha", alpha)
# log model’s metrics
mlflow.log_metric("mse", model.mse())
mlflow.log_artifact("plot", model.plot(test_df))
mlflow.tensorflow.log_model(model)
14. MlFlow Projects
There are a number of different reasons why teams need to package their
machine learning projects:
• Projects have various library dependencies
• shipping a machine learning solution involves the environment in which it was built
• MLflow allows for this environment to be a conda environment or docker container
• This means that teams can easily share and publish their code for others to use
• Machine learning projects become increasingly complex as time goes on
• This includes ETL and featurization steps, machine learning models used for pre-
processing, and finally the model training itself
• Each component of a machine learning pipeline needs to allow for tracing
its lineage
• If there's a failure at some point, tracing the full end-to-end lineage of a model
allows for easier debugging.
18. MlFlow Models
• Once a model has been trained and bundled with the environment it
was trained in. The next step is to package the model so that it can be
used by a variety of serving tools
• Current deployment options include:
• Container-based REST servers
• Continuous deployment using Spark streaming
• Batch
• Managed cloud platforms such as Azure ML and AWS SageMaker
• Packaging the final model in a platform-agnostic way offers the most
flexibility in deployment options and allows for model reuse across a
number of platforms.
23. What is Azure Machine Learning service?
Set of Azure
Cloud Services
Python
SDK
Prepare Data
Build Models
Train Models
Manage Models
Track Experiments
Deploy Models
That enables
you to:
24. Machine Learning on Azure
Domain specific pretrained models
To reduce time to market
Azure
Databricks
Machine
Learning VMs
Popular frameworks
To build advanced deep learning solutions
TensorFlowPytorch Onnx
Azure Machine
Learning
LanguageSpeech
…
SearchVision
Productive services
To empower data science and development teams
Powerful infrastructure
To accelerate deep learning
Scikit-Learn
PyCharm Jupyter
Familiar Data Science tools
To simplify model development
Visual Studio Code Command line
CPU GPU FPGA
From the Intelligent Cloud to the Intelligent Edge
27. Demo MlFlow + AML +
Azure Databricks
https://eastus2.azuredatabricks.net/?o=3336252523001260#n
otebook/2623556200920093/command/2623556200920094
28. Conclusion + Q & A
• MlFlow can greatly simplify the ML lifecycle
• Simplify lifecycle development
• Lightweight, open platform that integrates easily
• Available APIs: Python, Java &R
• Easy to install and use
• Develop locally and track locally or remotely
• Deploy locally, cloud, on premise…
• Visualize experiments
29. Learning More AboutMlFlow
• pip install mlflow to get started
• Find docs &examples atmlflow.org
• https://github.com/mlflow/mlflow
• tinyurl.com/mlflow-slack
• https://docs.azuredatabricks.net/applications/mlflow/quick-
start.html
Notas del editor
The Machine Learning
Lifecycle Challenges
Building and deploying a machine-learning modelcan be difficult to accomplish. Enabling other data scientists – or even yourself – to reproduce your pipeline is equally challenging. Moreover, doing so can impact your data science team’s productivity, leading to a significant waste of time and resources. How many times have you or your peers had to discard previous work because it was either not documented properly or, perhaps, too difficult to replicate?
Getting models up to speed in the first place is significant enough that it can be easy to overlook long-term management. What does this involve in practice? In essence, we have to compare the results of different versions of ML models to track what’s running where, and to redeploy and rollback updated models as needed. Each of these requires its own specific tools, and it’s these changes that make the ML lifecycle so challenging compared to traditional software development lifecycle (SDLC) management.
The Diversity and Number of ML Tools Involved
While the traditional software-development process leads to the rationalization and governance of tools and platforms used for developing and managing applications, the ML lifecycle relies on data scientists’ ability to use multiple tools, whether for preparing data and training models, or deploying them for production use. Data scientists will seek the latest algorithms
from the most up-to-date ML libraries and frameworks available to compare results and improve performance.
This represents a serious shift, and challenges compare to those of a more traditional software-development lifecycle, for the following reasons:
The diversity and number of ML tools involved, coupled with a lack of standardization across ML libraries and frameworks
The continuous nature of ML development, coupled with a lack of tracking and management tools for machine learning models and experiments
The complexity of productionizing ML models, due to the lack of integration between data pipelines, ML environments, and production services
Just by adding a few lines of code in the function or script that trains their model, data scientists can log parameters, metrics, artifacts (plots, miscellaneous files, etc.) and a deployable packaging of the ML model. Every time that function or script is run, the results will be logged automatically as a byproduct of those lines of code being added, even if the party doing the training run makes no special effort to record the results. MLflow application programming interfaces (APIs) are available for the Python, R and Java programming languages, and MLflow sports a language-agnostic REST API as well. Over a relatively short time period, MLflow has garnered more than 3,300 stars on GitHub , almost 500,000 monthly downloads and 80 contributors from more than 40 companies. Most significantly, more than 200 companies are now using MLflow.