Skip to main content

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
    

Metadata

Release files for nauticml 0.1.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 nauticml 0.1.0
File Size Uploaded
nauticml-0.1.0.tar.gz 15.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nauticml 0.1.0
File Interpreter ABI Platform
nauticml-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.2 kB

Release files / nauticml-0.1.0.tar.gz

Download URL nauticml-0.1.0.tar.gz
Size 15.0 kB
Tags Source
SHA-256 checksum
How to use checksums
067212d4a47353c18a3947421e810e30f9b2b5fc169fd313488af152776a4458
BLAKE2b-256 checksum
How to use checksums
76ec0bfdeacfece9e19f8ec5d037264b0e56f756af4892755eac82406dccb0fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.2

Release files / nauticml-0.1.0-py3-none-any.whl

Download URL nauticml-0.1.0-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1bbe10bfc134569c118ab4e95a9357ba12e30d832045f8cc0e34d95f00e0182
BLAKE2b-256 checksum
How to use checksums
ecb1c8656c71e023c925cfe848e19db736993cfbfab0c9c6d0e0bb3bf7c8953b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

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