Skip to main content
EasySweeps Header

PyPI version Downloads License: MIT All Contributors Documentation

EasySweeps - A CLI tool for automating Weights & Biases sweeps across multiple GPUs.

Watch EasySweeps quick usage video

Watch the video

Why EasySweeps?

W&B is great for experiment tracking, but managing sweeps at scale has pain points:

  • Repetitive setup – Launching sweeps across datasets requires manual duplication
  • Limited agent control – No built-in way to stop agents by GPU or sweep
  • Manual management – Multi-GPU sweep orchestration requires custom scripts

EasySweeps solves these by providing simple commands to create, launch, monitor, and manage sweep agents.

Installation

pip install easysweeps

Requirements: Python 3.7+, W&B account, CUDA GPUs (optional)

Quick Start

# Initialize project structure
ez init

# Create sweeps from the template and variant in the "sweeps" directory
ez sweep

# Launch agents
ez agent <SWEEP_ID> --gpu-list 0 1 2

# Monitor status of sweeps and agents
ez status

# Kill agents on specific GPU
ez kill --sweep <SWEEP_ID> --gpu <gpu-number>

Configuration

After running ez init a file named ez_config.yaml is built. This file defines the structure of your project:

sweep_dir: "sweeps"          # Directory for sweep template and variants files
agent_log_dir: "agent_logs"  # Directory for agent logs
entity: "your_entity"        # W&B entity (null = current user logged in to wandb)
project: "your_project"      # W&B project name

Commands

ez init

Scaffolds project structure with config file and example templates.

ez sweep

Creates W&B sweeps from a template and variants file.

The folder with the template and variants files is configured in the ez_config.yaml file.

Why Templates & Variants?

When running hyperparameter sweeps across multiple datasets or environments, you often want:

  • Separate sweeps per dataset – Avoid mixing data from different distributions, which can skew optimization
  • Shared hyperparameter configurations – Reuse the same search space and method across datasets
  • DRY principle – Maintain one template instead of duplicating configs for each dataset

For example, if optimizing learning rate and batch size for both MNIST and CIFAR-10, you don't want the optimizer to see loss data from both datasets together. Instead, EasySweeps creates isolated sweeps for each dataset using the same hyperparameter template.

Template (sweeps/sweep_template.yaml):

name: "example_{dataset}" # Will create one sweep per dataset
method: "grid"
metric:
  name: "loss"
  goal: "minimize"
parameters:
  learning_rate:
    values: [0.001, 0.01]
  dataset:
    value: None  # Replaced by variants
program: "train.py"

Variants (sweeps/sweep_variants.yaml):

dataset: ['mnist', 'cifar10']  # Creates one sweep configuration per dataset

ez agent

Launches sweep agents on specified GPUs as systemd scope units.

ez agent                                # List available sweeps
ez agent abc123 --gpu-list 0 1 2        # Launch on GPUs 0,1,2
ez agent abc123 --gpu-list 0 --agents-per-sweep 3  # 3 agents on GPU 0

ez status

Shows all sweeps and running agents with GPU assignments and runtime.

ez kill

Stops running agents with flexible targeting.

ez kill                         # List active sweeps
ez kill --force                 # Kill all agents
ez kill --gpu 0                 # Kill agents on GPU 0
ez kill --sweep abc123          # Kill agents for specific sweep
ez kill --sweep abc123 --gpu 0  # Target specific sweep + GPU

Examples

How to use examples:

cd example
ez init
ez sweep
ez agent <sweep_id> --gpu-list 0 1 2

Contributors ✨

EasySweeps is built and maintained by:


Yaniv Galron

💻 🔌

Ron Tohar

💻 🔌

License

MIT License - see LICENSE for details.


⭐ If you find this helpful, a star would be appreciated!

Metadata

Release files for easysweeps 0.9.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 easysweeps 0.9.0
File Size Uploaded
easysweeps-0.9.0.tar.gz 25.6 kB Details

Built distribution (wheel)

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

Total release size: 41.9 kB

Release files / easysweeps-0.9.0.tar.gz

Download URL easysweeps-0.9.0.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1d53426fd92d20e2a4f251bc5f6d4b5358b85cd0bdcb78e13f50e8dd9cadda50
BLAKE2b-256 checksum
How to use checksums
dbe538193cc9da984f4b408103316f1d6582da9db83afbbb398ff99f0110105e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / easysweeps-0.9.0-py3-none-any.whl

Download URL easysweeps-0.9.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ebfcbb8314c75c508bad0bb63eceef5c5a1758e5f4f877ec0d4d6cb827c8a8ff
BLAKE2b-256 checksum
How to use checksums
f6c2c4e0810873a368cd80f7f00f2b58d5ce36b66fa5f72594d55fa7a571336d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

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