Skip to main content

A configuration-driven orchestration framework for neural-network design space exploration.

Project description

nauticML

An orchestration framework for co-optimizing neural network models on hardware platforms.

Installation

Prerequisites

  • Docker
  • Conda (or miniconda)
  • GPU support (optional, but recommended)

Setup Steps

  1. Clone the repository

    % git clone <repository-url>
    % cd nauticML
    
  2. Create Conda Development Environment

    To install (just once):

     % conda env create -f environment.yml
     % bash conda/post-install.sh nauticML 
    

    Once it is created:

    conda activate nauticML
    
  3. Start Prefect and PostgreSQL services

    Use Docker Compose to launch the Prefect server and PostgreSQL database:

    docker compose up -d
    

    This will start:

    • PostgreSQL Database (port not exposed, internal use only)
    • Prefect Server (accessible at http://localhost:4200)
  4. Configure your experiment

    Edit config.yaml to set up your experiment parameters:

    • Dataset configuration
    • Model architecture and hyperparameters
    • Bayesian optimization search space
    • Training and evaluation settings
  5. Run the optimization pipeline

    python run.py
    

    This will:

    • Initialize the experiment
    • Load the dataset
    • Run Bayesian optimization iterations
    • Build and train Bayesian models
    • Evaluate model performance
    • Track results in Prefect

Configuration

The config.yaml file controls all experiment parameters:

experiment:
  seed: 42                    # Random seed for reproducibility
  save_dir: ./results         # Directory for saving results
  gpus: [0]                   # GPU device IDs to use

dataset:
  name: mnist                 # Dataset name

model:
  name: lenet                 # Model architecture
  is_quant: false            # Enable quantization
  dropout_rate: 0.4          # Dropout rate
  num_bayes_layer: 3         # Number of Bayesian layers

bayes_opt:
  num_iter: 3                # Number of optimization iterations
  tunable:                   # Hyperparameters to optimize
    dropout_rate:
      space: [0.1, 0.2, 0.3, 0.4]
    p_rate:
      space: [0.0, 0.1, 0.2]
    num_bayes_layer:
      space: [1, 2, 3]

Running Experiments

Local Execution

python run.py

Monitor with Prefect UI

After starting Docker Compose, access the Prefect UI at:

http://localhost:4200

The UI provides:

  • Real-time flow execution monitoring
  • Task logs and performance metrics
  • Experiment history and results

Results

Results are saved to the configured save_dir (default: ./results):

  • Model checkpoints
  • Training logs
  • Evaluation metrics
  • Optimization summaries

Project Structure

nauticML/
├── nautic/                 # Core framework
├── tasks/                  # Reusable built-in tasks
├── projects/
│   └── heart25/            # Student project and experiments
├── docker-compose.yaml     # Service definitions
└── requirements.txt        # Python dependencies

GPU Support

To use GPU acceleration:

  1. Ensure CUDA-compatible GPU is available
  2. Configure GPU devices in config.yaml:
    experiment:
      gpus: [0, 1]  # Use GPU 0 and 1
    

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

nauticml-0.1.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

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

nauticml-0.1.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file nauticml-0.1.0.tar.gz.

File metadata

  • Download URL: nauticml-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.2

File hashes

Hashes for nauticml-0.1.0.tar.gz
Algorithm Hash digest
SHA256 067212d4a47353c18a3947421e810e30f9b2b5fc169fd313488af152776a4458
MD5 e3a3dee170ee73e37c21f86487ff2bdd
BLAKE2b-256 76ec0bfdeacfece9e19f8ec5d037264b0e56f756af4892755eac82406dccb0fb

See more details on using hashes here.

File details

Details for the file nauticml-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nauticml-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.2

File hashes

Hashes for nauticml-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1bbe10bfc134569c118ab4e95a9357ba12e30d832045f8cc0e34d95f00e0182
MD5 8744fe4c6c1c2303bedb704d850e61bc
BLAKE2b-256 ecb1c8656c71e023c925cfe848e19db736993cfbfab0c9c6d0e0bb3bf7c8953b

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