Skip to main content

Make MLOps easier with an AI-powered framework

Project description

Make MLOps Easy

Make MLOps easier with an AI-powered framework that abstracts all phases of an MLOps pipeline.

Overview

Make MLOps Easy is a comprehensive framework that simplifies the entire machine learning operations pipeline. With a single command, you can:

  • Data Preprocessing: Automatic handling of missing values, feature scaling, and categorical encoding
  • Model Training: Intelligent model selection and hyperparameter tuning
  • Model Deployment: Automated model packaging and endpoint creation
  • Model Observability: Built-in monitoring, logging, and performance tracking

Installation

From Source

git clone https://github.com/umbertocicciaa/easy-mlops.git
cd easy-mlops
pip install -e .

Using pip (once published)

pip install make-mlops-easy

Using Docker

Build the image locally and expose the CLI:

docker build -t make-mlops-easy .
docker run --rm make-mlops-easy --help

Mount data and persist model artifacts by binding host directories:

docker run --rm \
  -v "$(pwd)/data:/data" \
  -v "$(pwd)/models:/app/models" \
  make-mlops-easy train /data/dataset.csv --target price

The container entrypoint is make-mlops-easy, so any CLI subcommand can be passed as usual.

Quick Start

1. Train a Model

Train a machine learning model with a single command:

make-mlops-easy train data.csv --target price

This will:

  • Load and preprocess your data
  • Automatically detect the problem type (classification/regression)
  • Train an appropriate model
  • Deploy the model with all artifacts
  • Set up monitoring and logging

2. Make Predictions

Use your deployed model to make predictions:

make-mlops-easy predict new_data.csv models/deployment_20240101_120000

3. Check Model Status

Get information about your deployed model:

make-mlops-easy status models/deployment_20240101_120000

4. View Observability Reports

Generate detailed monitoring reports:

make-mlops-easy observe models/deployment_20240101_120000

CLI Commands

make-mlops-easy train

Train a machine learning model on your data.

Usage:

make-mlops-easy train DATA_PATH [OPTIONS]

Options:

  • -t, --target TEXT: Name of the target column
  • -c, --config PATH: Path to configuration file (YAML)
  • --no-deploy: Skip deployment step (only train the model)

Examples:

# Basic training
make-mlops-easy train data.csv --target label

# With custom configuration
make-mlops-easy train data.json -t price -c config.yaml

# Train without deploying
make-mlops-easy train data.csv --target label --no-deploy

make-mlops-easy predict

Make predictions using a deployed model.

Usage:

make-mlops-easy predict DATA_PATH MODEL_DIR [OPTIONS]

Options:

  • -c, --config PATH: Path to configuration file (YAML)
  • -o, --output PATH: Output file for predictions (JSON format)

Examples:

# Basic prediction
make-mlops-easy predict new_data.csv models/deployment_20240101_120000

# Save predictions to file
make-mlops-easy predict data.json models/latest -o predictions.json

make-mlops-easy status

Get status and metrics for a deployed model.

Usage:

make-mlops-easy status MODEL_DIR [OPTIONS]

Options:

  • -c, --config PATH: Path to configuration file (YAML)

Example:

make-mlops-easy status models/deployment_20240101_120000

make-mlops-easy observe

Generate observability report for a deployed model.

Usage:

make-mlops-easy observe MODEL_DIR [OPTIONS]

Options:

  • -c, --config PATH: Path to configuration file (YAML)
  • -o, --output PATH: Output file for the report

Examples:

# View report in terminal
make-mlops-easy observe models/deployment_20240101_120000

# Save report to file
make-mlops-easy observe models/latest -o report.txt

make-mlops-easy init

Initialize a new MLOps project with default configuration.

Usage:

make-mlops-easy init [OPTIONS]

Options:

  • -o, --output PATH: Output path for the configuration file (default: mlops-config.yaml)

Example:

make-mlops-easy init -o my-config.yaml

Configuration

Make MLOps Easy uses YAML configuration files to customize behavior. Generate a default configuration:

make-mlops-easy init

Configuration Structure

preprocessing:
  handle_missing: drop  # Options: drop, mean, median, mode
  scale_features: true
  encode_categorical: true

training:
  test_size: 0.2
  random_state: 42
  cv_folds: 5
  model_type: auto  # Options: auto, random_forest_classifier, random_forest_regressor, logistic_regression, linear_regression

deployment:
  output_dir: ./models
  save_format: joblib
  create_endpoint: false

observability:
  track_metrics: true
  log_predictions: true
  alert_threshold: 0.8

Features

Automatic Data Preprocessing

  • Missing Value Handling: Multiple strategies (drop, mean, median, mode)
  • Feature Scaling: StandardScaler for numerical features
  • Categorical Encoding: Automatic label encoding for categorical variables
  • Multiple Format Support: CSV, JSON, and Parquet files

Intelligent Model Training

  • Problem Type Detection: Automatically detects classification vs regression
  • Model Selection: Chooses appropriate algorithms based on your data
  • Cross-Validation: Built-in k-fold cross-validation
  • Performance Metrics: Comprehensive metrics for model evaluation

Streamlined Deployment

  • Model Artifacts: Saves model, preprocessor, and metadata
  • Versioning: Timestamped deployments for easy tracking
  • Endpoint Creation: Optional prediction endpoint script generation
  • Reproducibility: All components saved for consistent predictions

Built-in Observability

  • Metrics Tracking: Automatic logging of model performance metrics
  • Prediction Logging: Track all predictions for analysis
  • Performance Monitoring: Detect metric degradation over time
  • Reporting: Generate detailed monitoring reports

Supported Data Formats

  • CSV (.csv)
  • JSON (.json)
  • Parquet (.parquet)

Supported Model Types

Classification

  • Random Forest Classifier
  • Logistic Regression

Regression

  • Random Forest Regressor
  • Linear Regression

Project Structure

easy-mlops/
├── easy_mlops/
│   ├── __init__.py
│   ├── cli.py                 # CLI interface
│   ├── pipeline.py            # Main pipeline orchestrator
│   ├── config/                # Configuration management
│   ├── preprocessing/         # Data preprocessing
│   ├── training/              # Model training
│   ├── deployment/            # Model deployment
│   └── observability/         # Model monitoring
├── pyproject.toml
├── requirements.txt
└── README.md

Requirements

  • Python >= 3.8
  • click >= 8.0.0
  • pandas >= 1.3.0
  • scikit-learn >= 1.0.0
  • joblib >= 1.0.0
  • pyyaml >= 6.0
  • rich >= 10.0.0

Development

Running Tests

pytest

Code Formatting

black easy_mlops/

Documentation

Project documentation is powered by MkDocs and the Material theme. Source files live in docs/, and the site configuration is mkdocs.yml.

# Serve docs locally (http://localhost:8000)
make docs-serve

# Build static site into site/
make docs-build

The GitHub Actions workflow .github/workflows/docs.yml automatically builds and deploys the site to GitHub Pages on pushes to main. Enable GitHub Pages in the repository settings (source: “GitHub Actions”). For manual publishing or previews outside CI, run:

make docs-deploy

Type Checking

mypy easy_mlops/

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Author

Umberto Ciccia

Links

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

make_mlops_easy-0.1.1.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

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

make_mlops_easy-0.1.1-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file make_mlops_easy-0.1.1.tar.gz.

File metadata

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

File hashes

Hashes for make_mlops_easy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7527f21470ccaadaac635e6d3cfe7de2ccb9a4e472ada804317407493bc20583
MD5 01c881ddc5a7ae0bffc0f923d130436d
BLAKE2b-256 fad20f8ed8f682eaad21c3eaba03c28853c28692788b4520efd7f5e824e1150a

See more details on using hashes here.

Provenance

The following attestation bundles were made for make_mlops_easy-0.1.1.tar.gz:

Publisher: publish.yml on umbertocicciaa/easy-mlops

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

File details

Details for the file make_mlops_easy-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for make_mlops_easy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0eb0fdc9522ca3f7ad72bb104e882424117498fec0566fc2b2517ef7c8166e55
MD5 e520d9f199080ea0dc658a52a9cc2481
BLAKE2b-256 0d1418350ff7f2e3e467355243dc56d2194b6974017462bfc535c04b37398e1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for make_mlops_easy-0.1.1-py3-none-any.whl:

Publisher: publish.yml on umbertocicciaa/easy-mlops

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