Skip to main content

RunnerBase

Base class for model registering. This base class introduces 5 static methods as followings:
  • predict: Make prediction with given data and model. This method must be overridden. The data is given from the result of preprocess_data, and the return value of this method will be passed to postprocess_data before service.
  • save_model: Save the model into a file. Return value of this method will be given to the load_model method on model loading. If this method is overriden, load_model must be overriden as well.
  • load_model: Load the model from a file.
  • preprocess_data: Preprocess the data before prediction. It converts the API input data to the model input data.
  • postprocess_data: Postprocess the data after prediction. It converts the model output data to the API output data.
Check each method’s docstring for more information. Methods:

.load_model

Load the model instance from file. props is given from the return value of save_model, and artifacts is given from the register_model method. If the save_model is not overriden, props will be None Args
  • props (dict | None) : Data that was returned by save_model. If save_model is not overriden, this will be None.
  • artifacts (dict) : Data that is given by register_model function.
Returns Model instance.

.preprocess_data

Preprocess the given data. The data processed by this method will be given to the model. Args
  • data : Data to be preprocessed.
Returns Preprocessed data that will be given to the model.

.predict

Make prediction with given data and model. Args
  • model (model_instance) : Model instance.
  • data : Data to be predicted.
Returns Prediction result.

.postprocess_data

Postprocess the given data. The data processed by this method will be given to the user. Args
  • data : Data to be postprocessed.
Returns Postprocessed data that will be given to the user.

.save_model

Save the given model instance into file. Return value of this method will be given to first argument of load_model on model loading. Args
  • model (model_instance) : Model instance to save.
Returns (dict) Data that will be passed to load_model on model loading. Must be a dictionary with key and value both string.

register_model

Register the given model for service. If you want to override the default organization, then pass organization_name as **kwargs. Args
  • repository_name (str) : Model repository name.
  • model_number (int | None) : Model number. If None, new model will be created. In such case, model_instance must be given.
  • runner_cls (RunnerBase) : Runner class that includes code for service.
  • model_instance (ModelType | None) : Model instance. If None, runner_cls must override load_model method. Defaults to None.
  • requirements (List[str]) : Python requirements for the model. Defaults to [].
  • artifacts (Dict[str, str]) : Artifacts to be uploaded. Key is the path to artifact in local filesystem, and value is the path in the model volume. Only trailing asterisk(*) is allowed for glob pattern. Defaults to .
Example
  • “model.pt”, “checkpoints/”: “checkpoints/”},

register_torch_model

Register the given torch model instance for model service. If you want to override the default organization, then pass organization_name as **kwargs. Args
  • repository_name (str) : Model repository name.
  • model_number (int | None) : Model number. If None, new model will be created.
  • model_instance (model_instance) : Torch model instance.
  • preprocess_data (callable) : Function that will preprocess data. Defaults to identity function.
  • postprocess_data (callable) : Function that will postprocess data. Defaults to identity function.
  • requirements (list) : List of requirements. Defaults to [].
Example