Workflow:ARISE Initiative Robomimic Hyperparameter Sweep
| Knowledge Sources | |
|---|---|
| Domains | Robot_Learning, Experiment_Management, Hyperparameter_Optimization |
| Last Updated | 2026-02-15 07:30 GMT |
Overview
End-to-end process for systematically sweeping hyperparameters across robomimic training runs by generating configuration variants and a launch script from a base experiment configuration.
Description
This workflow enables systematic exploration of the hyperparameter space for robot learning algorithms. Starting from a base JSON configuration that defines a complete experiment, users specify which parameters to sweep and their candidate values using the ConfigGenerator utility. Parameters can be grouped so that coupled settings vary together (e.g., RNN horizon and sequence length). The generator produces a combinatorial set of JSON config files and a shell script that launches all resulting training runs. This approach supports reproducible experiment design for benchmark studies and algorithm development.
Usage
Execute this workflow when you need to compare different hyperparameter settings for a given algorithm and task. Common scenarios include: tuning learning rates and network architectures for a new task, comparing algorithm variants (e.g., GMM vs. deterministic policy), running the full benchmark experiments from the robomimic paper, and ablation studies over model capacity or training parameters.
Execution Steps
Step 1: Base Configuration Creation
Prepare a base JSON configuration file that specifies a complete, valid experiment setup. This includes the algorithm name, dataset path, observation modalities, network architecture, training parameters, and evaluation settings. The base config serves as the template from which all sweep variants are derived. It can be created from the default algorithm templates, exported from a programmatic config, or obtained from a previous training run.
Key considerations:
- The base config must be a complete, runnable configuration
- Only parameters that differ from defaults need to be included
- The config file path determines where generated variant configs are stored (same directory)
- Algorithm-specific default templates are available in robomimic/exps/templates/
Step 2: Sweep Parameter Definition
Define the hyperparameters to sweep by modifying the make_generator function in the hyperparam_helper script. Each parameter is specified with a hierarchical key path (using "/" or "." separators), a short name for experiment naming, a group number for coupled parameters, and a list of candidate values. Parameters in the same group vary together (their value lists must have equal length), while parameters in different groups are combined combinatorially.
Key considerations:
- Group number 0 is typically used for fixed overrides that apply to all variants
- Value names can be provided for human-readable experiment naming when values are complex
- The total number of generated configs equals the product of unique value counts across groups
- Common sweep targets include learning rate, network dimensions, RNN settings, and loss weights
Step 3: Configuration Generation
Run the ConfigGenerator to produce all configuration variants and a shell launch script. For each combination of parameter values, the generator creates a new JSON config by copying the base config and applying the parameter overrides. Each generated config is named using the parameter short names and values for easy identification. The shell script contains one training command per config variant.
Key considerations:
- Generated JSON files are placed in the same directory as the base config
- Experiment names in generated configs incorporate the swept parameter values
- The shell script uses the standard train.py entry point for each run
- The generator reports the total number of configs to be created before writing
Step 4: Parallel Training Launch
Execute the generated shell script to launch all training runs. Each run is an independent invocation of the training pipeline with its own config file. Runs can be parallelized across multiple GPUs or machines by splitting the shell script. Results are written to separate output directories identified by experiment name and timestamp.
Key considerations:
- Each training run is fully independent and can be distributed across compute resources
- GPU assignment can be managed by modifying the shell script or using job schedulers
- The paper experiment configs can be generated via the generate_paper_configs script
- Results across sweep runs can be compared using TensorBoard or Weights & Biases