0916_r1lite_ee_gr00t1.7_tcfm_50000
GR00T-N1.7-3B finetuned on R1 Lite end-effector data (260413_r1lite_ee_gr00t,
50 episodes / 72,474 frames, task foldhoodie) with the auxiliary
trajectory-consistency losses from arXiv:2605.08511
(Trajectory-Consistent Flow Matching for Robust Visuomotor Policy Learning).
50,000 steps, batch 16, lr 1e-4, 15.6 h on one H200.
Action / state space
| keys | dim | |
|---|---|---|
| state | left_arm, right_arm, left_gripper, right_gripper, left_ee_pose_9d, right_ee_pose_9d |
32 |
| action | left_gripper, right_gripper, left_ee_pose_9d, right_ee_pose_9d |
20 |
EE poses are xyz + rot6d, relative to the current pose
(ActionRepresentation.RELATIVE, ActionType.EEF, ActionFormat.XYZ_ROT6D).
Grippers are absolute. Action chunk length 32, padded to the model horizon of 40.
Video: head_rgb (720p) + left_wrist_rgb / right_wrist_rgb (360p).
Training objective
L = L_single_step + 0.5*L_multistep + 0.1*L_action + 0.1*L_vel
matching the paper's weights (λ_c = 0.5, λ_a = 0.1, λ_v = 0.1). The paper's
L_rect is already this model's built-in single-step flow matching loss, so it
carries the paper's λ_r = 1.0 implicitly; the paper's Consistency-FM baseline
term L_CFM is not implemented here. Flow time is drawn uniformly
(noise_time_distribution="uniform"), as L_rect prescribes, rather than from
GR00T's default Beta(1.5, 1) skew. Auxiliary weights ramp linearly over the
first 2,500 steps.
Counts follow the paper: K = 3 segments of S = 4 Euler steps for L_multistep,
S_act = 5 for L_action, S = 5 probes for L_vel.
Final losses
| term | step 0 | step 50,000 |
|---|---|---|
single_step |
1.267086 | 0.008443 |
trajectory_consistency |
0.204230 | 0.000444 |
action_rollout |
1.266578 | 0.001620 |
velocity_smoothness |
0.001242 | 0.008002 |
L_vel rises over training, but the field did not get less smooth -- it got
bigger. L_vel is an unnormalised squared difference of velocities, so its
units are those of v**2. Measuring this checkpoint against an identically
initialised one on the same inputs:
L_vel |
mean v**2 |
L_vel / v**2 |
|
|---|---|---|---|
| init | 0.025635 | 0.037035 | 0.692178 |
| trained | 1.101562 | 3.031823 | 0.363333 |
L_vel grew 43x while the field's own magnitude grew 82x, so smoothness
relative to the field improved by 1.9x. The training log shows the same thing:
single_step starts at 1.267, which is the second moment of the target
x1 - x0 (the model predicts ~0 at init), and ends at 0.008, so E[v**2] went
from ~0 to ~1.27 while L_vel rose only 6.4x.
Open-loop evaluation
10 trajectories x 800 frames, execution_horizon 16, on the training dataset.
MAE is the meaningful column — the flat MSE is dominated by the gripper channel,
whose range is 0-100 against ~1 for the pose channels.
| sampler | NFE | mean MAE | median MAE | mean MSE |
|---|---|---|---|---|
| euler, 4 steps (default) | 4 | 0.15828 | 0.15513 | 5.6721 |
| euler, 8 steps | 8 | 0.11834 | 0.11110 | 5.7186 |
| euler, 16 steps | 16 | 0.11424 | 0.11941 | 5.5269 |
| rk4, 2 steps | 8 | 0.27323 | 0.26555 | 5.2239 |
| rk4, 4 steps | 16 | 0.18634 | 0.19486 | 6.2993 |
Use denoising_steps=8 with the default Euler sampler. It beats the shipped
4-step setting on 9/10 trajectories (sign test p = 0.021); going to 16 buys a
further 4%, which is inside the noise.
RK4 is not recommended, despite being one of the paper's four contributions.
At matched compute it lost on 20 of 20 trajectories (p = 0.002 at each
budget): 2.31x worse than Euler at 8 NFE and 1.63x worse at 16 NFE. The paper
reports that RK4 fails without L_vel and works with it; L_vel is enabled
here at the paper's weight and RK4 still loses. RK4 reads the field at
half-grid times and at probe-displaced states, which nothing in training ever
supervises.
Caveats
- No auxiliary-loss-off control was trained on this dataset, so the contribution of the auxiliary terms themselves is not established here. The numbers above compare samplers on one checkpoint, not recipes.
- Evaluation is on the training dataset; these are fit numbers, not generalisation numbers.
- Single task (
foldhoodie), single embodiment, 50 episodes.
Usage
python gr00t/eval/open_loop_eval.py \
--model-path XYZPIT/0916_r1lite_ee_gr00t1.7_tcfm_50000 \
--dataset-path <your lerobot dataset> \
--embodiment-tag new_embodiment \
--denoising-steps 8
- Downloads last month
- 20
Model tree for XYZPIT/0916_r1lite_ee_gr00t1.7_tcfm_50000
Base model
nvidia/GR00T-N1.7-3B