Publish MIKASA PPO trained with QwenOFT RTX 3090 latency profile
Browse files- README.md +2 -1
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/README.md +87 -0
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/checkpoint.pt +3 -0
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/eval.yaml +42 -0
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/provenance.json +24 -0
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/strict-eval.json +22 -0
- latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/train.yaml +40 -0
README.md
CHANGED
|
@@ -3,10 +3,11 @@ license: other
|
|
| 3 |
---
|
| 4 |
# Latency-Sensitive Bench models
|
| 5 |
|
| 6 |
-
Inference-ready
|
| 7 |
|
| 8 |
## Layout
|
| 9 |
|
|
|
|
| 10 |
- `zero-latency/mikasa-intercept-grab-fast/small-policy/ppo-v1`: accepted PPO teacher and strict evaluation.
|
| 11 |
- `zero-latency/mikasa-intercept-grab-fast/vla/starvla-qwenoft-v1`: StarVLA QwenOFT 5k inference checkpoint, portable config, statistics, and zero-latency evaluation.
|
| 12 |
- `zero-latency/humanoidbench-balance-simple/small-policy/fasttd3-v1`: accepted FastTD3 teacher and portable train/eval configs.
|
|
|
|
| 3 |
---
|
| 4 |
# Latency-Sensitive Bench models
|
| 5 |
|
| 6 |
+
Inference-ready teachers and VLA policies for the supported benchmark tasks.
|
| 7 |
|
| 8 |
## Layout
|
| 9 |
|
| 10 |
+
- `latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1`: scratch-trained PPO with the QwenOFT RTX 3090 temporal profile; independent 256-episode final success 98.83% (253/256).
|
| 11 |
- `zero-latency/mikasa-intercept-grab-fast/small-policy/ppo-v1`: accepted PPO teacher and strict evaluation.
|
| 12 |
- `zero-latency/mikasa-intercept-grab-fast/vla/starvla-qwenoft-v1`: StarVLA QwenOFT 5k inference checkpoint, portable config, statistics, and zero-latency evaluation.
|
| 13 |
- `zero-latency/humanoidbench-balance-simple/small-policy/fasttd3-v1`: accepted FastTD3 teacher and portable train/eval configs.
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# MIKASA InterceptGrabFast — PPO with QwenOFT RTX 3090 latency
|
| 2 |
+
|
| 3 |
+
A small privileged-state PPO policy trained from random initialization with the
|
| 4 |
+
temporal latency profile measured for QwenOFT on one RTX 3090. The policy uses
|
| 5 |
+
49D state observations and deterministic mean actions for evaluation.
|
| 6 |
+
|
| 7 |
+
## Files
|
| 8 |
+
|
| 9 |
+
| File | Contents |
|
| 10 |
+
| --- | --- |
|
| 11 |
+
| `checkpoint.pt` | Inference-ready native MIKASA `AgentStateOnly` state dictionary. |
|
| 12 |
+
| `strict-eval.json` | Independent 256-episode evaluation under the temporal profile. |
|
| 13 |
+
| `train.yaml` | Portable scratch-training configuration. |
|
| 14 |
+
| `eval.yaml` | Portable configuration reproducing the independent evaluation. |
|
| 15 |
+
| `provenance.json` | Selected training step, W&B run, and pinned profile source. |
|
| 16 |
+
|
| 17 |
+
## Training and latency
|
| 18 |
+
|
| 19 |
+
- Environment: `InterceptGrabFast-VLA-v0`, `normalized_dense` reward, 60-step episodes.
|
| 20 |
+
- Observation: 49D privileged state; actor and critic each use three 256-unit tanh layers.
|
| 21 |
+
- Action: 7D `pd_ee_delta_pose`, one action per accepted request.
|
| 22 |
+
- Control frequency: 20 Hz; physics frequency: 100 Hz.
|
| 23 |
+
- Seed: 123; 1,024 environments; 60-step rollouts; 32 minibatches; eight update epochs.
|
| 24 |
+
- Learning rate: `1e-4`; PPO target KL: `0.2`; gamma: `0.99`; GAE lambda: `0.95`.
|
| 25 |
+
- Latency: `temporal`, training latency seed 0, one simulated worker,
|
| 26 |
+
`latest_ready` ordering, and `hold` between action arrivals.
|
| 27 |
+
- The profile's mean observation-to-action latency is 99.05 ms. The joint model
|
| 28 |
+
represents both worker occupancy and action-ready time.
|
| 29 |
+
- Selected checkpoint: 13,824,000 environment steps, iteration 225, chosen by
|
| 30 |
+
periodic `eval/success_at_end`. `train.yaml` retains the original 150M training
|
| 31 |
+
budget; the selected checkpoint is from the step stated above.
|
| 32 |
+
|
| 33 |
+
Training run: [ks6d837t](https://wandb.ai/saberrr-zju/MIKASA-Robo-dataset-collectors/runs/ks6d837t).
|
| 34 |
+
|
| 35 |
+
The exact latency profile is
|
| 36 |
+
[`profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c`](https://huggingface.co/datasets/latency-sensitive-bench/profiles/tree/66414463f2a609316da63935941a79abf0a73ce9/profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c),
|
| 37 |
+
pinned to revision `66414463f2a609316da63935941a79abf0a73ce9`.
|
| 38 |
+
Latency is simulated from this profile during small-policy training and evaluation.
|
| 39 |
+
|
| 40 |
+
## Independent evaluation
|
| 41 |
+
|
| 42 |
+
The evaluation used 64 parallel environments, 240 control steps per environment
|
| 43 |
+
(four complete episodes each), environment seed `20260910`, and independent
|
| 44 |
+
latency seed `271828`. Actions were deterministic policy means. The seed is a
|
| 45 |
+
vector-environment reset seed; it is not an enumerated list of 256 episode seeds.
|
| 46 |
+
|
| 47 |
+
| Metric | Result |
|
| 48 |
+
| --- | --- |
|
| 49 |
+
| Success at least once | 255 / 256 = **99.61%** |
|
| 50 |
+
| Success at the end | 253 / 256 = **98.83%** |
|
| 51 |
+
| Mean episode return | 33.6446 |
|
| 52 |
+
| Mean episode length | 60 control steps |
|
| 53 |
+
| Accepted / capacity-dropped requests | 7,606 / 7,754 |
|
| 54 |
+
|
| 55 |
+
`success_at_end` is the primary metric: the ball is grasped and the robot is
|
| 56 |
+
static at the final control step. This checkpoint passes the 90% acceptance
|
| 57 |
+
target. Per-episode outcomes were not retained by this evaluation; the JSON
|
| 58 |
+
contains the recorded aggregate results.
|
| 59 |
+
|
| 60 |
+
## Download and evaluate
|
| 61 |
+
|
| 62 |
+
Run from a benchmark checkout with its MIKASA environment installed:
|
| 63 |
+
|
| 64 |
+
```bash
|
| 65 |
+
BENCH_ROOT="$PWD"
|
| 66 |
+
MODEL_PATH="latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1"
|
| 67 |
+
PROFILE_PATH="profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c"
|
| 68 |
+
BUNDLE="$BENCH_ROOT/outputs/published-models/$MODEL_PATH"
|
| 69 |
+
|
| 70 |
+
hf download latency-sensitive-bench/benchmark-models \
|
| 71 |
+
--include "$MODEL_PATH/*" --local-dir "$BENCH_ROOT/outputs/published-models"
|
| 72 |
+
hf download latency-sensitive-bench/profiles --repo-type dataset \
|
| 73 |
+
--revision 66414463f2a609316da63935941a79abf0a73ce9 \
|
| 74 |
+
--include "$PROFILE_PATH/*" --local-dir "$BUNDLE"
|
| 75 |
+
|
| 76 |
+
cd "$BUNDLE"
|
| 77 |
+
CUDA_VISIBLE_DEVICES=0 \
|
| 78 |
+
PYTHONPATH="$BENCH_ROOT:$BENCH_ROOT/third_party/MIKASA-Robo" \
|
| 79 |
+
"$BENCH_ROOT/third_party/MIKASA-Robo/.venv/bin/python" \
|
| 80 |
+
"$BENCH_ROOT/third_party/MIKASA-Robo/mikasa_robo_suite/vla/dataset_collectors/get_dataset_collectors_ckpt.py" \
|
| 81 |
+
--env-id InterceptGrabFast-VLA-v0 \
|
| 82 |
+
--latency-config eval.yaml --latency-output-dir evaluation
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
For scratch-training reproduction, use `train.yaml` in the same command and
|
| 86 |
+
choose a separate latency output directory. The benchmark integration supplies
|
| 87 |
+
the native policy architecture, simulator, and action-latency wrapper.
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/checkpoint.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9bc3b3875af77b664ef246ae1dc66bf3e013f5e4a1143f89c79c8fb086dcfea1
|
| 3 |
+
size 1169937
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/eval.yaml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
env:
|
| 2 |
+
env_fps: 20
|
| 3 |
+
obs_fps: 20
|
| 4 |
+
noop_action:
|
| 5 |
+
- 0
|
| 6 |
+
- 0
|
| 7 |
+
- 0
|
| 8 |
+
- 0
|
| 9 |
+
- 0
|
| 10 |
+
- 0
|
| 11 |
+
- 0
|
| 12 |
+
executor:
|
| 13 |
+
simulated_worker_capacity: 1
|
| 14 |
+
latency:
|
| 15 |
+
method: temporal
|
| 16 |
+
seed: 271828
|
| 17 |
+
profile_path: profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c/profile.json
|
| 18 |
+
scheduler:
|
| 19 |
+
ordering_policy: latest_ready
|
| 20 |
+
hold_policy: hold
|
| 21 |
+
training:
|
| 22 |
+
num_envs: 1
|
| 23 |
+
num_eval_envs: 64
|
| 24 |
+
num_steps: 60
|
| 25 |
+
num_minibatches: 32
|
| 26 |
+
update_epochs: 8
|
| 27 |
+
total_timesteps: 60
|
| 28 |
+
eval_freq: 25
|
| 29 |
+
track: false
|
| 30 |
+
exp_name: small-ppo-mikasa-intercept-grab-fast-qwenoft-rtx3090-temporal-scratch-baseline-settings
|
| 31 |
+
checkpoint: checkpoint.pt
|
| 32 |
+
resume: null
|
| 33 |
+
seed: 20260910
|
| 34 |
+
num_eval_steps: 240
|
| 35 |
+
learning_rate: 0.0001
|
| 36 |
+
target_kl: 0.2
|
| 37 |
+
evaluate: true
|
| 38 |
+
save_model: false
|
| 39 |
+
profile_source:
|
| 40 |
+
repo_id: latency-sensitive-bench/profiles
|
| 41 |
+
revision: 66414463f2a609316da63935941a79abf0a73ce9
|
| 42 |
+
path: profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/provenance.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task": "mikasa-intercept-grab-fast",
|
| 3 |
+
"model": "ppo-mlp-state",
|
| 4 |
+
"status": "accepted",
|
| 5 |
+
"run_id": "ks6d837t",
|
| 6 |
+
"wandb_url": "https://wandb.ai/saberrr-zju/MIKASA-Robo-dataset-collectors/runs/ks6d837t",
|
| 7 |
+
"checkpoint": "checkpoint.pt",
|
| 8 |
+
"checkpoint_bytes": 1169937,
|
| 9 |
+
"checkpoint_global_step": 13824000,
|
| 10 |
+
"checkpoint_iteration": 225,
|
| 11 |
+
"selection_metric": "eval/success_at_end",
|
| 12 |
+
"initialization": "from_scratch",
|
| 13 |
+
"training_seed": 123,
|
| 14 |
+
"profile": {
|
| 15 |
+
"repo_id": "latency-sensitive-bench/profiles",
|
| 16 |
+
"revision": "66414463f2a609316da63935941a79abf0a73ce9",
|
| 17 |
+
"path": "profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c"
|
| 18 |
+
},
|
| 19 |
+
"trainer_source": {
|
| 20 |
+
"wandb_run_id": "ks6d837t",
|
| 21 |
+
"path": "code/third_party/MIKASA-Robo/mikasa_robo_suite/vla/dataset_collectors/get_dataset_collectors_ckpt.py"
|
| 22 |
+
},
|
| 23 |
+
"evaluation": "strict-eval.json"
|
| 24 |
+
}
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/strict-eval.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"episodes": 256,
|
| 3 |
+
"metrics": {
|
| 4 |
+
"success_once": 0.99609375,
|
| 5 |
+
"return": 33.64462661743164,
|
| 6 |
+
"episode_len": 60.0,
|
| 7 |
+
"reward": 0.5607438087463379,
|
| 8 |
+
"success_at_end": 0.98828125
|
| 9 |
+
},
|
| 10 |
+
"admitted_count": 7606,
|
| 11 |
+
"dropped_count": 7754,
|
| 12 |
+
"checkpoint": "checkpoint.pt",
|
| 13 |
+
"checkpoint_global_step": 13824000,
|
| 14 |
+
"evaluation_config": "eval.yaml",
|
| 15 |
+
"success_rate": 0.98828125,
|
| 16 |
+
"success_metric": "success_at_end",
|
| 17 |
+
"success_once_count": 255,
|
| 18 |
+
"success_at_end_count": 253,
|
| 19 |
+
"environment_seed": 20260910,
|
| 20 |
+
"latency_seed": 271828,
|
| 21 |
+
"deterministic": true
|
| 22 |
+
}
|
latency-aware/mikasa-intercept-grab-fast/small-policy/ppo-qwenoft-rtx3090-v1/train.yaml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
env:
|
| 2 |
+
env_fps: 20
|
| 3 |
+
obs_fps: 20
|
| 4 |
+
noop_action:
|
| 5 |
+
- 0
|
| 6 |
+
- 0
|
| 7 |
+
- 0
|
| 8 |
+
- 0
|
| 9 |
+
- 0
|
| 10 |
+
- 0
|
| 11 |
+
- 0
|
| 12 |
+
executor:
|
| 13 |
+
simulated_worker_capacity: 1
|
| 14 |
+
latency:
|
| 15 |
+
method: temporal
|
| 16 |
+
seed: 0
|
| 17 |
+
profile_path: profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c/profile.json
|
| 18 |
+
scheduler:
|
| 19 |
+
ordering_policy: latest_ready
|
| 20 |
+
hold_policy: hold
|
| 21 |
+
training:
|
| 22 |
+
num_envs: 1024
|
| 23 |
+
num_eval_envs: 16
|
| 24 |
+
num_steps: 60
|
| 25 |
+
num_minibatches: 32
|
| 26 |
+
update_epochs: 8
|
| 27 |
+
total_timesteps: 150000000
|
| 28 |
+
eval_freq: 25
|
| 29 |
+
track: true
|
| 30 |
+
exp_name: small-ppo-mikasa-intercept-grab-fast-qwenoft-rtx3090-temporal-scratch-baseline-settings
|
| 31 |
+
checkpoint: null
|
| 32 |
+
resume: null
|
| 33 |
+
seed: 123
|
| 34 |
+
num_eval_steps: 60
|
| 35 |
+
learning_rate: 0.0001
|
| 36 |
+
target_kl: 0.2
|
| 37 |
+
profile_source:
|
| 38 |
+
repo_id: latency-sensitive-bench/profiles
|
| 39 |
+
revision: 66414463f2a609316da63935941a79abf0a73ce9
|
| 40 |
+
path: profiles/qwenoft/1x-rtx3090/mikasa_intercept_grab_fast/instance_3a0d42681a03715c
|