This blog post was authored by Jordan Edwards, Senior Program Manager, Microsoft Azure.
At Microsoft Build 2019 we announced MLOps capabilities in Azure Machine Learning service. MLOps, also known as DevOps for machine learning, is the practice of collaboration and communication between data scientists and DevOps professionals to help manage the production of the machine learning (ML) lifecycle.
Azure Machine Learning service’s MLOps capabilities provide customers with asset management and orchestration services, enabling effective ML lifecycle management. With this announcement, Azure is reaffirming its commitment to help customers safely bring their machine learning models to production and solve their business’s key problems faster and more accurately than ever before.
Here is a quick look at some of the new features:
Azure Machine Learning Command Line Interface (CLI)
Azure Machine Learning’s management plane has historically been via the Python SDK. With the new Azure Machine Learning CLI, you can easily perform a variety of automated tasks against the ML workspace including:
Compute target management Experiment submission Model registration and deployment Management capabilities
Azure Machine Learning service introduced new capabilities to help manage the code, data, and environments used in your ML lifecycle.
Recommendation systems are used in a variety of industries, from retail to news and media. If you’ve ever used a streaming service or ecommerce site that has surfaced recommendations for you based on what you’ve previously watched or purchased, you’ve interacted with a recommendation system. With the availability of large amounts of data, many businesses are turning to recommendation systems as a critical revenue driver. However, finding the right recommender algorithms can be very time consuming for data scientists. This is why Microsoft has provided a GitHub repository with Python best practice examples to facilitate the building and evaluation of recommendation systems using Azure Machine Learning services.
What is a recommendation system?
There are two main types of recommendation systems: collaborative filtering and content-based filtering. Collaborative filtering (commonly used in e-commerce scenarios), identifies interactions between users and the items they rate in order to recommend new items they have not seen before. Content-based filtering (commonly used by streaming services) identifies features about users’ profiles or item descriptions to make recommendations for new content. These approaches can also be combined for a hybrid approach.
Recommender systems keep customers on a businesses’ site longer, they interact with more products/content, and it
DevOps is the union of people, processes, and products to enable the continuous delivery of value to end users. DevOps for machine learning is about bringing the lifecycle management of DevOps to Machine Learning. Utilizing Machine Learning, DevOps can easily manage, monitor, and version models while simplifying workflows and the collaboration process.
Effectively managing the Machine Learning lifecycle is critical for DevOps’ success. And the first piece to machine learning lifecycle management is building your machine learning pipeline(s).
What is a Machine Learning Pipeline?
DevOps for Machine Learning includes data preparation, experimentation, model training, model management, deployment, and monitoring while also enhancing governance, repeatability, and collaboration throughout the model development process. Pipelines allow for the modularization of phases into discrete steps and provide a mechanism for automating, sharing, and reproducing models and ML assets. They create and manage workflows that stitch together machine learning phases. Essentially, pipelines allow you to optimize your workflow with simplicity, speed, portability, and reusability.
There are four steps involved in deploying machine learning that data scientists, engineers and IT experts collaborate on:
Data Ingestion and Preparation Model Training and Retraining Model Evaluation Deployment
Together, these steps make up the Machine Learning pipeline. Below is
Everyone’s talking about machine learning (ML). Business decision makers are finding ways to deploy machine learning in their organizations. Data scientists are keeping up with all the advancements, tools, and frameworks available. Media outlets are reporting on awe-inspiring breakthroughs in the artificial intelligence revolution.
We believe the way forward lies in democratizing artificial intelligence and machine learning by proxy. This means making machine learning services available to singular data scientists and developers, small to medium sized businesses, and global organizations–all with the ability to scale their models up and out.
This means offering automated and prebuilt algorithms, as well as the ability to create highly customized models. It also means ensuring they are compatible with open source frameworks.
The challenges of machine learning
As you likely already know, machine learning is a data science technique that allows computers to use existing data to forecast future behaviors, outcomes, and trends. But the promises of machine learning come with challenges. Here are just a few:
There is a lot of manual math, data analysis, programming, training, and experimentation. There are multiple ways to solve every problem. Challenges arise in monitoring and evaluating the precision, accuracy, and efficacy of a given model.
With ever-increasing data volume and latency requirements, GPUs have become an indispensable tool for doing machine learning (ML) at scale. This week, we are excited to announce two integrations that Microsoft and NVIDIA have built together to unlock industry-leading GPU acceleration for more developers and data scientists.
Azure Machine Learning service is the first major cloud ML service to integrate RAPIDS, an open source software library from NVIDIA that allows traditional machine learning practitioners to easily accelerate their pipelines with NVIDIA GPUs ONNX Runtime has integrated the NVIDIA TensorRT acceleration library, enabling deep learning practitioners to achieve lightning-fast inferencing regardless of their choice of framework.
These integrations build on an already-rich infusion of NVIDIA GPU technology on Azure to speed up the entire ML pipeline.
“NVIDIA and Microsoft are committed to accelerating the end-to-end data science pipeline for developers and data scientists regardless of their choice of framework,” says Kari Briski, Senior Director of Product Management for Accelerated Computing Software at NVIDIA. “By integrating NVIDIA TensorRT with ONNX Runtime and RAPIDS with Azure Machine Learning service, we’ve made it easier for machine learning practitioners to leverage NVIDIA GPUs across their data science workflows.”
Azure Machine Learning service integration with NVIDIA
Azure Machine Learning service is the first major cloud ML service to support NVIDIA’s RAPIDS, a suite of software libraries for accelerating traditional machine learning pipelines with NVIDIA GPUs.
Just as GPUs revolutionized deep learning through unprecedented training and inferencing performance, RAPIDS enables traditional machine learning practitioners to unlock game-changing performance with GPUs. With RAPIDS on Azure Machine Learning service, users can accelerate the entire machine learning pipeline, including data processing, training and inferencing, with GPUs from the NC_v3, NC_v2, ND or ND_v2 families. Users can unlock performance gains of more than 20X (with 4 GPUs), slashing training times from hours to minutes and dramatically reducing time-to-insight.
The following figure compares training times on CPU and GPUs (Azure NC24s_v3) for a gradient boosted decision tree model using XGBoost. As shown below, performance gains increase with the number of GPUs. In the Jupyter notebook linked below, we’ll walk through how to reproduce these results step by step using RAPIDS on Azure Machine Learning service.
How to use RAPIDS on Azure Machine Learning service
Everything you need to use RAPIDS on Azure Machine Learning service can be found on GitHub.
The above repository consists of a master Jupyter Notebook that uses