Skip to main content

Quickly create ML experiments with standardized folder

Project description

Overview

Quickly create ML experiments with standardized folder structures and tools for implementing key aspects of MLOps throughout your project's lifecycle from folder set up to model training, evaluation, hyperparameter tuning; model serving, demo, drift detection and continuous training.

Use Cases

  • Starting new ML projects - Get a professional structure instantly
  • Team standardization - Ensure consistent project layouts
  • MLOps best practices - Built-in separation of concerns
  • Rapid prototyping - Focus on code, not folder setup
  • Educational purposes - Learn MLOps project organization

Installation

pip install mlops-bydesign-quickstart

Quick Start

1. Create a YAML Configuration File

Create a file named my_experiment_modules.yaml (you can copy example below into a .yaml file):

module_names:
  data_ingestion:
    - load_data
    - validate_data
    - preprocess_data
  
  feature_engineering:
    - create_features
    - select_features
    - transform_features
  
  model_training:
    - train_model
    - tune_hyperparameters
    - cross_validate
  
  model_evaluation:
    - evaluate_model
    - generate_metrics
    - create_reports
  
  model_deployment:
    - save_model
    - deploy_model
    - monitor_performance
  
  drift_detection:
    - detect_data_drift
    - detect_model_drift
    - alert_system
  
  continuous_training:
    - retrain_pipeline
    - update_models
    - validate_improvements

root_files:
  - README.md
  - requirements.txt
  - config.yaml
  - .gitignore

2. Generate Your Project Structure

from mlops_bydesign_quickstart import create_experiment

# Create the complete MLOps project structure
create_experiment("my_project.yaml")

3. Result

Your project structure will be created:

ml_pipeline/
├── data_ingestion/
│   ├── __init__.py
│   ├── load_data.py
│   ├── validate_data.py
│   └── preprocess_data.py
├── feature_engineering/
│   ├── __init__.py
│   ├── create_features.py
│   ├── select_features.py
│   └── transform_features.py
├── model_training/
│   ├── __init__.py
│   ├── train_model.py
│   ├── tune_hyperparameters.py
│   └── cross_validate.py
├── model_evaluation/
│   ├── __init__.py
│   ├── evaluate_model.py
│   ├── generate_metrics.py
│   └── create_reports.py
├── model_deployment/
│   ├── __init__.py
│   ├── save_model.py
│   ├── deploy_model.py
│   └── monitor_performance.py
├── drift_detection/
│   ├── __init__.py
│   ├── detect_data_drift.py
│   ├── detect_model_drift.py
│   └── alert_system.py
└── continuous_training/
    ├── __init__.py
    ├── retrain_pipeline.py
    ├── update_models.py
    └── validate_improvements.py

README.md
requirements.txt
config.yaml
.gitignore

Function Parameters

create_experiment(
    yaml_path,              # Path to your YAML configuration file
    module_count=10,        # Number of modules to include (default: 10)
    module_entries="module_names",   # YAML key for modules (default: "module_names")
    root_entries="root_files"        # YAML key for root files (default: "root_files")
)

Example: Custom Configuration

from mlops_bydesign_quickstart import create_experiment

# Use custom parameters
create_experiment(
    "custom_project.yaml",
    module_count=5,  # Only include first 5 modules
    module_entries="modules",
    root_entries="files"
)

YAML Configuration Guide

Basic Structure

module_names:
  ml_module_folder_name1:
    - python_file_1
    - python_file_2
    - python_file_3
  ml_module_folder_name2:
    - python_file_1
  ml_module_folder_name3: []
  non_ml_module_folder_name: []

root_files:
  - file_1.txt
  - file_2.md
  - .env

Features

  • ✅ Automated folder and file creation
  • ✅ Standardized MLOps project structure
  • ✅ Customizable via YAML configuration
  • ✅ Automatic __init__.py generation for Python packages
  • ✅ Prevention of duplicate project creation
  • ✅ Support for nested module structures

Requirements

  • Python >= 3.8
  • PyYAML >= 6.0

License

MIT License

Contributing

Contributions welcome! Visit the GitHub repository to contribute.

Author

Abel Akeni holds an MSc in Applied Artificial Intelligence and Data Science and has a wealth of expertise acquired through 10+ years of handling progressively complex analytical leadership roles and products within data-sensitive public and private sector environments. He has built production-grade AI systems end-to-end using Python's scientific computing stack (pandas, scikit-learn, PyTorch, statsmodels, dash), developed ETL (Extract, Transform and Load) data engineering pipelines with SQL and Databricks, and integrated Large Language Models (LLMs), machine learning and deep learning models including Long Short-Term Memory (LSTM) neural networks, and various classification algorithms into production systems with robust MLOps, model monitoring and workflow orchestration.

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

mlops_bydesign_quickstart-0.1.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

mlops_bydesign_quickstart-0.1.1-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for mlops_bydesign_quickstart-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8c68d165760695f45ab7d01b2c5bb2abc4bc7266536bd9f0f4abbd02bb77b6f4
MD5 fa2cf7f9ff20399f936bd896ef85898c
BLAKE2b-256 87b7e5d152a164f3b127770fdeea8d586e3c8086f103666d750c27081793120f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlops_bydesign_quickstart-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 92c6c0fc45a3ac7a820fbef08527cfc7c978495d62b1a0abf6c5907e63960227
MD5 00e5145ca6d0f517a2888b511d74fda1
BLAKE2b-256 72940c4b6c764589fabbf1356e3931674b88dfdf334dff439d73027aa25c742c

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