With over 13 million monthly downloads, MLflow has become the standard platform for end-to-end MLOps, enabling teams of all sizes to track, share, package and deploy any model for batch or real-time inference. MLflow has recently released its new version, MLflow 2.0, which incorporates a refresh of the core platform APIs based on extensive feedback from MLflow users and customers, which simplifies the platform experience for data science and MLOps workflows.
Being one of the MLflow contributors, Azure Machine Learning made its workspaces MLflow-compatible, which means you can use Azure Machine Learning workspaces in the same way that you use an MLflow tracking server. We don't wrap around it, or host MLflow server under the hood: we just speak the same language. We are happy to announce that such compatibility includes MLflow 2.0 and Azure Machine Learning customers can take advantage of this new MLflow release.
Changes in MLflow 2.0
Building upon MLflow's strong platform foundation, MLflow 2.0 incorporates extensive user feedback to simplify data science workflows and deliver innovative, first-class tools for MLOps, including:
MLflow 2.0 requires Python 3.8. MLflow 1.30 will be the last version available for Python 3.7.
MLflow Runs can now have a unique, memorable name to help you identify the best results; something that Azure Machine Learning customers have been using for a while.
Expanded capability to search experiments by name and tags.
A revamped integration with TensorFlow and Keras, unifying logging and scoring functionalities for both model types behind a common interface. The modernized mlflow.tensorflow module also offers support for TensorFlow Core APIs while maintaining simplicity for data scientists using Keras.
mlflow.evaluate() API for model evaluation is now stable and production-ready.
Dependencies in requirements.txt and conda.yaml files are not allowed to contain "-r" references to other files any longer.
MLflow Recipes and Azure Machine Learning Pipelines
Previously known as MLflow Pipelines,MLflow Recipes (Experimental) was introduced in MLflow 2.0 as a framework that enables data scientists to quickly develop models and deploy them to production. It includes predefined templates for common ML tasks, such as regression modeling, enabling data scientists to get started quickly and to focus on building great models; eliminating the large amount of boilerplate code that is traditionally required.
At Azure Machine Learning, we are thrilled to see this kind production-level ML features making their way into the open-source. While in its experimental phase, Azure Machine Learning is not providing any integration with MLflow Recipes. However, our customers can take advantage of Azure Machine Learning Pipelines, which is our mature solution to create independently executable workflow of a complete machine learning task and they can be used in combination with MLflow artifacts.
The core of a machine learning pipeline is to split a complete machine learning task into a multistep workflow. Each step is modeled as a component that can be developed, optimized, configured, and automated individually and they are connected through well-defined interfaces. The Azure Machine Learning pipeline service automatically orchestrates all the dependencies between pipeline components. This modular approach brings two key benefits:
Training efficiency and cost reduction, since Azure Machine Learning can automatically calculate which steps outputs can be reuse from previous training. Additionally, the machine learning pipeline supports running each step on different computation resources.
Getting started with MLflow 2.0 in Azure Machine Learning
You can get started with MLflow 2.0 in your Azure Machine Learning workspace. All Azure Machine Learning environments have MLflow pre-installed and configured when running in Azure Machine Learning compute. If your code is running outside of Azure Machine Learning, like Azure Databricks, Azure Synapse Analytics, or your local environment, connect MLflow to your Azure Machine Learning workspaces and you should be good to go!