The purpose of this project is to demonstrate the capabilities of Azure ML Ops thorugh the following exercises:
- Creating and deploying a model utilzing AutoML
- Consuming REST API endpoints
- Pipeline automation for re/training the bank marketing model
Through these capabilities we learn how to apply DevOps principles to Machine Learning projects. Many of the same principles including automation, troubleshooting, and code management are similar in MLOps as traditional DevOps.
This project specifically works with the Bank Marketing dataset for purposes of training a model, selecting the best one, deploying it as a REST API endpoint, consuming the API, and automating the flow through pipeline automation.
The following diagram is adapted from the Azure Reference Architecture, ML Ops for Python. It has been simplified for purposes of illustrating the following key points (labeled on the diagram):
- MLOps Engineer creating the pipeline build
- REST Endpoint consumer
- MLOps Pipeline trigger for retraining
Areas to investigate / improve upon in future work:
- Model performance
- Apply data science techniques to the data set for additional feature engineering
- Investigate whether there are additional datasets which could be combined with this marketing data to provide additional parameters to the models
- Try utilizing different metric scores for model performance
- Pipeline capabilities
- Automate more of the process including the create of the dataset, monitoring of any data drift, health checks on the endpoint and other monitoring abilities
- Assuming this endpoing is part of a larger project/platform, integrate the MLOps steps into the build pipeline for the encompassing project (integrate the DevOps and MLOps)
The following sections contain the required screenshots as requested by the project syllabus.
az extension add -n azure-cli-ml
az ad sp create-for-rbac --sdk-auth --name ml-auth
Since I am using an Azure subscription that my company manages, so I am also not allowed to create a service principal. See following screenshot.
Bank Marketing dataset available in Azure ML Studio.
Initial AutoML experiment completed with trained models.
Model rank among the others tried.
Model specific metrics.
Application insights has been enabled for the model REST API endpoint.
Logs are available for the endpoint.
Swagger documentation for the endpoint.
Results from consuming the endpoint. Additional example available in screencast video.
Link to YouTube video demonstraing Udacity Project 2: https://youtu.be/GDLY68I2F-g