To support model inference in Apache Ignite for our models as well as for loaded foreign models we need a common inference workflow.
This workflow should isolate model inference/using from model training. User should be able to:
- Load/Unload any possible model (that can be represented as a function).
This part assumes that user specifies any underlying model, a bridge that allows to interact with it and a signature of the model (accepted parameters, returned value).
- Access a list of loaded models.
Used should be able to access a list of loaded models, models that can be used for inference without any additional manipulations. In terms of future Cloud part it will be a table of models user can use in Web UI and start using it.
- Start/Stop distributed infrastructure for inference utilizing cluster resources.
Single inference is actually a single function call. We want to utilize all cluster resources, so we need to replicate the model and start services that are ready to use the model for inference on every node.
- Perform inference on top of the started infrastructure.
There are should be a gateway that allows to use a single entry point to perform inference utilizing started on the previous step distributed service infrastructure.
* Model in this task is assumed to be model with required preprocessing.