Machine learning is a data science technique that allows computers to use existing data to forecast future behaviors, outcomes, and trends. By using machine learning, computers learn without being explicitly programmed.
Forecasts or predictions from machine learning can make apps and devices smarter. For example, when you shop online, machine learning helps recommend other products you might want based on what you've bought. Or when your credit card is swiped, machine learning compares the transaction to a database of transactions and helps detect fraud. And when your robot vacuum cleaner vacuums a room, machine learning helps it decide whether the job is done.
Azure Machine Learning provides many tools developers and data scientists need for their machine learning workflows, including:
The Azure Machine Learning designer: drag-n-drop modules to build your experiments and then deploy pipelines.
Jupyter notebooks: use Microsoft’s example notebooks or create your own notebooks to leverage our SDK for Python samples for your machine learning.
R scripts or notebooks in which you use the SDK for R to write your own code, or use the R modules in the designer.
The Many Models Solution Accelerator builds on Azure Machine Learning and enables you to train, operate, and manage hundreds or even thousands of machine learning models.
Visual Studio Code extension
Machine learning CLI
Open-source frameworks such as PyTorch, TensorFlow, and scikit-learn and many more
Reinforcement learning with Ray RLlib
You can even use MLflow to track metrics and deploy models or Kubeflow to build end-to-end workflow pipelines.
Azure Machine Learning is a group of cloud services, all dealing with machine learning, packaged in the form of a software development kit (SDK). It is designed for:
Data scientists who build, train and deploy machine learning models at scale
ML engineers who manage, track and automate the machine learning pipelines
Azure Machine Learning comprises of the following components:
- An SDK that plugs into any Python-based IDE, notebook or CLI
- A compute environment that offers both scale up and scale out capabilities with the flexibility of auto-scaling and the agility of CPU or GPU based infrastructure for training
- A centralized model registry to help keep track of models and experiments, irrespective of where and how they are created
- Managed container service integrations with Azure Container Instance, Azure Kubernetes Service and Azure IoT Hub for containerized deployment of models to the cloud and the IoT edge
- Monitoring service that helps tracks metrics from models that are registered and deployed via Machine Learning Azure Machine Learning can handle workloads of any scale and complexity.
A lot of the time spent in machine learning is from data scientists iterating over the machine learning models during the experimentation layer. Testing and trying out different algorithms and parameter combinations can take a lot of time and effort while providing little mental simulation or actual challenge. Automated machine learning can leverage concepts and proposals to implement an automated people that tries intelligently-selected algorithms and parameters based on the make up of the data being massaged. The automated pipeline can reduce workload and time spent immensely.
Azure Automated ML support classification, regression and forecasting and provides features like handling missing values, early termination, blacklisting algorithms and others to reduce time and resources spent. Automated ML has a newly introduced UI mode which improves usability for non-professional data scientists and beginners. The wizard like UI now allows them to be valuable contributors in data science teams. By allowing the team to expand beyond just highly specialized data scientists, companies can increase the scale that machine learning benefits them while still using highly qualified people where needed.
Creating a model is just the beginning of the Machine Learning pipeline. Using the model in production requires the models to be packaged and deployed, tracked and monitored. Metrics must also be collected to allow retraining or gathering of insights. When you have the right model, you can easily use it in a web service, on an IoT device, or from Power BI. Then you can manage your deployed models by using the Azure Machine Learning SDK for Python, Azure Machine Learning studio, or the machine learning CLI.
These models can be consumed and return predictions in real time or asynchronously on large quantities of data.
And with advanced machine learning pipelines, you can collaborate on each step from data preparation, model training and evaluation, through deployment. Pipelines allow you to:
- Automate the end-to-end machine learning process in the cloud
- Reuse components and only rerun steps when needed
- Use different compute resources in each step
- Run batch scoring tasks
If you want you can use scripts to automate your machine learning workflow, the machine learning CLI provides command-line tools that perform common tasks, such as submitting a training run or deploying a model.
Azure Machine Learning provides data scientists an easy way to package their models with simple commands that also keep track of dependencies. Code generated can be versioned controlled using GitHub. The models themselves can be stored in a central model repository that will also hold model metrics, and allow one click deployment.
Once a model has been packaged and registered, testing is needed. Azure Container Instances allow easy containerization and are built into Azure Machine Learning. Once the container is deployed, testing can be performed.
Production environments are synonymous with scale, flexibility and tight monitoring capabilities. This is where Azure Kubernetes Services (AKS) can be very useful for container deployments. It provides scale-out capabilities as it’s a cluster and can be sized to cater to the business’ needs.
Once your model is deployed, you want to be able to collect metrics on the model. You want to ascertain that the model is drifting from its objective and that the inference is useful for the business. This means you capture a lot of metrics and analyze them.
As you collect more metrics and additional data becomes available for training, there may be a need to be able to retrain the model in the hope of improving its accuracy and/or performance.
Also, since this is a continuous process of integrations and deployment (CI/CD), there’s a need for this process to be automated. This process of retraining and effective CI/CD of ML models is the biggest strength of Azure Machine Learning.
Azure Machine Learning is integrated with Azure DevOps for you to be able to create MLOps pipelines inside the DevOps environment.
Follow this guide to get started on the exciting journey of using Azure Machine Learning!