ml-adapter base classes.
Project description
waylay-ml-adapter-base
Provides the ml_adapter.base module for the Waylay ML Adapter solution.
To use an ML Adapter in a Waylay plugin or webscript, use the adapter relevant to your machine learning framework:
- waylay-ml-adapter-numpy for generic models that use numpy data representation
- waylay-ml-adapter-sklearn for scikit-learn models.
- waylay-ml-adapter-torch for pytorch models.
This waylay-ml-adapter-base module provides the framework for these adapters.
Only if you would need to create an adapter utility for another
framework, you would install this module separately:
pip install waylay-ml-adapter-base
Exported classes
This module exports the following classes:
ml_adapter.base.ModelAdapter
Model Adapter base.
Provides the basic contract for exposing a model to a waylay plugin or webscript.
- Delegates to a
marshallerto map the remote, json-compatible python data structures from and to the native tensor data structures for the ML framework. - Delegates to a
invokerto find the model method to be called. - The
callmethod maps remote requests and invokes the model method. - The
call_remotemethod tests the round trip serialization, encoding native data request to remotable and back before invokingcall.
ml_adapter.base.TensorModelAdapter
Model adapter that uses (dicts of) tensors as inputs and outputs.
Requests are mapped to the model invocation using named parameters, falling back to mapping the "main" entry to the first positional parameter.
ml_adapter.base.ModelAdapterBase
Generic model adapter for plugs and webscripts.
- supports creation of waylay webscript and plug functions
- pluggable tensor marshalling (
DEFAULT_MARSHALLER = NoMarshaller) - pluggable model loading (dill, joblib, selfserializing, custom) configured by
MODEL_ASSET_CLASSESandMODEL_CLASS
ml_adapter.base.WithAssets
Mixin for a configuration backed by assets.
Manages assets of the the plugin or webscript.
Used read-only within a deployed adapter to e.g. load the model definition.
Used read/write within the ml_tool to edit
the assets of a plugin or webscript.
ml_adapter.base.WithManifest
Mixin for a configuration that has a waylay function manifest file and script.
Adds methods to a WithAssets adapter to manage the function manifest of
waylay plugin or webscript.
manifestreturns the manifest asset of the function archive atplug.jsonorwebscript.json.as_webscript()initializes the manifest and script for a webscript that uses an ML Adapter.as_plug()initializes the manifest and script for a rule plugin that uses an ML Adapter.
ml_adapter.base.WithOpenapi
Mixin for a configuration that has an openapi description.
Adds methods to a WithAssets adapter to manage the
openapi description of waylay plugin or webscript.
openapireturns an asset of typeOpenApiAsset(normally atopenapi.json)
ml_adapter.base.WithPython
Handles assets specific to python-based functions.
requirementshandles the dependency file (atrequirements.txt)libhandles the libraries that are uploaded with the function archive itself. (atlib/*.tar.gz)main_scripthandles the main script of the function (main.py)scriptshandles other utility scripts of the function (*.py)
ml_adapter.base.WithModel
Holder of model assets.
Adds methods to a WithAssets adapter to manage the model instance.
A model can either be:
- given as
modelin the constructor of the adapter - loaded from
model_pathin the assets - loaded with a
model_class(using an optionalmodel_path)
The MODEL_ASSET_CLASSES configured on the adapter
define the methods to load a model.
Defaults are
DillModelAsset(".dill", ".pkl", "*.pickle" files)JoblibModelAsset(".joblib", ".joblib.gz" files)SelfSerializingModelAsset("*.sav" files)
If no MODEL_ASSET_CLASSES are configured, the model can only
be set by the contructor (using the model or model_class parameters)
ml_adapter.base.SelfSerializingModelAsset
Model asset with own serialization methods.
Reads/writes the model from model.sav using the save and load methods
defined on the model_class.
ml_adapter.base.DillModelAsset
Model asset for dill-serialized models.
Reads/writes the model from paths like model.dill, model.pkl, model.pickle
using dill serialisation.
ml_adapter.base.JoblibModelAsset
Model asset with joblib serialization.
Reads/writes the model from model.joblib or model.joblib.gz
using joblib serialisation.
ml_adapter.base.Marshaller
Abstract base class to marshall inference requests and responses.
Methods used to invoke the model in a plugin or webscript:
map_request()maps remote requests (generic typeRREQ) to native requests (generic typeMREQ)map_response()maps native responses (generic typeMRES) to remote a response (generic typeRRES)
Methods used to test roundtrip encoding in a client:
encode_request()encodes a native request to a remote request that can be sent to a waylay function.decode_response()decodes a remote response from a function to native a response.
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file waylay_ml_adapter_base-0.0.10-py3-none-any.whl.
File metadata
- Download URL: waylay_ml_adapter_base-0.0.10-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4be88c8c1de6ff27ffa748b63dc3c550218c7ee8116245508205a4e3335ea3c5
|
|
| MD5 |
96db7dd5c5c3b35576a6d287371f85a3
|
|
| BLAKE2b-256 |
b8b22ee9045e125a9fbbce9eadbcf41e3d03800dc3d2609c650ac8d823cf90ca
|