What is Azure Machine Learning?
And how it’s going to help you solve your data science workflow problems.
If you have worked with machine learning before, you have probably noticed it can be quite tricky to make the whole process easy to understand, deploy and manage. Often, during experiments, all code lives in a python notebook and doesn’t follow a clear structure. How do we take it from there to a production-worthy machine learning pipeline? That’s where Azure Machine Learning comes in.
Azure Machine Learning (AML) can be best described as a machine learning pipeline ‘orchestrator’. It doesn’t do much by itself (instead, it leans heavily on other components), but it allows you to bring structure to your machine learning pipeline, split it up in individual steps and then glue it all together in a maintainable way. The aim of this is bring MLOps into your workflow (see our recent post about MLOps: Why 88% of Machine Learning Models Are Never Taken into Production).
What does it do?
Within an Azure Machine Learning workspace, there are several components that you can use to set up your machine learning pipeline.
To start with, Azure Machine Learning offers online notebooks that make it easy to write your code online and have it all stored in the cloud. This makes collaboration with other data scientists and machine learning engineers a lot easier.
Before you can start doing any experiments, you need to load data into a dataset. Azure Machine Learning offers integrations with various Azure service that can be used as data sources. In addition, you can manually create datasets from your data, or you can load public datasets that are available online. When the data has been loaded into a dataset, either as a tabular dataset or a file dataset, it can be used in your project. The Azure Machine Learning user interface offers a nice way to explore the data that is in the dataset, generate profiling data as well as keep track of the versioning of the data. This way, you can link your models to a specific version of the data so that you can always look up what data led to the model that was trained.
When your have loaded your dataset, you can start training models. To do this, Azure Machine Learning can use all sorts of compute options. You can run the training on your own machine, or you can use a variety of other compute targets, such as a remote VM, Azure Databricks, or an Azure Machine Learning compute cluster. It is very easy and convenient to spin up a cluster of machines of your choosing (for example a GPU cluster) and have it automatically be scaled up/down or have it turned off when you are done with training. You can register all your training runs as an experiment in Azure Machine Learning so that you can keep track of what’s going on. Through the user interface, you can view logs, metrics and other usual information about your training runs.
When you have trained a model that meets your goals, you can register it in the Azure Machine Learning workspace. This allows it to be consumed from your inferencing (scoring) endpoints. It also allows you to version your models so you can keep track of their performance, how they were trained and how they are being used. This is very important information that gives you control of what is going on with your predictions.
After training a good model and registering it in the workspace, it is time to deploy the model to an inferencing, or scoring endpoint. Simply put, this creates a simple web service in front of your model, so that external systems can make a simple HTTP request to get a prediction. This allows for real-time inferencing. Alternatively, you can use batch inferencing that enables you to run, for example, a nightly process to make predictions for your data. The inferencing code can be deployed to a variety of compute targets, the most popular one being Azure Kubernetes Service (AKS), Azure Container Instances (ACI) and Azure IoT Edge.
One important aspect of managing your machine learning pipeline is monitoring the performance of your models. To do this, you can log any metrics you like in your experiments. You can then monitor these metrics (for example, the model’s accuracy) in the Azure Machine Learning workspace user interface.
In addition to that, Azure Machine Learning offers several frameworks that make your data science work easier. For example, it offers AutoML which is an automated machine learning framework that tests many different models, combinations of models and hyperparameters to find the optimal (combination of) models for your goal. Similarly, it offers Hyperdrive which is a convenient library for iterating over permutations of different hyperparameters to find their optimal settings. Furthermore, Azure Machine Learning comes with tools for model explainability.
Who is it for?
Azure Machine Learning offers two ways of using it: a mode where you have to write the code yourself, or a version where can use the easy to use drag and drop ML designer. This designer can easily be used by people who don’t have much coding experience but who would like to try and train their own models. When the visual designer doesn’t offer enough flexibility to fit your use case, it can easily be extended with custom python scripts that can be called from the visual workflow. These two modes used to be split up into separate Basic and Enterprise tiers, but as of January 1st 2021, they are combined into one product that is free to use.
How does Antheon use it?
At Antheon, we use Azure Machine Learning to help customers standardize their development process according to MLOps standards. This helps them get an overview of how their system works, allows them to make collaboration easier and make their productionization cycle easier and more predictable.
Are you ready to work more easily and cost effective? Please contact us for more information or a no-obligation consultation. We will get back to you as soon as possible!