Skip to content

Proposal of MONAI Model Zoo Contribution Pipeline

Yiheng Wang edited this page May 10, 2022 · 2 revisions

Solutions of other github projects

The Open Neural Network Exchange (ONNX) Model Zoo contains a collection of pre-trained models contributed by community member. It uses Git LFS to store model files.

The model zoo contains multiple text and vision tasks, and for each task, each model has its own subfolder which contains model weights, readme and some other necessary files.

For example, the following link is the place to store the yolov4 model which is used in object detection and segmentation:

https://github.com/onnx/models/tree/main/vision/object_detection_segmentation/yolov4

It collects various interesting models (paper), and encourage people to contribute the model (by submit a PR) according to the contribution guide.

The Pytorch Image Models (timm) is a repository that contains the implementations of popular models, as well as the train/validation scripts to reproduce the performance. Different from ONNX, timm saves the implementations into the repository, and put weights into Github releases.

It is a library that contains popular 2d computer vision models. Similar as timm, it includes the implementations of models in the repository. The different place is that all weights are saved outside of Github.

Proposal

Github Page

As for MONAI Bundle based model zoo, I think we can create a new repository under Project-MONAI. The directory of the model zoo is like:

image

PR Review Process

PR Requirements (Draft)

  • Bundle format, it should meet the requirements of MONAI Bundle Specification.
  • Reproducibility, a clear description about how to reproduce the performance (accuracy and/or speed) should be included.

How to Handle Large Files

A bundle may include large files such as model weights, we may also need to discuss about when and how to handle them. The following are two of the possible ways.

1. Include Large Files via Using Git LFS

In this way, user can use the command like git lfs pull --include="[path to bundle weights].pt" --exclude="" to grab their expected large files.

2. Provide Download Links of Large Files

This way refers to open_model_zoo

Users can submit a PR that includes a bundle except all large files (a file larger that 100MB is considered as large file). For all large files, a yml/json file which contains a mapping between the download link and the destination (local path) should be provided.

image.

Review Process

The following flow chart shows the whole review process:

Screen Shot 2022-05-10 at 1 59 29 PM

Next Step

Automatic CI/CD to check the format of bundles.

Clone this wiki locally