DMMONA – Multi-Objective Meta-Optimizer with Neural Architecture Adaptation
Version: 1.0.0
Overview
DMMONA is a Python framework that optimizes ML model training on resource-constrained desktops. It continuously monitors system resources and uses a reinforcement learning (RL) meta controller to dynamically adjust hyperparameters, model architecture, and computation precision. This ensures efficient, adaptive, and stable training even on everyday hardware.
Key Features
- Real-Time Resource Monitoring: Tracks CPU and memory usage with
psutiland forecasts availability via a moving average. - RL-Based Meta Controller: A lightweight PyTorch model that generates adjustment signals from resource metrics.
- Dynamic Architecture Adaptation: Automatically prunes or expands network layers based on meta signals.
- Adaptive Precision Switching: Chooses the optimal precision mode (fp32, mixed, or quantized) according to current resources.
- Modular Design: Easily integrates into existing ML pipelines.
- Centralized Logging: Detailed logs are output to the console and saved to a log file.
Project Structure
DMMONA/
├── README.md # Project overview and usage instructions.
├── requirements.txt # Python dependencies.
├── config/
│ └── config.yaml # User-configurable parameters.
├── src/
│ ├── __init__.py # Package initializer.
│ ├── main.py # Entry point: loads config and starts training.
│ ├── resource_monitor.py # Monitors system resources and forecasts availability.
│ ├── meta_controller.py # RL-based meta controller that outputs adjustment signals.
│ ├── architecture_adaptation.py # Simulates dynamic model architecture adaptation.
│ ├── adaptive_precision.py # Selects computation precision mode based on resources.
│ ├── training_scheduler.py # Coordinates the training loop.
│ └── logger.py # Sets up centralized logging.
├── tests/ # Unit tests for each module.
│ ├── test_resource_monitor.py
│ ├── test_meta_controller.py
│ ├── test_architecture_adaptation.py
│ └── test_adaptive_precision.py
├── docs/
│ └── design_documentation.md # Detailed design documentation.
└── notebooks/
└── exploration.ipynb # Notebook for experiments and prototyping.
Installation
Prerequisites
- Python 3.7 or higher
- Git (optional, for cloning the repository)
Setup Instructions
-
Clone the Repository:
git clone https://github.com/your-username/dmmona.git cd dmmona
-
Create & Activate a Virtual Environment:
- Windows:
python -m venv venv .\venv\Scripts\activate
- macOS/Linux:
python3 -m venv venv source venv/bin/activate
- Windows:
-
Install Dependencies:
pip install -r requirements.txt
Usage
-
Configure the Project: Edit
config/config.yamlto set your dataset paths, training parameters, resource limits, and adaptation thresholds. -
Launch the Training Process:
python src/main.py -c config/config.yaml
The training loop will monitor system resources, adapt the model architecture, and adjust precision settings while logging progress.
-
Monitor Logs:
- Real-time logs appear in the console.
- Detailed logs are saved to
dmmona.log(configured insrc/logger.py).
Packaging & Distribution (Optional)
To package DMMONA as a Python package (for PyPI):
- Build the Package:
python setup.py sdist bdist_wheel
- Upload with Twine:
pip install twine twine upload dist/*
Users can then install DMMONA via:
pip install dmmona
Contributing
Contributions are welcome! To contribute:
- Fork the Repository.
- Clone Your Fork:
git clone https://github.com/your-username/dmmona.git cd dmmona
- Create a Branch:
git checkout -b feature-or-bugfix-name
- Commit & Push Your Changes:
git add . git commit -m "Description of changes" git push origin feature-or-bugfix-name
- Submit a Pull Request on GitHub.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Metadata
Release files for dmmona 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dmmona-1.0.0.tar.gz | 7.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dmmona-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.2 kB
Release files / dmmona-1.0.0.tar.gz
| Download URL | dmmona-1.0.0.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0699cbc96e8d2bab71a456c8096a4db7dcd340e07cbf8ed6888da4d16ee0b702
|
|
BLAKE2b-256 checksum How to use checksums |
c8b6b9c5eacbfa12921153e541681486d6652375fb5d7e8e4ce00b4d1666b6a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Release files / dmmona-1.0.0-py3-none-any.whl
| Download URL | dmmona-1.0.0-py3-none-any.whl |
|---|---|
| Size | 4.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f37f816ed43440a09117822d014126e2bac6b8969f5da4cb07768f2f6701373
|
|
BLAKE2b-256 checksum How to use checksums |
d6671acc60bcb9edb13cb1d4eb4024f992d61253b0319c5e2796c8f18877dacc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|