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__.pygeneration 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mlops_bydesign_quickstart-0.1.2.tar.gz.
File metadata
- Download URL: mlops_bydesign_quickstart-0.1.2.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62454623656232ca7be1e313b0628d82430f6fd9b6c2ebdbc14fe2faab71425b
|
|
| MD5 |
998a1a74352c45c336b32e602b7dc74c
|
|
| BLAKE2b-256 |
e2b8b1a4d346482f14b7f7211d9e1caeabfe0260c8acf8c78177abaac7fd1ffa
|
File details
Details for the file mlops_bydesign_quickstart-0.1.2-py3-none-any.whl.
File metadata
- Download URL: mlops_bydesign_quickstart-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
147fd70586ecfaeb2798e96721b7dc91da1c98a5503988a9312e3512df9439fb
|
|
| MD5 |
aaa184206132e5be65eed162b6dd1067
|
|
| BLAKE2b-256 |
7ce3cc411f84c383b379a3e2e98c6dcf85cbec1d7032dc89a393c688631da7ff
|