Skip to main content

Machine learning model contracts with machine learning infrastructure

Project description

Twinn-ml-interface

PyPI Latest Release Downloads License Code style: black

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:

  1. Read config:
    • get_target_template()
    • get_train_window_finder_config_template()
  2. Initialize the model
    • initialize()
  3. Given the configuration for the train window finder in the previous steps, validate possible windows:
    • validate_input_data()
  4. Read the data configuration to download all the needed data in a window selected by the previous step:
    • get_data_config_template()
  5. Transform the input data as needed:
    • preprocess()
  6. Train:
    • train()
  7. Store the model:
    • dump()

When the training is finished, the model can be used for predicting. The prediction steps are:

  1. Retrieve the model from storage and load it:
    • load()
  2. Fetch the data needed for prediction based on either:
    • base_features - if present
    • get_data_config_template() - otherwise
  3. Predict:
    • predict()
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

twinn_ml_interface-0.7.0.dev2.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

twinn_ml_interface-0.7.0.dev2-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file twinn_ml_interface-0.7.0.dev2.tar.gz.

File metadata

  • Download URL: twinn_ml_interface-0.7.0.dev2.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for twinn_ml_interface-0.7.0.dev2.tar.gz
Algorithm Hash digest
SHA256 af01955b61bea182d6c4212e4d528e7573e0f9a7afec86d11d200c3e34b8c05b
MD5 93ac4261dbea8a101a3207648465d61c
BLAKE2b-256 b60ec42cc92eccf65bf7d35a488aa8273d171778f6392191752ab0376c3b4c3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for twinn_ml_interface-0.7.0.dev2.tar.gz:

Publisher: publish-to-pypi.yml on RoyalHaskoningDHV/twinn-ml-interface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file twinn_ml_interface-0.7.0.dev2-py3-none-any.whl.

File metadata

File hashes

Hashes for twinn_ml_interface-0.7.0.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 04aa4d34547aa3628797d600c3e45b35b77e3c7484fa675f3f0a54ba57bf018d
MD5 5b6440a43088d85b77b91ece5b9e2f41
BLAKE2b-256 18acf8181adf2fdb68177ee6776ad87e9e932162bb15197ce855175c9d92e1ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for twinn_ml_interface-0.7.0.dev2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on RoyalHaskoningDHV/twinn-ml-interface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page