Skip to main content

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 psutil and 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

  1. Clone the Repository:

    git clone https://github.com/your-username/dmmona.git
    cd dmmona
    
  2. Create & Activate a Virtual Environment:

    • Windows:
      python -m venv venv
      .\venv\Scripts\activate
      
    • macOS/Linux:
      python3 -m venv venv
      source venv/bin/activate
      
  3. Install Dependencies:

    pip install -r requirements.txt
    

Usage

  1. Configure the Project: Edit config/config.yaml to set your dataset paths, training parameters, resource limits, and adaptation thresholds.

  2. 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.

  3. Monitor Logs:

    • Real-time logs appear in the console.
    • Detailed logs are saved to dmmona.log (configured in src/logger.py).

Packaging & Distribution (Optional)

To package DMMONA as a Python package (for PyPI):

  1. Build the Package:
    python setup.py sdist bdist_wheel
    
  2. Upload with Twine:
    pip install twine
    twine upload dist/*
    

Users can then install DMMONA via:

pip install dmmona

Contributing

Contributions are welcome! To contribute:

  1. Fork the Repository.
  2. Clone Your Fork:
    git clone https://github.com/your-username/dmmona.git
    cd dmmona
    
  3. Create a Branch:
    git checkout -b feature-or-bugfix-name
    
  4. Commit & Push Your Changes:
    git add .
    git commit -m "Description of changes"
    git push origin feature-or-bugfix-name
    
  5. 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)

Source distribution for dmmona 1.0.0
File Size Uploaded
dmmona-1.0.0.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmmona 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page