Skip to main content

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.

Metadata

Release files for mlsteam-model-sdk 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for mlsteam-model-sdk 0.8.0
File
mlsteam_model_sdk-0.8.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 none Linux glibc 2.17+ x86-64 Details
mlsteam_model_sdk-0.8.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 none Linux glibc 2.17+ x86-64 Details

Total release size: 12.7 MB

Release files / mlsteam_model_sdk-0.8.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp312-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
678644afe9e7bba92bffbccef06e700109234c3b21cce4b993bb44b717040600
BLAKE2b-256 checksum
How to use checksums
676c5c442ab8a13dcae22a14a0455aa2c544dcd92e6f02c66b6b9beaf1c04f9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
aaa0366b99b83ec77c67ff791390818b29a3c2f15898c41a4c0cb1dc66bce822
BLAKE2b-256 checksum
How to use checksums
6e782a02be0db1a80497b0614f9a6112d8abac2214ded312886277b3785ad9c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4fc08b24dbc6315d7f4a5acf4484457d8255514ed7b2cf4ded98a78670b62ae2
BLAKE2b-256 checksum
How to use checksums
66236e1814d856f64e181292b23823bd96af2dac9918bff384f3462c71028e84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c47f17825ee53a25ec380d0001c5d3d57cf861f286a711f8cbab669057b3c6f3
BLAKE2b-256 checksum
How to use checksums
937ba32f738abbd88e74b66f00f85e76e9992043132e547cc03725acad41b6d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.9 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9ec64f34c4613f198dbecfef54e3a9869b2759c5a61d46dc4cf11830da84025d
BLAKE2b-256 checksum
How to use checksums
0a58b4b2d6c217fb20f4113c35257fbe05b1276ea29b0e5dade0ed7f6f6c95e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.7 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5933fe1ad8a8cfecf41ecf8e9d16453fa7e7bbc80dfeb95c593d5494bf776851
BLAKE2b-256 checksum
How to use checksums
6c25c4eb29acee257259f65a78ce5d5e21dbc806a618ae2802b2d89cd576e5d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10

Release files / mlsteam_model_sdk-0.8.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mlsteam_model_sdk-0.8.0-cp36-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.6 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f60af1a1d968bf136ee72a29ade6db9a8f03073ef117a10f52a14568afd72f10
BLAKE2b-256 checksum
How to use checksums
7ab3811abce4626aae8b4a55762bf05ef7d5816bd0b4f6a6b3d28fcadb1cbf6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.10
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page