Machine learning model contracts with machine learning infrastructure
Project description
Twinn-ml-interface
Twinn-ml-interface is a Python package for data contracts between machine learning code and infrastructure. This contract ensures smooth onboarding of machine learning models onto the Twinn-ml-platform by Royal HaskoningDHV.
Author: Royal HaskoningDHV
Installation
The easiest way to install this package is using pip:
pip install twinn-ml-interface
Model Interface
Purpose
The Model Interface defines the required methods and attributes that any ML model needs to have in order to run in the Royal HaskoningDHV Twinn-ml infrastructure.
Testing compliance of your model with the data contract
Instance of the Model Interface
Once all the attributes and methods from the Protocol ModelInterfaceV4
are implemented, including the correct type-hints / annotations, we can check if a model is compliant with the interface by doing an isinstance
check with ModelInterfaceV4
. You can find a base test in twinn_ml_interface/interface/model_test.py
. The Darrow-Poc is an example of a model that follows the ModelInterfaceV4.
Mock Executors
The executor
class takes care of running the model either for training or predictions in the Twinn-ml infrastructure. Here, we implemented a mock executor to emulate that behaviour to some extent, which hopefully makes it a little clearer in what context the model class will be used. Any model compliant with the ModelInterface should be able to train and predict using the ExecutorMock
that can be found in twinn_ml_interface/mocks/mocks.py
. The Darrow-Poc is an example of a model that follows ModelInterfaceV4
and can run using the ExecutorMock
.
The steps and methods that the infrastructure and the mock executor run during training are:
- Read config:
get_target_template()
get_train_window_finder_config_template()
- Initialize the model
initialize()
- Given the configuration for the train window finder in the previous steps, validate possible windows:
validate_input_data()
- Read the data configuration to download all the needed data in a window selected by the previous step:
get_data_config_template()
- Transform the input data as needed:
preprocess()
- Train:
train()
- Store the model:
dump()
When the training is finished, the model can be used for predicting. The prediction steps are:
- Retrieve the model from storage and load it:
load()
- Fetch the data needed for prediction based on either:
base_features
- if presentget_data_config_template()
- otherwise
- Predict:
predict()
- Load configuration to post predictions:
get_result_template()
Example of the Model Interface
Darrow Poc
The Darrow-Poc is an example of a model that follows ModelInterfaceV4
. It contains more detailed explanations of the data model, interface methods and the onboarding process.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file twinn_ml_interface-0.4.0.tar.gz
.
File metadata
- Download URL: twinn_ml_interface-0.4.0.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13944b7f31843a5244472fc490aa9ca453b7840585807377d149fa58c64deb45 |
|
MD5 | b0dd39649e2775f324aab544b67f07a1 |
|
BLAKE2b-256 | 4427a4abb2de539fdb16722a33567817b35c2d54fa3b87704e00e2890107dffd |
File details
Details for the file twinn_ml_interface-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: twinn_ml_interface-0.4.0-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 971dbf157bbf01c3c8ad31ca680ee2e7c967a1fadb56c2c25ff5dfe02a4005f6 |
|
MD5 | 6ee14c702ba6519d996f89f4e941b6a8 |
|
BLAKE2b-256 | 67a3ac45548407232f9462dfbd9cf99f87e4fbbe4049bd7346363b460af6fb36 |