draccus library for type-safe, hierarchical configs.
Overview
Configuration in LeRobot:- Type-safe dataclass configurations
- Command-line argument parsing
- YAML file support
- Hierarchical config composition
- Validation and defaults
Configuration Classes
TrainPipelineConfig
Main configuration for training pipelines.src/lerobot/configs/train.py
PolicyConfig
required
Policy configuration (ACTConfig, DiffusionConfig, etc.).
DatasetConfig
required
Dataset configuration.
int
default:"100000"
Number of training steps.
int
default:"32"
Batch size per device.
OptimizerConfig
Optimizer configuration.
LRSchedulerConfig
Learning rate scheduler configuration.
WandBConfig
Weights & Biases logging configuration.
int
default:"10000"
Evaluation frequency in steps.
int
default:"10000"
Checkpoint save frequency in steps.
EvalPipelineConfig
Configuration for evaluation pipelines.src/lerobot/configs/eval.py
PolicyConfig
Base class for policy configurations.DatasetConfig
Dataset loading configuration.OptimizerConfig
Optimizer configuration.Command-Line Interface
LeRobot usesdraccus for automatic CLI generation:
YAML Configuration Files
Create reusable configuration files:Programmatic Usage
Create Config Programmatically
Load Config from YAML
Save Config to YAML
Validate Config
Convert Config to Dict
Environment Variables
LeRobot respects these environment variables:str
default:"~/.cache/huggingface/lerobot"
Root directory for LeRobot data (datasets, calibrations).
str
GPU devices to use (e.g.,
0,1,2,3).str
Weights & Biases API key.
str
Hugging Face API token for private datasets/models.
Configuration Best Practices
- Use YAML for Experiments: Store configs in version control
- Type Safety: Leverage dataclass type checking
- Defaults: Provide sensible defaults
- Validation: Implement custom validation in
__post_init__ - Modularity: Compose configs from smaller pieces
Example Custom Config
See Also
- lerobot-train - Training script configuration
- lerobot-eval - Evaluation script configuration
- Policy API - Policy configurations
- draccus Documentation - Configuration library