# yukun-guo/modelgardener architecture

> Architecture diagram of the GitHub repository yukun-guo/modelgardener, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yukun-guo/modelgardener
- Repository: https://github.com/yukun-guo/modelgardener

## Overview

ModelGardener turns YAML-defined ML projects into configured workflows for data preparation, training, evaluation, prediction, and deployment. The principal CLI path loads project configuration, constructs an EnhancedTrainer, and dispatches training or inference; script generation is a parallel capability for producing standalone workflow scripts. Data loaders and preprocessing feed model execution, while trained models and reports are persisted as artifacts. The README documents interactive project/configuration management, preview, auto-discovery, and multi-format deployment; those capabilities are represented at their documented subsystem paths. Detailed wiring for unsampled modules is not inferred.

Main entry points: [`src/modelgardener/enhanced_trainer.py`](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/enhanced_trainer.py) (Training and inference), [`src/modelgardener/modelgardener_cli.py`](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/modelgardener_cli.py) (CLI workflows), [`src/modelgardener/script_generator.py`](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/script_generator.py) (Model deployment), [`src/modelgardener/cli.py`](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/cli.py) (Command-line interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["CLI and Projects"]
  node_cli["Command-line interface<br/>[cli.py]"]
  node_commands["CLI workflows"]
  node_config["Configuration management<br/>[config_manager.py]"]
  node_project["Project setup<br/>[helper_funcs.py]"]
  node_generator["Script generation"]
  node_custom["Custom function loading"]
end

subgraph group_data["Data Preparation"]
  node_loader["Dataset loading"]
  node_preprocess["Preprocessing pipeline"]
  node_preview["Data preview"]
end

subgraph group_ml["Model Workflows"]
  node_builder["Training components"]
  node_model_builder["Model construction"]
  node_trainer["Training and inference"]
  node_runtime["Runtime configuration"]
  node_bridge["Training callbacks<br/>[bridge_callback.py]"]
end

subgraph group_outputs["Artifacts and Deployment"]
  node_models["Saved model files"]
  node_reports["Evaluation and prediction reports"]
  node_deployment["Model deployment"]
end

node_user(("ML practitioner"))
node_data_source["Project datasets"]
node_formats["Deployment formats"]

node_user -->|"runs commands"| node_cli
node_cli -->|"dispatches"| node_commands
node_commands -->|"loads configuration"| node_config
node_commands -->|"creates projects"| node_project
node_commands -->|"generates scripts"| node_generator
node_commands -->|"loads extensions"| node_custom
node_commands -->|"runs workflows"| node_trainer
node_commands -->|"previews samples"| node_preview
node_data_source -->|"provides data"| node_loader
node_loader -->|"prepares samples"| node_preprocess
node_preprocess -->|"supplies processed data"| node_trainer
node_trainer -->|"assembles training"| node_builder
node_trainer -->|"builds models"| node_model_builder
node_trainer -->|"configures execution"| node_runtime
node_trainer -->|"uses callbacks"| node_bridge
node_trainer -->|"saves models"| node_models
node_trainer -->|"writes results"| node_reports
node_generator -->|"generates deployment script"| node_deployment
node_deployment -.->|"converts and serves"| node_formats
node_models -.->|"loads model"| node_deployment

click node_cli "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/cli.py"
click node_commands "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/modelgardener_cli.py"
click node_config "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/config_manager.py"
click node_project "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/helper_funcs.py"
click node_generator "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/script_generator.py"
click node_custom "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/custom_functions_loader.py"
click node_loader "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/scalable_dataset_loader.py"
click node_preprocess "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/preprocessing_pipeline.py"
click node_preview "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/modelgardener_cli.py"
click node_builder "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/training_components_builder.py"
click node_model_builder "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/enhanced_model_builder.py"
click node_trainer "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/enhanced_trainer.py"
click node_runtime "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/runtime_configurator.py"
click node_bridge "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/bridge_callback.py"
click node_deployment "https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/script_generator.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_commands,node_config,node_project,node_generator,node_custom toneBlue
class node_loader,node_preprocess,node_preview toneAmber
class node_builder,node_model_builder,node_trainer,node_runtime,node_bridge toneMint
class node_models,node_reports,node_deployment toneRose
class node_user,node_data_source,node_formats toneIndigo
```

## Components

### CLI and Projects

- [Command-line interface](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/cli.py): `src/modelgardener/cli.py`
- [CLI workflows](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/modelgardener_cli.py): `src/modelgardener/modelgardener_cli.py`
- [Configuration management](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/config_manager.py): `src/modelgardener/config_manager.py`
- [Project setup](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/helper_funcs.py): `src/modelgardener/helper_funcs.py`
- [Script generation](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/script_generator.py): `src/modelgardener/script_generator.py`
- [Custom function loading](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/custom_functions_loader.py): `src/modelgardener/custom_functions_loader.py`

### Data Preparation

- [Dataset loading](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/scalable_dataset_loader.py): `src/modelgardener/scalable_dataset_loader.py`
- [Preprocessing pipeline](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/preprocessing_pipeline.py): `src/modelgardener/preprocessing_pipeline.py`
- [Data preview](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/modelgardener_cli.py): `src/modelgardener/modelgardener_cli.py`

### Model Workflows

- [Training components](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/training_components_builder.py): `src/modelgardener/training_components_builder.py`
- [Model construction](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/enhanced_model_builder.py): `src/modelgardener/enhanced_model_builder.py`
- [Training and inference](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/enhanced_trainer.py): `src/modelgardener/enhanced_trainer.py`
- [Runtime configuration](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/runtime_configurator.py): `src/modelgardener/runtime_configurator.py`
- [Training callbacks](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/bridge_callback.py): `src/modelgardener/bridge_callback.py`

### Artifacts and Deployment

- **Saved model files**
- **Evaluation and prediction reports**
- [Model deployment](https://github.com/yukun-guo/modelgardener/blob/main/src/modelgardener/script_generator.py): `src/modelgardener/script_generator.py`

### Other components

- **ML practitioner**
- **Project datasets**
- **Deployment formats**

## Connections

- ML practitioner → Command-line interface: runs commands
- Command-line interface → CLI workflows: dispatches
- CLI workflows → Configuration management: loads configuration
- CLI workflows → Project setup: creates projects
- CLI workflows → Script generation: generates scripts
- CLI workflows → Custom function loading: loads extensions
- CLI workflows → Training and inference: runs workflows
- CLI workflows → Data preview: previews samples
- Project datasets → Dataset loading: provides data
- Dataset loading → Preprocessing pipeline: prepares samples
- Preprocessing pipeline → Training and inference: supplies processed data
- Training and inference → Training components: assembles training
- Training and inference → Model construction: builds models
- Training and inference → Runtime configuration: configures execution
- Training and inference → Training callbacks: uses callbacks
- Training and inference → Saved model files: saves models
- Training and inference → Evaluation and prediction reports: writes results
- Script generation → Model deployment: generates deployment script
- Model deployment → Deployment formats: converts and serves
- Saved model files → Model deployment: loads model
