A research project integrating Vision-Language-Action (VLA) models, Human-in-the-Loop Reinforcement Learning, and World Models for sample-efficient robot manipulation learning.
This system combines three cutting-edge approaches:
Key Innovation: While the robot performs 1 real trial, the world model simulates 10+ imagined trials, dramatically reducing real-world data requirements while maintaining human-level performance.
# Clone repository
git clone https://github.com/BillyChern/IL_RL_World-Model.git
cd IL_RL_WorldModel
# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Set up pre-trained weights (downloads π0.5 checkpoints)
python scripts/download_weights.py
# Convert your demos to LeRobot RLDS format
python scripts/prepare_data.py \
--input_dir /path/to/raw/demos \
--output_dir data/demonstrations \
--tasks "pick_and_place,fold_towel"
# Fine-tune π0.5 on your demonstrations
python scripts/train_vla.py \
--config configs/vla_training.yaml \
--data_dir data/demonstrations
# Train binary reward classifier from demo success/failure labels
python scripts/train_reward.py \
--config configs/reward_classifier.yaml \
--demo_dir data/demonstrations
# Launch asynchronous training: robot collection + RL + world model
python scripts/train_integrated.py \
--config configs/integrated_training.yaml \
--vla_checkpoint checkpoints/vla_pretrained.pth \
--reward_checkpoint checkpoints/reward_classifier.pth
# Test on held-out tasks
python scripts/evaluate.py \
--checkpoint checkpoints/integrated_final.pth \
--num_episodes 50 \
--tasks "pick_and_place,fold_towel"
IL_RL_WorldModel/
├── models/
│ ├── vla/ # π0.5 VLA integration
│ ├── world_model/ # DreamerV3 world model
│ └── reward/ # Reward classifier
├── training/
│ ├── imitation/ # Behavioral cloning
│ ├── rl/ # HIL-SERL RL pipeline
│ └── world_model/ # World model training
├── robot/
│ ├── arx_x5/ # ARX X5 interface (50Hz control)
│ └── teleop/ # Human intervention system
├── data/
│ ├── demonstrations/ # RLDS demonstration data
│ ├── replay_buffer/ # RL experience buffer
│ └── imagination/ # World model rollouts
├── evaluation/
│ └── metrics/ # Success rate, timing metrics
├── configs/ # Hydra configuration files
├── scripts/ # Training and evaluation scripts
├── tests/ # Unit tests
└── docs/ # Codebase exploration docs
All training parameters are specified in YAML configs under configs/. Key parameters:
# Imagination settings
world_model:
imagination_horizon: 10 # Start at 5-10, increase as model improves
real_imagined_ratio: 0.8 # 80% real, 20% imagined initially
# RL settings
rl:
algorithm: sac # Soft Actor-Critic
hybrid_loss_weight: 0.1 # λ for L = L_RL + λ*L_IL (decays)
intervention_rate: 0.3 # Target ~30% initially, reduce to ~0%
# VLA settings
vla:
freeze_vision: true # Freeze pre-trained vision encoder
freeze_language: true # Freeze pre-trained language encoder
action_dim: 14 # 7 per arm (6 joints + gripper)
This project builds on multiple state-of-the-art works. Please see CITATIONS.md for full references.
Core papers:
This project is licensed under the MIT License - see LICENSE for details.
This is a research project with publication goals. Contributions are welcome! Please:
git checkout -b feature/amazing-feature)pytest tests/)We gratefully acknowledge:
🚧 In Active Development 🚧
Current progress:
Tests: 88 passing ✓ | Code: ~10,000+ lines | Docs: 161KB exploration + architecture
See CLAUDE.md for detailed implementation notes and docs/ for exploration documentation.
6 commits
Python
100.0%
A research project integrating Vision-Language-Action (VLA) models, Human-in-the-Loop Reinforcement Learning, and World Models for sample-efficient robot manipulation learning.
This system combines three cutting-edge approaches:
Key Innovation: While the robot performs 1 real trial, the world model simulates 10+ imagined trials, dramatically reducing real-world data requirements while maintaining human-level performance.
# Clone repository
git clone https://github.com/BillyChern/IL_RL_World-Model.git
cd IL_RL_WorldModel
# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Set up pre-trained weights (downloads π0.5 checkpoints)
python scripts/download_weights.py
# Convert your demos to LeRobot RLDS format
python scripts/prepare_data.py \
--input_dir /path/to/raw/demos \
--output_dir data/demonstrations \
--tasks "pick_and_place,fold_towel"
# Fine-tune π0.5 on your demonstrations
python scripts/train_vla.py \
--config configs/vla_training.yaml \
--data_dir data/demonstrations
# Train binary reward classifier from demo success/failure labels
python scripts/train_reward.py \
--config configs/reward_classifier.yaml \
--demo_dir data/demonstrations
# Launch asynchronous training: robot collection + RL + world model
python scripts/train_integrated.py \
--config configs/integrated_training.yaml \
--vla_checkpoint checkpoints/vla_pretrained.pth \
--reward_checkpoint checkpoints/reward_classifier.pth
# Test on held-out tasks
python scripts/evaluate.py \
--checkpoint checkpoints/integrated_final.pth \
--num_episodes 50 \
--tasks "pick_and_place,fold_towel"
IL_RL_WorldModel/
├── models/
│ ├── vla/ # π0.5 VLA integration
│ ├── world_model/ # DreamerV3 world model
│ └── reward/ # Reward classifier
├── training/
│ ├── imitation/ # Behavioral cloning
│ ├── rl/ # HIL-SERL RL pipeline
│ └── world_model/ # World model training
├── robot/
│ ├── arx_x5/ # ARX X5 interface (50Hz control)
│ └── teleop/ # Human intervention system
├── data/
│ ├── demonstrations/ # RLDS demonstration data
│ ├── replay_buffer/ # RL experience buffer
│ └── imagination/ # World model rollouts
├── evaluation/
│ └── metrics/ # Success rate, timing metrics
├── configs/ # Hydra configuration files
├── scripts/ # Training and evaluation scripts
├── tests/ # Unit tests
└── docs/ # Codebase exploration docs
All training parameters are specified in YAML configs under configs/. Key parameters:
# Imagination settings
world_model:
imagination_horizon: 10 # Start at 5-10, increase as model improves
real_imagined_ratio: 0.8 # 80% real, 20% imagined initially
# RL settings
rl:
algorithm: sac # Soft Actor-Critic
hybrid_loss_weight: 0.1 # λ for L = L_RL + λ*L_IL (decays)
intervention_rate: 0.3 # Target ~30% initially, reduce to ~0%
# VLA settings
vla:
freeze_vision: true # Freeze pre-trained vision encoder
freeze_language: true # Freeze pre-trained language encoder
action_dim: 14 # 7 per arm (6 joints + gripper)
This project builds on multiple state-of-the-art works. Please see CITATIONS.md for full references.
Core papers:
This project is licensed under the MIT License - see LICENSE for details.
This is a research project with publication goals. Contributions are welcome! Please:
git checkout -b feature/amazing-feature)pytest tests/)We gratefully acknowledge:
🚧 In Active Development 🚧
Current progress:
Tests: 88 passing ✓ | Code: ~10,000+ lines | Docs: 161KB exploration + architecture
See CLAUDE.md for detailed implementation notes and docs/ for exploration documentation.
6 commits
Python
100.0%