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
Classes exported by ml_adapter.base
The module ml_adapter.base exports the following classes
PythonMLAdapter
ml_adapter.base.assets.python_ml.PythonMLAdapter extending ml_adapter.base.assets.python.PythonFunctionAdapter
Base adapter for a python ML function.
Adds methods to intialize the manifest and script for a python plugin or webscript.
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.
PythonFunctionAdapter
ml_adapter.base.assets.python.PythonFunctionAdapter extending ml_adapter.base.assets.manifest.WithManifest
Adapter for python based plugs or webscripts.
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)
NodeFunctionAdapter
ml_adapter.base.assets.node.NodeFunctionAdapter extending ml_adapter.base.assets.manifest.WithManifest
Adapter for node based plugs or webscripts.
packagehandles the project file (atpackage.json)main_scripthandles the main script of the function (index.jsorindex.ts)scriptshandles other utility scripts of the function (*.js,*.ts)
WithManifest
ml_adapter.base.assets.manifest.WithManifest extending ml_adapter.base.assets.mixin.WithAssets
Mixin for a configuration that has a waylay function manifest file.
Adds methods to manage the function manifest of a waylay plugin or webscript.
manifestreturns the manifest asset of the function archive atplug.jsonorwebscript.json.
ModelAdapter
ml_adapter.base.adapter.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.
TensorModelAdapter
ml_adapter.base.adapter.TensorModelAdapter extending ml_adapter.base.adapter.ModelAdapter
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.
ModelAdapterBase
ml_adapter.base.adapter.ModelAdapterBase extending ml_adapter.base.adapter.TensorModelAdapter, ml_adapter.base.assets.python_ml.PythonMLAdapter, ml_adapter.base.model.access.WithModel
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
WithAssets
ml_adapter.base.assets.mixin.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.
WithOpenapi
ml_adapter.base.assets.openapi.WithOpenapi extending ml_adapter.base.assets.mixin.WithAssets
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)
WithModel
ml_adapter.base.model.access.WithModel extending ml_adapter.base.assets.mixin.WithAssets
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)
SelfSerializingModelAsset
ml_adapter.base.model.serialize.SelfSerializingModelAsset extending ml_adapter.base.model.base.ModelAsset
Model asset with own serialization methods.
Reads/writes the model from model.sav using the save and load methods
defined on the model_class.
DillModelAsset
ml_adapter.base.model.dill.DillModelAsset extending ml_adapter.base.model.base.ModelAsset
Model asset for dill-serialized models.
Reads/writes the model from paths like model.dill, model.pkl, model.pickle
using dill serialisation.
JoblibModelAsset
ml_adapter.base.model.joblib.JoblibModelAsset extending ml_adapter.base.model.base.ModelAsset
Model asset with joblib serialization.
Reads/writes the model from model.joblib or model.joblib.gz
using joblib serialisation.
Marshaller
ml_adapter.base.marshall.base.Marshaller extending ml_adapter.base.marshall.base.RequestMarshaller, ml_adapter.base.marshall.base.ResponseMarshaller
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 Distribution
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.1.1.tar.gz.
File metadata
- Download URL: waylay_ml_adapter_base-0.1.1.tar.gz
- Upload date:
- Size: 31.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb591473c101b1a9bafcf9c4cf17ba0eb42ab89ea42afb36ef4a78bb3afa0805
|
|
| MD5 |
0ef01ee0d02a732a9331767efbe25d1d
|
|
| BLAKE2b-256 |
66cb230d58d869d41e52f53417e14bbdcc5520979b830560480e44679be660a0
|
File details
Details for the file waylay_ml_adapter_base-0.1.1-py3-none-any.whl.
File metadata
- Download URL: waylay_ml_adapter_base-0.1.1-py3-none-any.whl
- Upload date:
- Size: 41.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8733e7480f290db295ff75e955f5973a6fb276659e99f1bddcb8195a634edec9
|
|
| MD5 |
379a4e8a08e7e1a7eb6097b49b363068
|
|
| BLAKE2b-256 |
a307b17a91730e2e1eeb60e0879a911cf9ea7c0647ab80a8a79808b27d916b9e
|