Skip to main content

ML Lifecycle Management Framework

Project description

mloptiflow

Python framework and library with an integrated CLI, designed to streamline ML lifecycle management by automating project inception, real-time model monitoring, and adaptive canary deployment processes. The library facilitates automated project setup across various configurable ML paradigms (whether it is a Random Forest classification, XGBoost regression, T5-based time-series forecasting, encoder-only / encoder-decoder / decoder-only transformer-based NLP downstream tasks, or practically any other configurable ML paradigm) with optimized directories, subdirectories and configuration files adhering to recommended practices in ML development. The library features a plugin architecture for extensibility, allowing integration with other core components / packages, such as real-time model monitoring with anomaly detection mechanisms, adaptive canary deployment architectures, and integrated UI for monitoring and deployment control. Model monitoring is implemented using high-throughput, low-latency data streaming tool Apache Kafka. Deployed ML models act as Kafka producers, emitting real-time inference data and performance metrics serialized with Apache Avro for schema enforcement and efficiency. Model monitoring is accompanied with anomaly, data, and concept drift detection mechanisms via techniques like PSI, Isolation Forests, or LSTM auto-encoders. Adaptive canary deployment architectures and strategies are implemented specifically for ML models using Kubernetes for container orchestration and Istio as a service mesh for traffic management and routing between baseline and canary versions at granular levels. Integrated UI for monitoring and deployment control is implemented using Vanilla JavaScript and Bootstrap on the client-side, and FastAPI / LitServe on the server-side.

Installation

  1. create a new virtual environment

  2. install mloptiflow:

pip install mloptiflow
  1. initialize a new project and choose a name and paradigm (currently supported paradigms are: tabular_regression, tabular_classification):
mloptiflow init <your-project-name> --paradigm=<paradigm-name>
  1. cd into your project directory and (if using poetry) update name field in pyproject.toml file:
cd <your-project-name>
[tool.poetry]
name = "<your-project-name>"
  1. install dependencies:
poetry install

or if using pip:

pip install -r requirements.txt

Usage

  1. run the application:
streamlit run app.py

or:

poetry run streamlit run app.py
  1. optionally, adjust Dockerfile to your needs if you want to run the inference application in a containerized environment:
# mainly the WORKDIR
WORKDIR /<your-project-name>
  1. build the container image:
docker build -t <your-project-name> .
  1. run the container image:
docker run -p 8501:8501 <your-project-name>

Support

  • TBA

Roadmap

  • TBA

Contributing

  • TBA

License

MIT

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

mloptiflow-0.0.8.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mloptiflow-0.0.8-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file mloptiflow-0.0.8.tar.gz.

File metadata

  • Download URL: mloptiflow-0.0.8.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.11 Linux/5.15.154+

File hashes

Hashes for mloptiflow-0.0.8.tar.gz
Algorithm Hash digest
SHA256 c27506ced69eedb49fd3ebcae299f8d152fb472bc55cbe71e5699b12f0c6dfe2
MD5 d5692fa87b703f895d0175dedeb621d4
BLAKE2b-256 fb42d9491e54d0ef621a17797c6f9cf6e13fc71bc084494f77774e6e9869598d

See more details on using hashes here.

File details

Details for the file mloptiflow-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: mloptiflow-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.11 Linux/5.15.154+

File hashes

Hashes for mloptiflow-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 4ef8a6b5b8c788da3a20a137bf5b824653b5792fbc68c54d393b6d71d95edd46
MD5 2c24eaa6f669cc76a4df671e669ae7b3
BLAKE2b-256 32aabffb2b630eff247c947f22ca066ea1aab63ddf39b9b8383dd04f06723ba1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page