BridgeQuant-Async โ LIBERO-Long (LIBERO-10) 94.0%
Full-finetuned 480M VLA (LFM2.5-VL-450M backbone + BridgeConnector + BridgeActionHead). Best LIBERO-Long checkpoint of the campaign โ within 0.35 points of GR00T N1.7 at 1/4 the parameters and 1/26 the sample passes.
| suite | this repo | GR00T N1.7 (2B, 12.8M samples) |
|---|---|---|
| Long | 94.0 | 94.35 |
| Object | 100.0 (separate repo) | 98.45 |
| Spatial | 98.0 (separate repo) | 97.65 |
| Goal | 95.0 (separate repo) | 97.50 |
| mean | 96.75 | 97.00 |
Protocol: seed 42, 200 episodes, synchronous rollout, n_action_steps=16,
one Euler denoising step, raw (non-EMA) bundle.
Why K=16 here
Long is monotone in commitment: K=1/4/8/16 gives 54.5/80.0/89.0/94.0. Each
replan re-draws from a multimodal flow sampler, so replanning mid-sequence lets
the policy switch targets โ on "put both moka pots on the stove" (two identical
objects) that costs 7 of 20 episodes. Committing a full 16-step chunk fixes it.
n_action_steps is a runtime knob: the loss is uniform over the trained chunk.
Recipe
Plain full finetune: train_mode: finetune, lr 5e-5, 30k steps, batch 16,
vision 512px, GR00T-style augmentation, taps [0, 6, 12, 15], chunk 16, flow
matching with Beta(1.5, 1) time sampling, num_steps 1. No auxiliary language
objective, no transition oversampling โ on this suite every extra shaping signal
measured so far destroys one rare skill ("turn on the stove, then place the
pot": 19/20 at this recipe, ~0 under all ten perturbations tried).
Async deployment
Same weights, asynchronous runtime (~5 ms replan): 93.0 at K=16 with RTC-freeze 4 + uncertainty refresh, or 90.0 under the unified K=8 controller โ which is better than synchronous K=8 (89.0), because the controller refreshes vision at grasp and on sampler disagreement rather than on a fixed 8-step clock.
Eval
uv run python scripts/eval_libero_object.py \
--config train_config.yaml --checkpoint <this-dir> \
--n-action-steps 16 --episodes-per-task 20
- Downloads last month
- 9