Shuyang-Yu-808
Add Robometer code + Robometer-4B weights
319eb16
|
Raw
History Blame Contribute Delete
4.07 kB
# RoboReward Dataset Guide
This guide explains how to load and convert the RoboReward dataset with the Robometer pipeline.
Sources:
- Paper: [RoboReward: General-Purpose Vision-Language Reward Models for Robotics](https://arxiv.org/abs/2601.00675)
- Dataset: [https://huggingface.co/datasets/teetone/RoboReward](https://huggingface.co/datasets/teetone/RoboReward)
## Overview
RoboReward is a dataset for training and evaluating general-purpose vision-language reward models for robotics. Each example pairs a task instruction with a real-robot rollout video and a discrete end-of-episode progress reward score.
### Dataset Composition
- **Total**: 54,135 examples
- **Train**: 45,072 trajectories
- **Validation**: 6,232 trajectories
- **Test** (RoboRewardBench): 2,831 trajectories (human-verified)
Built from large-scale real-robot corpora including Open X-Embodiment (OXE) and RoboArena.
### Directory Structure
```
dataset_path/
train/
metadata.jsonl
[subdirectories with MP4 videos]
val/
metadata.jsonl
[subdirectories with MP4 videos]
test/
metadata.jsonl
[subdirectories with MP4 videos]
```
### Reward Scale
Each trajectory has a discrete reward score (1-5) which is converted to `partial_success` in [0.0, 1.0]:
| Reward | Meaning | partial_success | quality_label |
|--------|---------|-----------------|---------------|
| 1 | No success | 0.0 | failure |
| 2 | Minimal progress | 0.25 | failure |
| 3 | Partial completion | 0.5 | failure |
| 4 | Near completion | 0.75 | failure |
| 5 | Perfect completion | 1.0 | successful |
## Configuration
```yaml
# configs/data_gen_configs/roboreward.yaml
dataset:
dataset_path: ./datasets/RoboReward
dataset_name: roboreward_train # Can be overridden with --dataset.dataset_name
output:
output_dir: ./robometer_dataset/roboreward_rfm
max_trajectories: -1
max_frames: 64
use_video: true
fps: 10
shortest_edge_size: 240
center_crop: false
num_workers: 4
hub:
push_to_hub: true
hub_repo_id: roboreward_rfm
```
Use command-line overrides to specify different splits (train/val/test).
## Loader
- File: `dataset_upload/dataset_loaders/roboreward_loader.py`
- Function: `load_roboreward_dataset(dataset_path, dataset_name)`
- Notes:
- Reads `metadata.jsonl` from the specified split (train/val/test)
- Loads existing MP4 videos (no re-encoding needed)
- Converts reward scores to partial_success values
- All trajectories are robot demonstrations (`is_robot=True`)
## Usage
```bash
# Train split
uv run python -m dataset_upload.generate_hf_dataset \
--config_path=dataset_upload/configs/data_gen_configs/roboreward.yaml \
--dataset.dataset_name roboreward_train
# Validation split
uv run python -m dataset_upload.generate_hf_dataset \
--config_path=dataset_upload/configs/data_gen_configs/roboreward.yaml \
--dataset.dataset_name roboreward_val
# Test split (RoboRewardBench - human-verified)
uv run python -m dataset_upload.generate_hf_dataset \
--config_path=dataset_upload/configs/data_gen_configs/roboreward.yaml \
--dataset.dataset_name roboreward_test
```
This will:
- Load the specified split (train/val/test)
- Process existing MP4 videos
- Convert reward scores to partial_success values
- Create a HuggingFace dataset with proper quality labels
## Data Fields
Each trajectory contains:
- `task`: Natural-language instruction for the rollout
- `frames`: Video showing robot execution
- `partial_success`: Continuous score in [0.0, 1.0] derived from reward
- `quality_label`: "successful" (reward=5) or "failure" (reward<5)
- `is_robot`: Always `True` (all robot demonstrations)
- `data_source`: "roboreward"
## Citation
```bibtex
@misc{lee2026roboreward,
title={RoboReward: General-Purpose Vision-Language Reward Models for Robotics},
author={Tony Lee and Andrew Wagenmaker and Karl Pertsch and Percy Liang and Sergey Levine and Chelsea Finn},
year={2026},
eprint={2601.00675},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2601.00675},
}
```