Skip to main content

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


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dmmona-1.0.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dmmona-1.0.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

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

Hashes for dmmona-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0699cbc96e8d2bab71a456c8096a4db7dcd340e07cbf8ed6888da4d16ee0b702
MD5 51b9d9e811e7e515ceffc9fcf911ecc2
BLAKE2b-256 c8b6b9c5eacbfa12921153e541681486d6652375fb5d7e8e4ce00b4d1666b6a7

See more details on using hashes here.

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

Hashes for dmmona-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f37f816ed43440a09117822d014126e2bac6b8969f5da4cb07768f2f6701373
MD5 84982648ddb82511c3436c3f65f6810f
BLAKE2b-256 d6671acc60bcb9edb13cb1d4eb4024f992d61253b0319c5e2796c8f18877dacc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page