Project Description

MONAI Deploy aims to become the de-facto standard for developing packaging, testing, deploying, and running medical AI applications in clinical production. MONAI Deploy creates a set of intermediate steps where researchers and physicians can build confidence in the techniques and approaches used with AI — allowing for an iterative workflow.

Contributors to MONAI include Nvidia, Mayo Clinic, King's College London, NHS, Standford University, ... and many others.

The core piece of MONAI Deploy is the Monai Application Package (MAP), which contains the ML model in a "runnable state". It is implemented as a container, and built with docker-nvidia. This is relevant because you need a GPU to build the MAP. You'll see later why this is relevant. This container can be later run on a k8s cluster.

Before you create a MAP, you need to train the ML models. They are trained with MONAI Core, another framework which is a piece of the whole MONAI "puzzle". Those models can be published in the MONAI Model Zoo. They are published using a very specific format, which is called "a bundle".

In the monai deploy app sdk project in github, you can see several examples on how to package a "model bundle" into a MAP. Plus in the documentation you can find a step by step guide on how to build them, meaning how to create the MAP (the container). Examples, both code and documentation, use the ML models in the MONAI model Zoo.

MONAI model Zoo is free, you can search for models and use them for your research. However, there is not such a repository for MAPs, even the docs and examples show how to build those models into MAPS.

And this is the motivation of the project, to create this "link", and release into a registry, at least one MAP based on a model in MONAI Model Zoo.

Goal for this Hackweek

The specific goal is to implement a Continuous Integration workflow that builds a MAP (Monai Application Package), based on the example in code and documentation. Specifically, it is to implement a github action workflow that releases it into github container registry.

Implementation

The github action workflow will be added to a fork of the monai-deploy-app-sdk project, given we will be using the code that is already in the examples directory. Later a Pull Request can be created to the upstream project.

A limitation of this project is that we need to run the github action in a GPU node. ASFAIK github does not support that, so we need to run this on an external runner. For that I will be using MS Azure cloud to host a vm with GPU. For 3 reasons: first, it should be faster to clone from github from azure; second, I will try to use the free 90 days; third, I want to get familiar with Azure.

Finally, most probably I will use terraform to deploy the node in Azure.

This way, every time we want to release a new model in the MAP format, we will deploy a vm in Azure, do the build with the GPU, release into the github container registry, and remove the vm.

Resources

https://monai.io/ https://monai.io/model-zoo.html https://docs.monai.io/projects/monai-deploy-app-sdk/en/latest/getting_started/tutorials/monai_bundle_app.html https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps

This project is part of:

Hack Week 23

Activity

  • 6 months ago: jordimassaguerpla joined this project.
  • 6 months ago: vliaskovitis liked this project.
  • 6 months ago: rtsvetkov started this project.
  • 7 months ago: jordimassaguerpla added keyword "github_actions" to this project.
  • 7 months ago: jordimassaguerpla added keyword "github-ci" to this project.
  • 7 months ago: jordimassaguerpla added keyword "ci" to this project.
  • 7 months ago: jordimassaguerpla added keyword "gpu" to this project.
  • 7 months ago: jordimassaguerpla added keyword "azure" to this project.
  • 7 months ago: jordimassaguerpla added keyword "cloud" to this project.
  • 7 months ago: jordimassaguerpla added keyword "monai" to this project.
  • 7 months ago: jordimassaguerpla added keyword "medical" to this project.
  • 7 months ago: jordimassaguerpla added keyword "containers" to this project.
  • 7 months ago: jordimassaguerpla added keyword "ml" to this project.
  • 7 months ago: jordimassaguerpla added keyword "mlops" to this project.
  • 7 months ago: jordimassaguerpla added keyword "ai" to this project.
  • 7 months ago: jordimassaguerpla added keyword "artificial-intelligence" to this project.
  • 7 months ago: jordimassaguerpla originated this project.

  • Comments

    Similar Projects

    COOTWbot by ngetahun

    [comment]: # (Please use the project descriptio...


    COOTWbot by ngetahun

    [comment]: # (Please use the project descriptio...


    Implement Generative AI for SUSE Asset management (using Amazon Bedrock) by mpiala

    [comment]: # (Please use the project descriptio...


    Play with stable diffusion AI model to generate custom avatars by STorresi

    Project Description

    Generate a personaliz...


    Create language model based on Uyuni documentation by nadvornik

    [comment]: # (Please use the project descriptio...


    A quantum physics experiment puzzle (designed with Google's CP-SAT solver) by moio

    [![link to video player demoing the result](htt...


    COOTWbot by ngetahun

    [comment]: # (Please use the project descriptio...


    Mortgage Plan Analyzer by RMestre

    Project Description

    Many people face chal...


    Predefined app security policy template for NeuVector by feih

    Project Description

    Idea is to predefin...


    Containerized home mirror by lkocman

    I'm running a simple home mirror, but I managed...


    Exploring DPDK within containers by paolodepa

    Project Description

    Containerization is h...


    A set of utilities to produce a "from scratch" OCI/Docker container using Opensuse/SLE rpms by ldragon

    [comment]: # (Please use the project descriptio...


    Building a container bootloader by flonnegren

    [comment]: # (Please use the project descriptio...


    Test Results for openQA on GitHub by livdywan

    Project Description

    Jobs in openQA are us...