This guide demonstrates how to fine-tune GR00T on your own robot data and configuration. We provide a complete example for the SO-100 robot under examples/SO100, which uses demo_data/cube_to_bowl_5 as the demo dataset.
Key parameters
Recommended configuration
For optimal results, maximize your batch size based on available hardware and train for a few thousand steps.
- We recommend using 1 H100 node or L40 node for optimal fine-tuning performance
- Other hardware configurations (e.g., A6000) will also work but may require longer training time
- Optimal batch size depends on your hardware and which model components are being tuned
Training variance
Users may observe some variance in post-training results across runs, even when using the same configuration, seed, and dropout settings. In our experiments, we have observed performance differences as large as 5-6% between runs. This variance may be attributed to non-deterministic operations in image augmentations or other stochastic components.
Dataloader optimization
When training a model, you can optimize the dataloading speed vs memory usage via various command line arguments:
If VRAM is limited, you can reduce all the numbers above to reduce memory usage.
To ensure more IID during sampling of shards, you can reduce the episode_sampling_rate to 0.05 or lower.
Advanced configuration
For more extensive fine-tuning configuration, use gr00t/experiment/launch_train.py instead to launch the training process with full control over all training parameters.