Azure Machine Learning Services is a Python-based service in Azure that provides a framework for developing and productionalizing data science. Note that this service is different than other similar services such as “Machine Learning Server”, “Machine Learning Service in Azure SQL”, and “Machine Learning Studio Service”.
The main process involves preparing your data, building your model in your favorite IDE, such as Azure Notebooks (jupyter notebooks) and Azure VSCode, training and testing your model, and registering and managing your model within the service. The service then makes it easy to deploy by building an image with the model and dependencies. The image is deployed as a web service and the service provides automated model monitoring.
Image Source: https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml
In depth, this process also involves selecting a compute resource for both training (and later, deployment). Supported training compute resources include your local machine, a data science virtual machine, Azure Machine Learning Compute, Azure Data Lake Analytics, Azure HDInsight Cluster, Azure Kubernetes Service Cluster, Azure Container Instance, or Azure Databricks.
In Datalere’s perspective, the main benefits of Azure Machine Learning Services are the following:
- The model registry (discussed above) provides a single repository for all models that are currently in production. The repository automatically versions your models, assuming that a new model checked into the registry with the same name as an existing model is simply a new version. The model registry is searchable, so you can search through all of the models created in your department or organization before creating a new model.
- The service allows you to build and maintain data science pipelines, depicted below. Pipelines allow data scientists, data engineers, and IT professionals to collaborate on steps involved in data preparation, such as normalization and transformations, model training, model evaluation, and deployment. Using distinct steps makes it possible to rerun only the steps you need, as you tweak and test your workflow. A step is a computational unit in the pipeline.
- Azure Machine Learning Services facilitates semi-automated model monitoring. An SDK for model logging and data capture is available so you can monitor input, output, and other relevant data from your model. The data is stored as a blob in the Azure Storage account for your workspace.
- Web services deployments are designed to be easier to interact with than APIs. The idea is that someone who doesn’t have much experience with the model could interact with the web service to more easily access the output of the machine learning model/algorithm.
- Azure Machine Learning Service offers batch scoring, which is designed to quickly generate predictions for large amounts of data in a single call of the web service.
- Azure Machine Learning Services is designed to integrate all of Azure’s machine learning offerings into one comprehensive tool.
Image Source: https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines
There are a couple of things that you should be aware of when determining if Azure Machine Learning Services is right for you:
- The service is currently designed for data scientists and engineers who code in Python. Much of the way you interact with the service is designed around writing Python scripts. Unlike other Microsoft offerings, this service is code-based and not interface-based.
- The service doesn’t currently support R. Only Python is currently supported in Azure Machine Learning Services.
- The service doesn’t help facilitate a data warehouse-focused deployment methodology where organizations build the results of the machine learning model into the data lake or data warehouse and then connect a BI tool directly to the data lake/warehouse. The service doesn’t prohibit this method of working, it simply doesn’t help facilitate it. The idea behind this service is to provide a very streamlined framework for developing and deploying data science. The process is up to the developer after accessing the model via the web service. To continue working under this deployment methodology, you would simply need to write a script or a job that calls the web service, provides the appropriate input data as parameters and then saves the returned result (predictions) as data in the data warehouse.
Feel free to reach out to Datalere for a free consultation regarding Azure Machine Learning Services. We’re here to help!