Dynamic Multi-Objective Meta-Optimizer with Neural Architecture Adaptation
Project description
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.
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 dmmona-1.0.0.tar.gz.
File metadata
- Download URL: dmmona-1.0.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0699cbc96e8d2bab71a456c8096a4db7dcd340e07cbf8ed6888da4d16ee0b702
|
|
| MD5 |
51b9d9e811e7e515ceffc9fcf911ecc2
|
|
| BLAKE2b-256 |
c8b6b9c5eacbfa12921153e541681486d6652375fb5d7e8e4ce00b4d1666b6a7
|
File details
Details for the file dmmona-1.0.0-py3-none-any.whl.
File metadata
- Download URL: dmmona-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f37f816ed43440a09117822d014126e2bac6b8969f5da4cb07768f2f6701373
|
|
| MD5 |
84982648ddb82511c3436c3f65f6810f
|
|
| BLAKE2b-256 |
d6671acc60bcb9edb13cb1d4eb4024f992d61253b0319c5e2796c8f18877dacc
|