Replies: 2 comments 3 replies
-
I would say your understanding of the distinction is broadly correct. The idea for bundles is to provide a standard format for describing what a model is, what it does, what it's input/output interface is, and any other ancillary information. The scripts can be used to train or run the model but they don't provide anything to setup your environment, the assumption is you have everything you need installed. All of this does enhance portability but doesn't provide a portable containerised environment for your model, and that is what Deploy does amongst other things. Bundles are about information and some functionality around a model, Deploy is about running models in a robust containerised environment on conjunction with other packages/containers with additional components for ingesting, processing, and generating data that goes beyond just the inputs and outputs of the model itself. |
Beta Was this translation helpful? Give feedback.
-
We also looked into this question recently at Kitware and shared some of the experience in this blog post: https://www.kitware.com/deploying-your-monai-machine-learning-model-within-3d-slicer/ The way I think about it is You can also compose them, using both bundle and deploy: in which case the monai deploy step is simplified by the fact that monai deploy has built-in ways to handle standardized bundle objects. (I didn't try this before but I heard about it so probably needs to be double checked) |
Beta Was this translation helpful? Give feedback.
-
Hi there,
thank you for the wonderful work! I was wondering about the fundamental differences between using MONAI Deploy and MONAI Bundle regarding portability and other pros and cons. In particular, I am interested what the core differences between these two types of deployment of a custom model actually consist in.
To my understanding, only MONAI Deploy allows you to include your model in a Docker container, which could be used for inference on arbitrary input and output directories as a black box. In contrast, MONAI Bundle aims to bring all models into a standardized format with additional JSON files so that a model zoo can be consistent. However, MONAI Bundle does not allow to Docker-ize your model, right?
Does this mean that MONAI Deploy is aimed at portability and MONAI Bundle at standardization of the model format? In that case, it would be wiser to use Deploy when trying to integrate your custom model as a black box in a complex framework, e.g. a DICOMWeg server with other components in Kubeflow. In contrast, using MONAI Bundle would be more sensible when you want to add your model to the model zoo so it is in a common standard.
I would be glad if someone can shed some light for me on this topic :)
Thanks!
Zdravko
Beta Was this translation helpful? Give feedback.
All reactions