EasyWAM uses Hydra to compose training, data, model, and task configuration. This directory explains how the configuration groups fit together and how to tune them without copying an entire task file.
configs/
├── train.yaml # Global training and model-execution defaults
├── data/ # Dataset, processor, cameras, and normalization
├── model/
│ ├── backbone/ # Backbone paths, dimensions, and attention settings
│ ├── lora/ # LoRA adapter settings
│ └── easywam_*.yaml # EasyWAM architecture definitions
├── task/ # Ready-to-run data + model + training recipes
└── benchmark/sim_*.yaml # Benchmark evaluation defaults
configs/train.yaml is the root training configuration. A task config overrides its data and model groups and then applies benchmark-specific training values. Model configs compose a backbone and, for LoRA recipes, a LoRA config.
train.yaml
└── task=libero_easywam_mot_wan22_lora
├── data=libero
└── model=easywam_mot_wan22_lora
├── backbone=wan22
└── lora=video_dit
Use a task recipe for normal training and evaluation. Override data= or model= directly only when building a new recipe and after checking that action/state dimensions and backbone dimensions remain compatible.
Create configs/task/<dataset>_easywam_<architecture>_<backbone>.yaml. The task selects an existing data config and model config; it does not duplicate their camera, normalization, or architecture settings. For example, the RoboCasa MoT-Joint recipe is:
# @package _global_
defaults:
- override /data: robocasa
- override /model: easywam_mot_joint_wan22
- _self_
batch_size: 16
num_workers: 8
lr_scheduler_type: cosine
learning_rate: 1e-4
max_steps: 30000
log_every: 100
save_every: 3000
eval_every: 1000
eval_num_inference_steps: 10
gradient_accumulation_steps: 1
weight_decay: 1e-2
resume: nullKeep _self_ after the group overrides so task values take precedence. RoboTwin, RoboCasa, and RoboDojo each ship five Wan2.2 architectures: mot, hidden, unified, mot_joint, and mot_idm; RoboCasa and RoboDojo use the same training values as RoboTwin. LIBERO retains its broader set of task recipes. The absence of a prewritten _lora task for another dataset does not remove LoRA support: create a task selecting the matching _lora model. To add another dataset, first define its configs/data/<dataset>.yaml and verify the action/state dimensions against the selected model, then create the task file. Check the result with python scripts/train.py --cfg job task=<task-name> before precomputing text embeddings or training. See training configuration for the meaning of each field.
Print the fully composed training configuration without starting a run:
python scripts/train.py --cfg job task=libero_easywam_mot_wan22Hydra overrides use dotted keys. Later command-line values take precedence over values composed from train.yaml and the task:
NPROC_PER_NODE=8 bash scripts/train_zero1.sh \
task=libero_easywam_mot_wan22 \
batch_size=12 \
learning_rate=5e-5 \
model.loss.lambda_action=2.0 \
model.backbone.attention_backend=autoQuote list overrides so that the shell does not interpret brackets:
python experiments/libero_plus/run_libero_plus_manager.py \
task=libero_easywam_mot_wan22 \
'MULTIRUN.task_suite_names=[libero_spatial]' \
'MULTIRUN.categories=[camera,light]'Hydra does not change the working directory in this project (hydra.job.chdir=false), so relative dataset, checkpoint, cache, and output paths are resolved from the directory where the command is launched. Run commands from the repository root unless every relative path is adjusted.
| Topic | English | 中文 |
|---|---|---|
| Models, backbones, LoRA, and losses | Model configuration | 模型配置 |
| Data, training, logging, and evaluation | Training configuration | 训练配置 |
| Throughput, memory, and inference latency | Efficiency configuration | 效率配置 |
Benchmark installation, task selection, and result-resume behavior are covered by the LIBERO, LIBERO-Plus, and RoboTwin guides.
- Choose the closest task recipe from
configs/task/. - Update checkpoint and dataset paths through command-line overrides or a new task recipe.
- Inspect the composed configuration with
--cfg job. - Precompute text embeddings with the same task selection used for training.
- Start from the checked-in defaults, then tune memory and throughput settings for the target hardware.
Keep reusable experiment choices in a task YAML. Reserve command-line overrides for paths, short experiments, and values intentionally varied between runs.