Giter Site home page Giter Site logo

sanjeevphd / demlopment-example Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 2.92 MB

DeMLopment - putting ML in Software Development. Very much a work in progress, so check back often! :)

Dockerfile 0.26% Makefile 17.29% Python 36.17% Batchfile 2.61% Jupyter Notebook 43.67%
machine-learning mlops mlops-project python agile-development project-scaffolding pytorch tdd-python torchserve

demlopment-example's Introduction

An example of a full stack, production grade, machine learning engineering.

Overview

Let me break down the one-liner above.

  • full stack - all the way from problem understanding, data mgmt., model development, to deployment, monitoring and retraining
  • production grade - it has to add value, in a business sense and can grow and scale with the business
  • machine learning engineering - employ best practices rooted in software engineering principles
  • example - demonstrate with a concrete use case, which might be trivial but captures the essence of process

Approach/Methodology

  • start at the end
  • test-driven development
  • agile mindset - small changes, rapid iterations, steady progress
  • cloud-ready local development
  • automate the automatable

Note

  • This is an active project and very much a work in progress, so I expect things to change often.
  • The documents are raw, unedited, and weakly formatted. Please excuse any typos, etc.

Usage

There are several offerings here.

The Docker Way

This is the no hassle offering. The only requirement is Docker.

docker run -it demlopment:latest

Note

Update to the Docker command

The Docker Dashboard should reveal the container orchestration behind the scene that reflects the three major domains that come together to make the magic happen.

  1. An inference endpoint that uses Torchserve for model managment, metrics, deployment, A/B testing, etc.
  2. A development environment for model development. Everything from data loading, splitting, training, validation, hyperparameter tuning, experiment tracking to testing and model selection
  3. A data management environment for ingesting, storing and transforming data

Any or all of the three domains can be cloud-native or local/on-premisis depending on the use case. At reasonable scales, it is "reasonable" to assume that all domains are cloud native. My view is that as a data scientist, ML engineer, DL scientist, most time is spent in the model domain and a local development makes perfect sense, while outsourcing the data management and model deployment to the cloud. This allows for faster iterations and even potentially avoids some yak shaving.

Local Installation

  • Clone the GitHub repo.

    git clone <repo_url>

  • Install the dependencies and the package in a local virtual environment.

    make venv_pip

    Note

    Update requirements to include pytest.

  • Run tests

    python -m pytest tests

Documentation

Build docs locally by running: make html (requires Sphinx. The finished HTML will be located under _build/docs/index.html.

demlopment-example's People

Contributors

probesanjeevmalalur avatar sanjeevphd avatar

Watchers

 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.