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
-
Clone the repository
% git clone <repository-url> % cd nauticML
-
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
-
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)
-
Configure your experiment
Edit
config.yamlto set up your experiment parameters:- Dataset configuration
- Model architecture and hyperparameters
- Bayesian optimization search space
- Training and evaluation settings
-
Run the optimization pipeline
python run.pyThis 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:
- Ensure CUDA-compatible GPU is available
- Configure GPU devices in
config.yaml:experiment: gpus: [0, 1] # Use GPU 0 and 1
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
067212d4a47353c18a3947421e810e30f9b2b5fc169fd313488af152776a4458
|
|
| MD5 |
e3a3dee170ee73e37c21f86487ff2bdd
|
|
| BLAKE2b-256 |
76ec0bfdeacfece9e19f8ec5d037264b0e56f756af4892755eac82406dccb0fb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1bbe10bfc134569c118ab4e95a9357ba12e30d832045f8cc0e34d95f00e0182
|
|
| MD5 |
8744fe4c6c1c2303bedb704d850e61bc
|
|
| BLAKE2b-256 |
ecb1c8656c71e023c925cfe848e19db736993cfbfab0c9c6d0e0bb3bf7c8953b
|