Alibi-Detect runtime for MLServer

This package provides a MLServer runtime compatible with alibi-detect models.

Usage

You can install the mlserver-alibi-detect runtime, alongside mlserver, as:

pip install mlserver mlserver-alibi-detect

For further information on how to use MLServer with Alibi-Detect, you can check out this worked out example.

Content Types

If no content type is present on the request or metadata, the Alibi-Detect runtime will try to decode the payload as a NumPy Array. To avoid this, either send a different content type explicitly, or define the correct one as part of your model’s metadata.

Settings

The Alibi Detect runtime exposes a couple setting flags which can be used to customise how the runtime behaves. These settings can be added under the parameters.extra section of your model-settings.json file, e.g.

{
  "name": "drift-detector",
  "implementation": "mlserver_alibi_detect.AlibiDetectRuntime",
  "parameters": {
    "uri": "./alibi-detect-artifact/",
    "extra": {
      "batch_size": 5
    }
  }
}

Reference

You can find the full reference of the accepted extra settings for the Alibi Detect runtime below:

pydantic settings mlserver_alibi_detect.runtime.AlibiDetectSettings

Parameters that apply only to alibi detect models

Config:
  • env_prefix: str = MLSERVER_MODEL_ALIBI_DETECT_

Fields:
field batch_size: int | None = None

Run the detector after accumulating a batch of size batch_size. Note that this is different to MLServer’s adaptive batching, since the rest of requests will just return empty (i.e. instead of being hold until inference runs for all of them).

field predict_parameters: dict = {}

Keyword parameters to pass to the detector’s predict method.

field state_save_freq: int | None = 100

Save the detector state after every state_save_freq predictions. Only applicable to detectors with a save_state method.

Constraints:
  • exclusiveMinimum = 0