Skip to main content

KladML SDK - Enterprise-grade MLOps toolkit

Project description

KladML

Build ML pipelines with pluggable backends. Simple. Modular. Yours.

PyPI - Version License

⭐ Star us on GitHub to support the project!


Why KladML?

Feature KladML MLflow ClearML
Interface-based ✅ Pluggable ❌ Hardcoded ❌ Hardcoded
Server required ❌ No ⚠️ Optional ✅ Yes
Local-first ✅ Unified SQLite DB ✅ Yes ❌ No
Learning curve 🟢 Minutes 🟡 Days 🔴 Weeks
Hierarchy ✅ Workspace/Proj/Fam ❌ Exp/Run ❌ Project/task
User Interface ✅ TUI (Terminal) ⚠️ Web UI ✅ Web UI
Custom backends ✅ Easy ⚠️ Complex ❌ No
Data Engine 🚀 Polars (Fast) 🐢 Pandas 🐢 Pandas


Requirements

  • Python: 3.10, 3.11, 3.12 (Native support for modern type hints)
  • OS: Linux, macOS, Windows

Installation

# Core (lightweight, minimal dependencies)
pip install kladml

# Training + Data Engine (includes Polars, Torch)
pip install "kladml[train]"

# Full Suite (Tracking + TUI + Dev)
pip install "kladml[all]"

Workflow

1. Initialize Workspace

kladml init

Creates the standard folder structure (data/configs/, data/projects/, data/datasets/).

2. Interactive Management (TUI)

kladml ui

Explore projects, runs, and datasets visually in your terminal.

3. Training

# Train using a config file (auto-detects GPU/MPS)
kladml train --config data/configs/my_config.yaml

# Distributed Training (Multi-GPU)
kladml train --config ... --distributed --num-processes 2

Universal Trainer: Supports Mixed Precision (FP16/BF16), Gradient Accumulation, and Multi-GPU without changing code.


Built-in Baselines

KladML is designed to work with any custom model (PyTorch, Scikit-learn, etc.). For convenience, we provide these reference implementations out-of-the-box:

Domain Reference Model
Tabular XGBoost (Coming Soon)
Time Series Transformers
Computer Vision ResNet / ViT (Coming Soon)
TEXT BERT (Coming Soon)

Architecture

KladML uses dependency injection with abstract interfaces. Swap implementations without changing your code:

┌─────────────────────────────────────────────────────────────┐
│                      Your Code                              │
├─────────────────────────────────────────────────────────────┤
│                   ExperimentRunner                          │
├─────────────────────────────────────────────────────────────┤
│  StorageInterface  │  ConfigInterface  │  TrackerInterface  │
├─────────────────────────────────────────────────────────────┤
│  LocalStorage      │  YamlConfig       │  LocalTracker      │
│  S3Storage         │  EnvConfig        │  MLflowTracker     │
│  (your impl)       │  (your impl)      │  (your impl)       │
└─────────────────────────────────────────────────────────────┘

Implement Custom Backends

from kladml.interfaces import StorageInterface

class S3Storage(StorageInterface):
    """Custom S3 implementation."""
    
    def upload_file(self, local_path, bucket, key):
        # Your S3 logic
        ...

# Plug it in
runner = ExperimentRunner(storage=S3Storage())

Interfaces

Interface Description Default
StorageInterface Object storage (files, artifacts) LocalStorage
ConfigInterface Configuration management YamlConfig
PublisherInterface Real-time metric publishing ConsolePublisher
TrackerInterface Experiment tracking LocalTracker (MLflow + SQLite)

Configuration

Create kladml.yaml:

project:
  name: my-project
  version: 0.1.0

training:
  device: auto  # auto | cpu | cuda | mps

storage:
  artifacts_dir: ./data

Or use environment variables:

export KLADML_TRAINING_DEVICE=cuda
export KLADML_STORAGE_ARTIFACTS_DIR=/data/artifacts

CLI Commands

kladml --help                 # Show all commands
kladml init                   # Initialize workspace
kladml version                # Show version

# Training
kladml train quick ...        # Quick training (no DB setup)
kladml train single ...       # Full training with project/experiment

# Evaluation
kladml eval run ...           # Evaluate a model
kladml eval info              # Show available evaluators
kladml compare --runs r1,r2   # Compare runs side-by-side

# Data
kladml data inspect <path>    # Analyze a dataset (Parquet/PKL)
kladml data summary <dir>     # Summary of datasets
kladml data convert ...       # Convert PKL -> Parquet/HDF5

# Models
kladml export ...      # Export to ONNX

# Organization
kladml project list           # List all projects
kladml family list ...        # List families
kladml experiment list ...    # List experiments

Contributing

PRs welcome! See CONTRIBUTING.md for guidelines.

git clone https://github.com/kladml/kladml.git
cd kladml
pip install -e ".[dev]"
pytest

License

MIT License - see LICENSE for details.


Documentation · PyPI · GitHub

Made in 🇮🇹 by the KladML Team

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

kladml-0.10.0.tar.gz (376.9 kB view details)

Uploaded Source

Built Distribution

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

kladml-0.10.0-py3-none-any.whl (150.9 kB view details)

Uploaded Python 3

File details

Details for the file kladml-0.10.0.tar.gz.

File metadata

  • Download URL: kladml-0.10.0.tar.gz
  • Upload date:
  • Size: 376.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kladml-0.10.0.tar.gz
Algorithm Hash digest
SHA256 295e5c9fed859d874e0ab4e3c291be902d64acf70f5003a3697f5ef2f5b8d507
MD5 625f1f0ed3e7d6b6b75c18ede7eba50e
BLAKE2b-256 07054a1fdd68e6af3c4b86dba3eec087e499483b5d5d00ad8e85f02ae08ccbae

See more details on using hashes here.

Provenance

The following attestation bundles were made for kladml-0.10.0.tar.gz:

Publisher: publish.yml on kladml/kladml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kladml-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: kladml-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 150.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kladml-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98ea6eecfb071b5b8b139a8e37373302ba1d347b696578f02c90f96607c705f3
MD5 74e6f800bd52445e2de3acdc60d4308e
BLAKE2b-256 f029c2f0303e06ae6481e8e3fbdbd0444cb0ef87b318f4b61450b3b07064f373

See more details on using hashes here.

Provenance

The following attestation bundles were made for kladml-0.10.0-py3-none-any.whl:

Publisher: publish.yml on kladml/kladml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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