Giter VIP home page Giter VIP logo

mlopsdatabricks's Introduction

MLOps with Azure DevOps

Build Status

This sample shows you how to operationalize your Machine Learning development cycle with Azure Machine Learning Service and Azure Databricks - as a compute target - by leveraging Azure DevOps Pipelines as the orchestrator for the whole flow.

By running this project, you will have the opportunity to work with Azure workloads, such as:

Technology Objective/Reason
Azure DevOps The platform to help you implement DevOps practices on your scenario
Azure Machine Learning Service Manage Machine Learning models with the power of Azure
Azure Databricks Use its compute power as a Remote Compute for training models
Azure Container Instance Deploy Machine Learning models as Docker containers

Preparing the environment

Infrastructure/Cloud Infrastructure

This repository contains the base structure for you to start developing your Machine Learning project using:

  • Azure Machine Learning Service
  • Azure Databricks
  • Azure Container Instance

To have all the resources set, leverage the following resource to get your infrastructure ready:

Azure DevOps

After you have your infrastructure set, it's time to have your Azure DevOps connected to it to start orchestrating your Machine Learning pipeline.

If you don't have an Azure DevOps account, please refer to this doc to have it set up.

You will find resources and docs to have Azure DevOps orchestrating your pipeline by following this guidance:

Sample project

This code sample reproduces the Image Classification, a convolutional neural network image classification. For more details of the project structure, check the project structure page.

This project structure was also based on the cookiecutter data science project template.

Running this project on your local development environment

This sample provides you two options to have your environment set up for developing and debugging locally. The focus of these docs is on how to have all the required environment variables set so you can invoke and debug this code on your machine.

  • See this page for details on how to debug using Visual Studio Code
  • See this page for looking into details on how to have the enrironment variables set using Bash

Project flow

Starting point/Current state

A Machine Learning project being developed by a team of Data Engineers/Data Analysts, using Python.

The team develops the code to train the Machine Learning model and they need to orchestrate the way this code gets tested, trained, packaged and deployed.

Testing

Testing the code that generages a model is crucial to the success and accuracy of the model being developed.

The code being developed will produce a Machine Learning model that will help people to take decisions, when not being the main responsible for the decisions itself.

That's why testing the units of the code to make sure it meets the requirements is a fundamental piece of the development cycle.

You will achieve it using the following capabilities:

  • Python Unit Testing frameworks
  • Azure DevOps

Training

This project is all about generating a Machine Learning model, which needs to be trained. Training a model requires compute power and orchestration.

Compute power is commonly an expensive asset and that's why this project leverages cloud workloads to optimize resource consumption and avoiding upfront costs.

To enable this, the following capabilities will be used:

  • Machine Learning Python SDKs
  • Azure Databricks
  • Azure DevOps

Deploying

The resulting model from the training step needs to be deployed somewhere so the edge can consume it. There are a few ways to achieve it and, for this scenario, you will deploy this model as part of a Docker Container.

A container has the power of having all the dependencies the application needs to run encapsulated within it. It is also easily portable to multiple different platforms.

To take advantage of deploying the model to a container, you will use:

  • Azure DevOps
  • Azure Container Instances
  • Azure Machine Learning Service

See this page for details on setting release pipeline to deploy model

mlopsdatabricks's People

Contributors

microsoftopensource avatar riserrad avatar dtzar avatar sudivate avatar msftgits avatar odaibert avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.