Skip to main content

A tool for automating Weights & Biases sweep creation and management

Project description

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!

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

easysweeps-0.9.0.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

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

easysweeps-0.9.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file easysweeps-0.9.0.tar.gz.

File metadata

  • Download URL: easysweeps-0.9.0.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for easysweeps-0.9.0.tar.gz
Algorithm Hash digest
SHA256 1d53426fd92d20e2a4f251bc5f6d4b5358b85cd0bdcb78e13f50e8dd9cadda50
MD5 596bb6529ae3f80c3cd2d03bd9e0fb5a
BLAKE2b-256 dbe538193cc9da984f4b408103316f1d6582da9db83afbbb398ff99f0110105e

See more details on using hashes here.

File details

Details for the file easysweeps-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: easysweeps-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for easysweeps-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebfcbb8314c75c508bad0bb63eceef5c5a1758e5f4f877ec0d4d6cb827c8a8ff
MD5 f0d8ecf444e91d030839d1c8ff64982c
BLAKE2b-256 f6c2c4e0810873a368cd80f7f00f2b58d5ce36b66fa5f72594d55fa7a571336d

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