In the context of the Cortex Processing Engine, a model wrapper is an implementation of
Sitecore.Processing.Engine.ML.Abstractions.IModel. A model wrapper is passed in as part of the worker options dictionary when you register a task and defines the following:
Model training logic (
TrainAsync()) for a specific model.
Model evaluation logic (
EvaluateAsync()) for a specific model.
Projection logic (
Projection) that defines the structure
Different workers use different parts of the same model, and some workers - such as the merge worker - do not require a model wrapper at all. For example, in the model training task chain:
The projection worker uses the projection logic - for example, to project xConnect data into a format that can be used in a machine learning context.
The merger worker does not use the model wrapper.
The training worker executes model training logic.
If you want to use projection in a context other than machine learning, you still need to create an implementation of
IModel. If you do not require model training and evaluation, you can return empty results.
Model wrappers and trained models
There is no direct relationship between a class that implements
IModel and a trained machine learning model. An
IModel does not contain a reference to the location of the trained model in blob storage.
The relationship between a model wrapper and a trained model is limited to custom logic in the
EvaluateAsync() methods of the model wrapper.