Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
05e050a
the initial loss matches
legitnull Jan 22, 2026
5b020c5
add freeze
legitnull Jan 22, 2026
2f86134
train loops
legitnull Jan 23, 2026
6799de8
loss 1000 step works
legitnull Jan 23, 2026
0bbce3e
fix bug
legitnull Jan 23, 2026
4e966f5
save ckpt
legitnull Jan 27, 2026
3c28dc2
fix load_checkpoint
legitnull Jan 27, 2026
f3e4dac
add modular vlm and action model wrapper
legitnull Jan 29, 2026
bc576e5
qwen2.5vl works
legitnull Jan 30, 2026
6ec0099
even the 0th losses do NOT match on single gpu
legitnull Feb 3, 2026
ac2dce0
match
legitnull Feb 5, 2026
a9cbb8f
more debug
legitnull Feb 5, 2026
1e7c4b3
match state_dim (with wrong number), use accelerte
legitnull Feb 6, 2026
e7bf18a
add todo
legitnull Feb 6, 2026
6419bf2
add serve
legitnull Feb 12, 2026
14016f4
goal 94% success rate
legitnull Feb 13, 2026
d456e5e
96.8% with zero2 and nonorm gripper
legitnull Feb 20, 2026
426c1d8
96.8% with normed gripper
legitnull Feb 21, 2026
e9c9ab9
98.8% with new image preprocessing
legitnull Feb 22, 2026
25b2f9b
fsdp2 97%
legitnull Feb 23, 2026
deb939b
fsdp bf16 still 97%
legitnull Feb 26, 2026
c626606
fp32 reduce
legitnull Feb 26, 2026
8358b68
clean up
legitnull Feb 26, 2026
9268f74
add func fsdp_units
legitnull Feb 26, 2026
dc9603c
clean up
legitnull Feb 26, 2026
6a26512
Remove debug code
legitnull Feb 26, 2026
d54f77d
use flagscale.logger
legitnull Feb 26, 2026
4043823
move scheduler/optimizer to model config
legitnull Feb 27, 2026
dbbd509
Move scheduler as part of optimizer config
legitnull Feb 27, 2026
89f8033
revert fp32 reduce, drop to 94.8%
legitnull Feb 27, 2026
d98ca7c
fix PR review problems
legitnull Feb 27, 2026
ced77a3
fix
legitnull Feb 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions examples/pi0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,24 +147,24 @@ Configure the following fields:
**System settings** (training hyperparameters):
- `system.batch_size` - Batch size per GPU
- `system.train_steps` - Total training steps
- `system.optimizer.name` - Optimizer name (default: `"AdamW"`)
- `system.optimizer.lr` - Learning rate (default: `2.5e-5`)
- `system.optimizer.betas` - Optimizer betas (default: `[0.9, 0.95]`)
- `system.optimizer.eps` - Optimizer epsilon (default: `1.0e-8`)
- `system.optimizer.weight_decay` - Weight decay (default: `0.01`)
- `system.scheduler.warmup_steps` - Warmup steps (default: `1000`)
- `system.scheduler.decay_steps` - Decay steps (default: `30000`)
- `system.scheduler.decay_lr` - Final learning rate after decay (default: `2.5e-6`)
- `system.checkpoint.save_checkpoint` - Whether to save checkpoints (default: `true`)
- `system.checkpoint.save_freq` - Steps between checkpoints (default: `1000`)
- `system.checkpoint.output_directory` - Checkpoint output directory (default: `${experiment.exp_dir}/ckpt`)
- `system.checkpoint.output_directory` - Checkpoint output directory (default: `${experiment.exp_dir}`)

**Model settings**:
- `model.model_name` - Model name: `"pi0"` or `"pi0.5"`
- `model.checkpoint_dir` - Path to pretrained model (e.g., `/workspace/models/lerobot/pi0_base`)
- `model.tokenizer_path` - Path to tokenizer (e.g., `/workspace/models/google/paligemma-3b-pt-224`)
- `model.tokenizer_max_length` - Maximum tokenizer sequence length
- `model.action_steps` - Number of action steps to predict
- `model.optimizer.name` - Optimizer name (for example: `"AdamW"`)
- `model.optimizer.lr` - Learning rate (for example: `2.5e-5`)
- `model.optimizer.betas` - Optimizer betas (for example: `[0.9, 0.95]`)
- `model.optimizer.eps` - Optimizer epsilon (for example: `1.0e-8`)
- `model.optimizer.weight_decay` - Weight decay (for example: `0.01`)
- `model.optimizer.scheduler.warmup_steps` - Warmup steps (for example: `1000`)
- `model.optimizer.scheduler.decay_steps` - Decay steps (for example: `30000`)
- `model.optimizer.scheduler.decay_lr` - Final learning rate after decay (for example: `2.5e-6`)

**Data settings**:
- `data.data_path` - Path to LeRobot dataset root (e.g., `/workspace/datasets/lerobot/aloha_mobile_cabinet`)
Expand All @@ -186,7 +186,7 @@ python run.py --config-path ./examples/pi0/conf --config-name train action=run

Training logs are saved to `outputs/pi0_train/logs/host_0_localhost.output` by default.

Checkpoints are saved to `${experiment.exp_dir}/ckpt` (default: `outputs/pi0_train/ckpt`).
Checkpoints are saved to `${experiment.exp_dir}/checkpoints` (default: `outputs/pi0_train/checkpoints`).

### Stop Training
```sh
Expand Down
25 changes: 12 additions & 13 deletions examples/pi0/conf/train/pi0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,8 @@ system:
shuffle: false
num_workers: 4

optimizer:
name: AdamW
lr: 2.5e-5
betas: [0.9, 0.95]
eps: 1.0e-8
weight_decay: 0.01

scheduler:
warmup_steps: 1000
decay_steps: 30000
decay_lr: 2.5e-6

checkpoint:
output_directory: ${experiment.exp_dir}/ckpt
output_directory: ${experiment.exp_dir}
# Whether to save checkpoint
save_checkpoint: true
# Number of steps between checkpoints
Expand All @@ -36,6 +24,17 @@ model:
tokenizer_max_length: 48
action_steps: 50

optimizer:
name: AdamW
lr: 2.5e-5
betas: [0.9, 0.95]
eps: 1.0e-8
weight_decay: 0.01
scheduler:
warmup_steps: 1000
decay_steps: 30000
decay_lr: 2.5e-6

data:
# Path to the training data
data_path: /workspace/datasets/lerobot/aloha_mobile_cabinet
Expand Down
20 changes: 10 additions & 10 deletions examples/pi0_5/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,24 +154,24 @@ Configure the following fields:
**System settings** (training hyperparameters):
- `system.batch_size` - Batch size per GPU
- `system.train_steps` - Total training steps
- `system.optimizer.name` - Optimizer name (default: `"AdamW"`)
- `system.optimizer.lr` - Learning rate (default: `2.5e-5`)
- `system.optimizer.betas` - Optimizer betas (default: `[0.9, 0.95]`)
- `system.optimizer.eps` - Optimizer epsilon (default: `1.0e-8`)
- `system.optimizer.weight_decay` - Weight decay (default: `0.01`)
- `system.scheduler.warmup_steps` - Warmup steps (default: `1000`)
- `system.scheduler.decay_steps` - Decay steps (default: `30000`)
- `system.scheduler.decay_lr` - Final learning rate after decay (default: `2.5e-6`)
- `system.checkpoint.save_checkpoint` - Whether to save checkpoints (default: `true`)
- `system.checkpoint.save_freq` - Steps between checkpoints (default: `1000`)
- `system.checkpoint.output_directory` - Checkpoint output directory (default: `${experiment.exp_dir}/ckpt`)
- `system.checkpoint.output_directory` - Checkpoint output directory (default: `${experiment.exp_dir}`)

**Model settings**:
- `model.model_name` - Model name: `"pi0.5"`
- `model.checkpoint_dir` - Path to pretrained model (e.g., `/workspace/models/lerobot/pi05_base`)
- `model.tokenizer_path` - Path to tokenizer (e.g., `/workspace/models/google/paligemma-3b-pt-224`)
- `model.tokenizer_max_length` - Maximum tokenizer sequence length (default: `200` for pi0.5)
- `model.action_steps` - Number of action steps to predict
- `model.optimizer.name` - Optimizer name (for example: `"AdamW"`)
- `model.optimizer.lr` - Learning rate (for example: `2.5e-5`)
- `model.optimizer.betas` - Optimizer betas (for example: `[0.9, 0.95]`)
- `model.optimizer.eps` - Optimizer epsilon (for example: `1.0e-8`)
- `model.optimizer.weight_decay` - Weight decay (for example: `0.01`)
- `model.optimizer.scheduler.warmup_steps` - Warmup steps (for example: `1000`)
- `model.optimizer.scheduler.decay_steps` - Decay steps (for example: `30000`)
- `model.optimizer.scheduler.decay_lr` - Final learning rate after decay (for example: `2.5e-6`)

**Data settings**:
- `data.data_path` - Path to LeRobot dataset root (e.g., `/workspace/datasets/lerobot/aloha_mobile_cabinet`)
Expand All @@ -193,7 +193,7 @@ python run.py --config-path ./examples/pi0_5/conf --config-name train action=run

Training logs are saved to `outputs/pi0_5_train/logs/host_0_localhost.output` by default.

Checkpoints are saved to `${experiment.exp_dir}/ckpt` (default: `outputs/pi0_5_train/ckpt`).
Checkpoints are saved to `${experiment.exp_dir}/checkpoints` (default: `outputs/pi0_5_train/checkpoints`).

### Stop Training
```sh
Expand Down
25 changes: 12 additions & 13 deletions examples/pi0_5/conf/train/pi0_5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,8 @@ system:
shuffle: false
num_workers: 4

optimizer:
name: AdamW
lr: 2.5e-5
betas: [0.9, 0.95]
eps: 1.0e-8
weight_decay: 0.01

scheduler:
warmup_steps: 1000
decay_steps: 30000
decay_lr: 2.5e-6

checkpoint:
output_directory: ${experiment.exp_dir}/ckpt
output_directory: ${experiment.exp_dir}
# Whether to save checkpoint
save_checkpoint: true
# Number of steps between checkpoints
Expand All @@ -36,6 +24,17 @@ model:
tokenizer_max_length: 200
action_steps: 50

optimizer:
name: AdamW
lr: 2.5e-5
betas: [0.9, 0.95]
eps: 1.0e-8
weight_decay: 0.01
scheduler:
warmup_steps: 1000
decay_steps: 30000
decay_lr: 2.5e-6

data:
# Path to the training data
data_path: /workspace/datasets/lerobot/aloha_mobile_cabinet
Expand Down
Loading
Loading