Since last month’s Ignite announcements – consolidated in Book of News very nicely, I have been thinking of writing this post due to couple of key reasons, despite plethora of other really exciting and great announcements:
a) I have been part of AML Service Private Preview exercise, so have seen it develop very closely and can provide personal POV
b) I do appreciate that it’s version 2 of the AML Service in a short span of time
The entire focus of the IT industry is at the moment on the Machine Learning discipline. Hence, it could easily raise a few questions in everyone’s mind (e.g. What’s happening with Azure Workbench? – Please click here for details), regarding the maturity, real effectiveness of the service to simplify the entire Data Science life-cycle and moreover confidence in it’s future roadmap.
This post aims to provide some clarity around the 2 fundamental aspects:
- Types of Azure Machine Learning Services & Differences between them
- Demystifying New Azure Machine Learning Service (Pubic Preview)
Through this exercise, I will try to promote a better understanding of the different Azure Machine Learning offerings available today.
Most importantly, I hope this will assist in deciding whether it’s got the right balance between challenges of AI & Machine Learning-based solutions faced by different organisations nowadays in form of DS/ML Skills disparity.
Additionally, I try to focus on the Enterprise readiness currently required for End-to-End Data Science Life cycle, delivering key actionable insights in a repeatable and quicker time to market fashion.
Types of Azure Machine Learning Services
At present the two following services are available in the Azure Machine Learning space, and both are strategic offerings:
Azure Machine Learning Studio
Azure Machine Learning Studio is a collaborative, drag-and-drop visual workspace where you can build, test, and deploy machine learning solutions without needing to write code. It uses pre-built and pre-configured machine learning algorithms and data-handling modules.
You should use Machine Learning Studio when you want to experiment with machine learning models quickly and easily, and the built-in machine learning algorithms are sufficient for your solutions.
It’s also aimed more towards Citizen Data Scientists, Business Analysts, Data Analyst where the deep understating of Data Science/Machine Learning concepts aren’t necessary.
Models created in Azure Machine Learning Studio cannot be deployed or managed by Azure Machine Learning service, which is an independent service.
Azure Machine Learning Service (Public Preview)
Azure Machine Learning service (Preview) is a cloud service that you can use to develop and deploy machine learning models. Using Azure Machine Learning service, you can track your models as you build, train, deploy, and manage them, all at the broad scale that the cloud provides.
Use Machine Learning service if you work in a Python environment, you want more control over your machine learning algorithms, or you want to use open-source machine learning libraries.
Most of the recent machine learning innovations are happening in the Python language space, which is why all the core features of the service are exposed through a Python SDK.
Azure Machine Learning service fully supports open-source technologies, so you can use hundreds of open-source Python packages with machine learning components such as TensorFlow, Keras, PyTorch, Onnx, scikit-learn, CNTK, etc. Rich tools, such as Jupyter notebooks or the Visual Studio Code Tools for AI, make it easy to interactively explore data, transform it, and then develop and test models. Azure Machine Learning service also includes features that automate model generation and tuning to help you create models with ease, efficiency, and accuracy.
Azure Machine Learning service lets you start training on your local machine, and then scale out to the cloud. With native support for Azure Batch AI and with advanced hyperparameter tuning services, you can build better models faster, using the power and scale of the cloud.
When you have the right model, you can easily deploy it in a container such as Docker. This means that it’s simple to deploy to Azure Container Instances or Azure Kubernetes Service, or you can use the container in your own deployments, either on-premises or in the cloud. You can manage the deployed models, and track multiple runs as you experiment to find the best solution.
Mainly, targeted at skilled Data Scientists where they don’t have to worry too much about the infrastructure / engineering aspects of Models training, Management, Operationalisation & Monitoring.
Having said that, I strongly believe based on closer interactions with quite advance customers in the DS space, a siloed / disconnected team approach can’t deliver on the entire end-to-end data science life-cycle and that’s where a change in organisational culture is required to embrace DevOps for Data Science approach / methodology, to make the best use of available tooling & services for increased productivity and value add for businesses.
Interestingly, one of my colleagues also wrote an excellent blogpost recently around Collaborative Approach & Blockers in Data Science, so may be worth a read.
The Team Data Science Process (TDSP) provides a recommended lifecycle that you can use to structure your data-science projects. The lifecycle outlines the steps, from start to finish, that projects usually follow when they are executed.
The AML Service is very much geared towards this methodology, and we will now dive the main aspects that we clearly need to understand to appreciate the value offer.
To create the new Machine Learning Service, go to the Azure Portal and click on ‘+’ sign on the top left and type “Machine Learning service workspace”
The workspace is the top-level resource for the Azure Machine Learning service. It provides a centralized place to work with all the artifacts you create when using Azure Machine Learning Service.
A compute target is the compute resource used to run your training script or host your web service deployment running your model. The supported compute targets are:
- Your local computer
- A Linux VM in Azure (such as the Data Science Virtual Machine)
- Azure Batch AI Cluster
- Apache Spark for HDInsight
- Azure Container Instance
- Azure Kubernetes Service
Compute targets are attached to a workspace. Compute targets other than the local machine are shared by users of the workspace.
An experiment is a grouping of many runs of a given script, and it always belongs to a workspace. When you submit a run, you provide an experiment name. Information for the run is stored under that experiment. If you submit a run and specify an experiment name that doesn’t exist, a new experiment with that name is automatically created.
A datastore is a storage abstraction over an Azure Storage Account. The datastore can use either an Azure blob container or an Azure file share as the backend storage. Each workspace has a default datastore, and you may register additional datastores.
Use the Python SDK API or Azure Machine Learning CLI to store and retrieve files from the datastore.
At its simplest, a model is a piece of code that takes an input and produces output. Creating a machine learning model involves selecting an algorithm, providing it with data, and tuning hyperparameters. Training is an iterative process that produces a trained model, which encapsulates what the model learned during the training process.
Images provide a way to reliably deploy a model, along with all components needed to use the model. An image contains the following items:
- A model.
- A scoring script or application. This script is used to pass input to the model and return the output of the model.
- Dependencies needed by the model or scoring script/application. For example, you might include a Conda environment file that lists Python package dependencies.
A deployment is an instantiation of your image into either a Web Service that may be hosted in the cloud or an IoT Module for integrated edge device deployments.
Portal View for the logical artifacts looks like below
Once you create a Workspace, all the above artifacts get automatically created, which makes this process very neat and with less overhead in terms of worrying or figuring out additional aspects.
Azure Machine Learning Service Workflow
The workflow generally follows these steps:
- Develop machine learning training scripts in Python.
- Create and configure a compute target.
- Submit the scripts to the configured compute target to run in that environment. During training, the compute target stores run records to a datastore. There the records are saved to an experiment.
- Query the experiment for logged metrics from the current and past runs. If the metrics do not indicate a desired outcome, loop back to step 1 and iterate on your scripts.
- Once a satisfactory run is found, register the persisted model in the model registry.
- Develop a scoring script.
- Create an Image and register it in the image registry.
- Deploy the image as a web service in Azure.
For more details on architecture and concepts, please click here.
In the end, I believe the latest AML Service (currently in Public Preview) has been developed with engineering first in mind, to reflect various aspects that need to be addressed from data collection to metrics for a successful AI model to be used in a production environment within an organisation.
This will certainly boost productivity for data scientists and machine learning practitioners in building and deploying machine learning solutions at cloud scale.
The service is all set to go GA / Live very soon with great set of new features, so I would say that it definitely looks very promising and encourage you to watch this space.