Proposal of MONAI Model Zoo Contribution Pipeline - Project-MONAI/MONAI GitHub Wiki
Solutions of other github projects
ONNX
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.
timm
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.
Cadene
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:
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.
.
Review Process
The following flow chart shows the whole review process:
Next Step
Automatic CI/CD to check the format of bundles.