What is Azure Machine Learning (Azure ML)?
Azure ML is Microsoft‘s machine learning operations solution. It lets you build machine learning models, train them at scale, and deploy them to the cloud for production use.
The solution supports many types of machine learning projects, including classic ML, unsupervised algorithms, and deep learning. It provides several options for creating models:
- Writing Python or R code via the SDKs
- Drag-and-drop creation of models via the Azure Machine Learning Studio
Azure ML provides the following tools to support machine learning projects from development to production deployment:
- ML designer ”create experiments and deploy pipelines using drag-and-drop modules
- Jupyter notebooks ”create notebooks and run machine learning algorithms using the Python SDK
- Visual Studio ”lets users of Visual Studio Code develop models for Azure ML directly in their IDE environment
- CLI ”easy command line interface for manipulating, managing and deploying ML models
- Many Models Solution ”enables managing and operating up to hundreds or thousands of models in an efficient manner.
- ML frameworks ”Azure ML directly integrates with common frameworks like scikit-learn, TensorFlow, PyTorch, and Ray RLlib for reinforced learning.
What Can You Do with Azure Machine Learning?
Here are four cool things you can achieve with Azure ML.
1. Build ML Models in Python or R and Scale to the Cloud
You can write code in Python or R, test a machine learning model locally, and then easily run it in the Azure cloud. Azure provides direct access from a local development environment to services like Azure Machine Learning Compute and Databricks. You can use the SDK to automate training and tuning, including hyperparameter tuning at scale by running models in parallel on Azure compute resources.
2. Build ML Models with No Code
Azure ML offers the Machine Learning Studio, fully integrated with the Azure ML SDK. It has both no-code and low-code options for creating machine learning models. Beyond creating new models, Studio lets users train them, deploy them to production, and manage assets like datasets and training results.
Depending on the type of project and level of user experience, Studio can provide several ways to author and manage ML models:
- Azure ML Designer ”no-code option that lets users drag and drop data sets and modules to create an entire ML pipeline.
- Automated machine learning ”an easy interface that lets users create an automated machine learning process.
- Data labeling ”provides an interface for users to review and manually label data for use in training and model evaluation.
3. MLOps: Deploy & Lifecycle Management
Often, creating the machine learning model is the easy part. The complex part is machine learning operations ”deploying and managing the model at scale. Azure ML lets you easily offer a model as a web service, enable it to run on IoT or mobile devices, or integrate it with BI tools.
Azure ML provides pipelines, which are automated machine learning processes that can:
- Define a series of actions to run in various stages of a model lifecycle
- Reuse code and components to avoid rerunning steps unnecessarily
- Attach different Azure compute resources in every step
- Perform model scoring in batches
4. Integrate ML Pipelines with Other Cloud Services
One of the best things about Azure ML is its close integration with other parts of the Azure cloud, as well as many open source services.
Here are Azure services your ML model can integrate with, and what they can be used for:
- Services that provide compute capacity to run model training and inference ”Azure Kubernetes Service (AKS), Azure Container Instances (ACI), Databricks, HPC on Azure, Azure HDInsight.
- Services that provide monitoring and automating ML workflows ”Azure Event Grid and Azure Monitor.
- Services for storing and managing datasets and machine learning model results ”Azure Open Datasets, Azure File Storage, Azure SQL Database, Azure Database for MySQL and PostgreSQL.
- For securing models and related resources using a private network ”use Azure Virtual Networks.
Azure Machine Learning: Core Services
Here are the main services provided as part of Azure ML.
Experimentation
A managed control plane used to train and run machine learning models. It enables you to run models on your local machine, a container, a remote compute instance or container running in the cloud, or a Spark cluster.
The experimentation service provides an environment to run many training sessions of a model, which can use different runtime environments ”configuration, model parameters, and compute options. Experiments can be fully automated using scripts written in Python or PySpark.
Model Management
Records and tracks multiple training runs, and manages results using model versions and derivatives. By combining the model management and experimentation services, Azure ML gives you a complete version history of each model from initial development and training to production deployment.
In addition to versioning, model management services includes monitoring models while they are running in production, deploying models toi containers or virtual machines with Azure Container Service or Kubernetes, automatically running training again when new data sets are available, and recording model results and metrics, with the ability to save them to Azure Application Insights.
Model Portability Using ONNX
It is very difficult to optimize a machine learning model for inference when deployed in production, because of the hardware limitations on the end-user’s device. Developing ML models requires first training the model in a controlled environment, and then preparing a version that can run in the cloud or at the edge.
The Open Neural Network Exchange (ONNX) standard, created by Microsoft and several partners, can be used to describe machine learning models in a standardized way. Models from all popular machine learning frameworks can be converted to this new format, allowing them to run on many devices and platforms.
ONNX provides a fast runtime engine, written in C++, that can perform inference for models in production. It can work both on the edge and in the cloud, and supports C, Python, Java, Node.js, and C#. It can run classical ML algorithms as well as deep neural networks, and can leverage accelerators like NVIDIA GPUs, Intel OpenVINO, and Windows DirectML.
Conclusion
Taking machine learning models all the way from development to production is no easy task, and it can be made easier with ML ops platforms like Azure Machine Learning. Azure ML provides several convenient ways to author models, and lets model developers easily construct pipelines that take their model from vision to reality. Wider use of these types of platforms will make machine learning models more prevalent and reduce the barrier of entry for real life applications of AI/ML technology.