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:
  00_config:
    - config_file
  01_data_ingestion_and_cleaning:
  02_exploratory_data_analysis:
  03_feature_engineering:
  04_feature_selection:
  05_data_preprocessing:
  06_model_training_and_evaluation:
    - training
    - evaluation
    - hyperparameter_tuning
  07_mlops_model_monitoring:
    - drift_detection
    - experiments_log_tracking
    - artifact_tracking
  08_model_serving:
    - api_deployment
    - batch_inference_pipeline
  09_mlops_orchestration:
  ml_pipeline: []
  assets: []
  layouts: []
  test_suite: []
  documentation: []

root_entries:
  - app.py
  - .env
  - 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:

assets/
└── __init__.py

layouts/
└── __init__.py

test_suite/
└── __init__.py

documentation/
└── __init__.py

ml_pipeline/
├── 00_config/
│   ├── __init__.py
│   └── config_file.py
├── 01_data_ingestion_and_cleaning/
│   └── __init__.py
├── 02_exploratory_data_analysis/
│   └── __init__.py
├── 03_feature_engineering/
│   └── __init__.py
├── 04_feature_selection/
│   └── __init__.py
├── 05_data_preprocessing/
│   └── __init__.py
├── 06_model_training_and_evaluation/
│   ├── __init__.py
│   ├── training.py
│   ├── evaluation.py
│   └── hyperparameter_tuning.py
├── 07_mlops_model_monitoring/
│   ├── __init__.py
│   ├── drift_detection.py
│   ├── experiments_log_tracking.py
│   └── artifact_tracking.py
├── 08_model_serving/
│   ├── __init__.py
│   ├── api_deployment.py
│   └── batch_inference_pipeline.py
└── 09_mlops_orchestration/
    └── __init__.py

app.py
.env
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.2.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.2-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for mlops_bydesign_quickstart-0.1.2.tar.gz
Algorithm Hash digest
SHA256 62454623656232ca7be1e313b0628d82430f6fd9b6c2ebdbc14fe2faab71425b
MD5 998a1a74352c45c336b32e602b7dc74c
BLAKE2b-256 e2b8b1a4d346482f14b7f7211d9e1caeabfe0260c8acf8c78177abaac7fd1ffa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlops_bydesign_quickstart-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 147fd70586ecfaeb2798e96721b7dc91da1c98a5503988a9312e3512df9439fb
MD5 aaa184206132e5be65eed162b6dd1067
BLAKE2b-256 7ce3cc411f84c383b379a3e2e98c6dcf85cbec1d7032dc89a393c688631da7ff

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