Skip to main content

MLSteam Model SDK

Project description

mlsteam-model-sdk

SDK for accessing MLSteam models

Setup

pip3 install mlsteam-model-sdk

To process encrypted model versions, install the Themis development package according to the official instrunctions. Debian/Ubuntu users have a handy installation method:

# for users that already have administrator privileges
mlsteam-model-cli install-themisdev

# for those that need privilege lifting
sudo mlsteam-model-cli install-themisdev

Usage

Initilize SDK

SDK needs to be initialized if you have not done so (replace the fields started with $):

mlsteam-model-cli init \
    --default_project_type=name \
    --default_project_val=$PROJECT_OWNER/$PROJECT_NAME

By default, the settings will be at $HOME/.mlsteam-model-sdk/cfg.ini.

If the program is running out of an MLSteam system, you may also need to setup api_token with this command instead, or by editing the api_token field in cfg.ini:

mlsteam-model-cli init \
    --api_token=$YOUR_API_TOKEN \
    --default_project_type=name \
    --default_project_val=$PROJECT_OWNER/$PROJECT_NAME

This checks whether SDK has been initialized:

$ mlsteam-model-cli check
[v] SDK has been initialized.
Configuration file: /home/ubuntu/.mlsteam-model-sdk/cfg.ini

Download a model version with SDK

from mlsteam_model_sdk.sdk.model import Model

sdk_model = Model()
sdk_model.download_model_version(model_name='model_name',
                                 version_name='version_name')

You will need administrator privileges to handle encrypted model versions. For this case, either run the Python program with sudo, or enter your password in a sudo prompt during program execution.

By default, the model version will be downloaded at $HOME/.mlsteam-model-sdk/models/download/.

This loads a model version and makes prediction:

mv = sdk_model.load_model_version(model_name='model_name',
                                  version_name='version_name')
outputs = mv.predict(inputs)

Import a model version with SDK

There is an alternative way (2-stage model deployment) to import a model version without connecting to an MLSteam system. Rather than downloading from MLSteam directory, it involves (1) getting the related file(s) from MLSteam and then (2) importing the model version from the file(s). This alternative way adds complexity of managing the model file(s) but is suitable for the situation where there is no network connection to the MLSteam system.

This example assumes the following files are locally available:

  1. model version package (required)
  2. package encryption key (required only for encrypted packages)

You will need administrator privileges to import an encrypted model version, as mentioned in the previous example.

To import a package:

from mlsteam_model_sdk.sdk.model import Model

sdk_model = Model(offline=True)
sdk_model.import_model_version(mv_package_file='path/to/mv/package/file',
                               enckey_file='path/to/enckey/file')
# for non-encrypted package
# sdk_model.import_model_version(mv_package_file='path/to/mv/package/file')
  1. We set offline=True to have SDK operate in offline mode (without connecting to MLSteam).
  2. By default, the model and version names to register are read from the package manifest. You may customize these settings with the model_name and version_name parameters.

Import a model version with CLI

This example assumes the following files are locally available:

  1. model version package (required)
  2. package encryption key (required only for encrypted packages)

You will need administrator privileges to import an encrypted model version, as mentioned in the previous example.

To import a package:

# for non-encrypted packages
mlsteam-model-cli mv import-local -f $PACKAGE_FILE_PATH

# for encrypted packages
mlsteam-model-cli mv import-local -f $PACKAGE_FILE_PATH -k $ENCKEY_FILE_PATH

By default, the model and version names to register are read from the package manifest. You may customize these settings with the --model_name and --version_name options.

If the operation is successful, you will find the imported pakage in local model registry:

mlsteam-model-cli mv list-local
   muuid     model_name       vuuid        version_name     puuid     packaged   encrypted      download_time
 ================================================================================================================
 __local__   ...          local-........   ...            __local__   1          ...            .....

Model Development

The SDK is equipped with Model Development Kit (MDK) to support the following activities:

  1. Generating a skeleton of manifest file;
  2. Validating a manifest file;
  3. Creating a model version under development locally;
  4. Loading a model version under development locally;
  5. Registering a model version (🕒 future work).

More information could be found in Model Developer's Guide in SDK documentation.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

mlsteam_model_sdk-0.7.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7 manylinux: glibc 2.17+ x86-64

mlsteam_model_sdk-0.7.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.6 manylinux: glibc 2.17+ x86-64

File details

Details for the file mlsteam_model_sdk-0.7.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a4ee02c85c229cdc6bfe5172f5db22fc0d028829664628b18f5476f6335663e
MD5 85c5b5136446024b9ab56a20f06d524f
BLAKE2b-256 61189b341d45f93b0c8573a00f3361956bf20225bea650b1508173fff6e75963

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b14cc8b9790f8935c4b12760ba30c7eb06b708cd61e94cc089cf3df4362f153
MD5 c7213b5be1a76efbacfe4ef0a9690a11
BLAKE2b-256 6b2002bb2b7e7c29e6589fb4fe0ddedf5b212deb5d0de910a23363fa189ca8be

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d17614d666118193b583ee0194466b686a861018af9fe68e10d53b3d1089925
MD5 96068f0322a0408becd61560fdc25d20
BLAKE2b-256 c97aec6c561a906ab1b610b17d00dcaa5d1fce11b523a504056e4f0c8218a99d

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ac87c972ab0a490277c3bf7628d4b010cbadcf10438cb841394d479706d3f07
MD5 c0cc3c1bfee0440271e57f8d9929a634
BLAKE2b-256 a2e00ef08b0a041b7497b6ce9aeb58198bdaf0c31e19e3202cbbb5a300fb3cb4

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d1383017a450b96933ac068c977e674dbfef79195dc28f5832bd4da35623f54
MD5 cdae984f5d316e4b3e880f560e01e4ea
BLAKE2b-256 59147a2bbb56fdc9aa3cc2eb0940b226af16f68ea02e08f46d353b789374ff91

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffe835400b5dea46e5b4db70d6cbcfeb3d78f4ed6ef47142923be62103a01dbf
MD5 8ebcea15369d412049d618bcbf5b9fcb
BLAKE2b-256 ab58a7159e9919a260ad7d6753edb3d99d1be9c1a5fb0f9c32a76c0a7faa3388

See more details on using hashes here.

File details

Details for the file mlsteam_model_sdk-0.7.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mlsteam_model_sdk-0.7.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48f267c7327f7c62449dacd065d10a816d5c3829d3bd72ec87531eceac879339
MD5 30372d8cc749e5a4075e7c48a5405f2c
BLAKE2b-256 636af51b448f0ea84a2fbea594f6843a106e75a50419510af18f476f95a09b45

See more details on using hashes here.

Supported by

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