Skip to main content

A small example package

Project description

Boxkite logo

PyPI version PyPI license PyPI pyversions CI workflow codecov

{Fast, Correct, Simple} - pick three

Easily compare training and production ML data & model distributions

Goals

Boxkite is an instrumentation library designed from ground up for tracking concept drift in HA (Highly Available) model servers. It integrates well with existing DevOps tools (ie. Grafana, Prometheus, fluentd, kubeflow, etc.), and scales horizontally to multiple replicas with no code or infrastructure change.

  • Fast
    • 0.5 seconds to process 1 million data points (training)
    • Sub millisecond p99 latency (serving)
    • Supports sampling for large data sets
  • Correct
    • Aggregates histograms from multiple server replicas (using PromQL)
    • Separate counters for discrete and continuous variables (ie. categorical and numeric features)
    • Initialises serving histogram bins from training data set (based on Freedman-Diaconis rule)
    • Handles unseen data, nan, None, inf, and negative values
  • Simple
    • One metric for each counter type (no confusion over which metric to choose)
    • Default configuration supports both feature and inference monitoring (easy to setup)
    • Small set of dependencies: prometheus, numpy, and fluentd
    • Extensible metric system (support for image classification coming soon)

Some non-goals of this project are:

  • Adversarial detection

If you are interested in alternatives, please refer to our discussions in FAQ.

Getting Started

Follow one of our tutorials to easily get started and see how Boxkite works with other tools:

See Installation & User Guide for how to use Boxkite in any environment.

FAQ

  1. Does boxkite support anomaly / outlier detection?

Prometheus has supported outlier detection in time series data since 2015. Once you've setup KL divergence and K-S test metrics, outlier detection can be configured on top using alerting rules. For a detailed example, refer to this tutorial: https://prometheus.io/blog/2015/06/18/practical-anomaly-detection/.

  1. Does boxkite support adversarial detection?

Adversarial detection concerns with identifying single OOD (Out Of Distribution) samples rather than comparing whole distributions. The algorithms are also highly model specific. For these reasons, we do not have plans to support them in boxkite at the moment. As an alternative, you may look into Seldon for such capabilities https://github.com/SeldonIO/alibi-detect#adversarial-detection.

  1. Does boxkite support concept drift detection for text / NLP models?

Not yet. This is still an actively researched area that we are keeping an eye on.

  1. Does boxkite support tensorflow / pytorch?

Yes, our instrumentation library is framework agnostic. It expects input data to be a list or np.array regardless of how the model is trained.

Contributors

The following people have contributed to the original concept and code

A full list of contributors, which includes individuals that have contributed entries, can be found here.

Shameless plug

Boxkite is a project from BasisAI, who offer an MLOps Platform called Bedrock.

Bedrock helps data scientists own the end-to-end deployment of machine learning workflows. Boxkite was originally part of the Bedrock client library, but we've spun it out into an open source project so that it's useful for everyone!

Project details


Download files

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

Source Distribution

boxkite-0.0.5.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

boxkite-0.0.5-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file boxkite-0.0.5.tar.gz.

File metadata

  • Download URL: boxkite-0.0.5.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for boxkite-0.0.5.tar.gz
Algorithm Hash digest
SHA256 b40e1595ccdd94f1ec3e0948070e391d0565125f5ded555d0aef4a5341ba879d
MD5 f47c391140df90550eb8bb89e34bb0ac
BLAKE2b-256 d2aba46a6624d2e8f81f1d8e3d1a11a594c467ce4231738f3d3d5af7b84af0ef

See more details on using hashes here.

File details

Details for the file boxkite-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: boxkite-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for boxkite-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7d5946c10ce06a48cc5d5c81ef2653a08360e4f1cdc63955e81d34758b68f86b
MD5 f0bf0ec011815b499ad00cae3675fb2b
BLAKE2b-256 d642b689363c5bff118b68fe9a7a06365cfd6c22e5509548e0b90cacc8f3da44

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