Publish Parkour qwenpi_v3 latency-aware PPO
Browse files- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/README.md +20 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/checkpoint.pt +3 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_l0.json +44 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_l0.yaml +12 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_profile.json +44 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_profile.yaml +8 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/provenance.json +34 -0
- latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/train.yaml +34 -0
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Extreme Parkour Go2 — QwenPI v3 latency-aware PPO
|
| 2 |
+
|
| 3 |
+
Native command policy trained from scratch with the QwenPI v3 RTX 3090 temporal
|
| 4 |
+
latency profile. The checkpoint completed 3,000 PPO iterations on one H200.
|
| 5 |
+
|
| 6 |
+
Training used 6,144 environments, seed 1, 50 Hz control, 10 Hz decisions,
|
| 7 |
+
24 decisions/environment/iteration, control repeat 5, five PPO epochs, four
|
| 8 |
+
minibatches, and fixed learning rate `2e-4`.
|
| 9 |
+
|
| 10 |
+
| Evaluation | Episodes | Return mean ± SD | Raw length mean ± SD | Waypoint progress mean ± SD |
|
| 11 |
+
|---|---:|---:|---:|---:|
|
| 12 |
+
| QwenPI v3 temporal profile | 100 | 17.1554 ± 4.3398 | 579.28 ± 103.19 | 0.9214 ± 0.1910 |
|
| 13 |
+
| 0 ms latency | 100 | 11.8676 ± 4.5410 | 443.73 ± 139.98 | 0.6757 ± 0.3349 |
|
| 14 |
+
|
| 15 |
+
Both evaluations use 256 parallel environments, seed 1, deterministic policy
|
| 16 |
+
means, and a 1,500 raw-control-frame episode cap. See `eval_profile.json` and
|
| 17 |
+
`eval_l0.json` for complete metrics and latency counts.
|
| 18 |
+
|
| 19 |
+
Training run: https://wandb.ai/saberrr-zju/isaaclab-parkour/runs/h7ebvge6
|
| 20 |
+
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/checkpoint.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:896954eb9e51f2f3ee96b4f82286c330bc57c2b21e16bbfdee023a9bbe373dc1
|
| 3 |
+
size 171687483
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_l0.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"identity": {
|
| 3 |
+
"checkpoint": "/home/ubuntu/latency-sensitive-bench/third_party/Isaaclab_Parkour/logs/rsl_rl/unitree_go2_parkour/2026-09-16_09-14-41_extreme_parkour_go2_qwenpi_v3_scratch_seed1_3k_h200/model_2999.pt",
|
| 4 |
+
"latency_config": "/home/ubuntu/latency-sensitive-bench/configs/training/latency/parkour_zero.yaml",
|
| 5 |
+
"latency": {
|
| 6 |
+
"method": "fixed",
|
| 7 |
+
"env_fps": 50,
|
| 8 |
+
"obs_fps": 10,
|
| 9 |
+
"profile_path": null
|
| 10 |
+
},
|
| 11 |
+
"teacher_checkpoint": "/home/ubuntu/model_14999.pt",
|
| 12 |
+
"teacher_baseline": false,
|
| 13 |
+
"seed": 1
|
| 14 |
+
},
|
| 15 |
+
"evaluation": {
|
| 16 |
+
"num_envs": 256,
|
| 17 |
+
"completed_episodes": 100,
|
| 18 |
+
"requested_episodes": 100,
|
| 19 |
+
"max_episode_steps": 1500,
|
| 20 |
+
"control_repeat": 5
|
| 21 |
+
},
|
| 22 |
+
"metrics": {
|
| 23 |
+
"reward_mean": 11.867607007026672,
|
| 24 |
+
"reward_std": 4.540987568918352,
|
| 25 |
+
"episode_length_raw_mean": 443.73,
|
| 26 |
+
"episode_length_raw_std": 139.97552852501963,
|
| 27 |
+
"waypoints_mean": 0.6757142857142857,
|
| 28 |
+
"waypoints_std": 0.33494135947313863,
|
| 29 |
+
"edge_violation_mean": 0.118,
|
| 30 |
+
"edge_violation_std": 0.3317770335632049
|
| 31 |
+
},
|
| 32 |
+
"latency": {
|
| 33 |
+
"scope": "all_vector_slots_until_requested_episode_count",
|
| 34 |
+
"admissions": 33536,
|
| 35 |
+
"drops": 0,
|
| 36 |
+
"raw_control_frames": 167463,
|
| 37 |
+
"sampled_ms_mean": 0.0
|
| 38 |
+
},
|
| 39 |
+
"throughput": {
|
| 40 |
+
"raw_control_frames": 167463,
|
| 41 |
+
"elapsed_seconds": 51.53632309200475,
|
| 42 |
+
"raw_control_frames_per_second": 3249.4169151539627
|
| 43 |
+
}
|
| 44 |
+
}
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_l0.yaml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__base__: train.yaml
|
| 2 |
+
latency:
|
| 3 |
+
method: fixed
|
| 4 |
+
fixed_latency_ms: 0
|
| 5 |
+
seed: 0
|
| 6 |
+
evaluation:
|
| 7 |
+
num_envs: 256
|
| 8 |
+
episodes: 100
|
| 9 |
+
max_episode_steps: 1500
|
| 10 |
+
seed: 1
|
| 11 |
+
deterministic: true
|
| 12 |
+
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_profile.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"identity": {
|
| 3 |
+
"checkpoint": "/home/ubuntu/latency-sensitive-bench/third_party/Isaaclab_Parkour/logs/rsl_rl/unitree_go2_parkour/2026-09-16_09-14-41_extreme_parkour_go2_qwenpi_v3_scratch_seed1_3k_h200/model_2999.pt",
|
| 4 |
+
"latency_config": "/home/ubuntu/latency-sensitive-bench/outputs/latency_rl/parkour/h200_20260916_qwenpi_v3/latency.yaml",
|
| 5 |
+
"latency": {
|
| 6 |
+
"method": "temporal",
|
| 7 |
+
"env_fps": 50,
|
| 8 |
+
"obs_fps": 10,
|
| 9 |
+
"profile_path": "/home/ubuntu/latency-sensitive-bench/results/profiling/profiles/qwenpi_v3/1x-rtx3090/extreme_parkour_go2/instance_b19d7af6f1bdd95d/profile.json"
|
| 10 |
+
},
|
| 11 |
+
"teacher_checkpoint": "/home/ubuntu/model_14999.pt",
|
| 12 |
+
"teacher_baseline": false,
|
| 13 |
+
"seed": 1
|
| 14 |
+
},
|
| 15 |
+
"evaluation": {
|
| 16 |
+
"num_envs": 256,
|
| 17 |
+
"completed_episodes": 100,
|
| 18 |
+
"requested_episodes": 100,
|
| 19 |
+
"max_episode_steps": 1500,
|
| 20 |
+
"control_repeat": 5
|
| 21 |
+
},
|
| 22 |
+
"metrics": {
|
| 23 |
+
"reward_mean": 17.155352230072022,
|
| 24 |
+
"reward_std": 4.339797412772,
|
| 25 |
+
"episode_length_raw_mean": 579.28,
|
| 26 |
+
"episode_length_raw_std": 103.19414672931755,
|
| 27 |
+
"waypoints_mean": 0.9214285714285714,
|
| 28 |
+
"waypoints_std": 0.19099631367315625,
|
| 29 |
+
"edge_violation_mean": 0.099,
|
| 30 |
+
"edge_violation_std": 0.3364505907261867
|
| 31 |
+
},
|
| 32 |
+
"latency": {
|
| 33 |
+
"scope": "all_vector_slots_until_requested_episode_count",
|
| 34 |
+
"admissions": 12433,
|
| 35 |
+
"drops": 23919,
|
| 36 |
+
"raw_control_frames": 181588,
|
| 37 |
+
"sampled_ms_mean": 238.70590165410624
|
| 38 |
+
},
|
| 39 |
+
"throughput": {
|
| 40 |
+
"raw_control_frames": 181588,
|
| 41 |
+
"elapsed_seconds": 53.32690185899264,
|
| 42 |
+
"raw_control_frames_per_second": 3405.185631825307
|
| 43 |
+
}
|
| 44 |
+
}
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/eval_profile.yaml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__base__: train.yaml
|
| 2 |
+
evaluation:
|
| 3 |
+
num_envs: 256
|
| 4 |
+
episodes: 100
|
| 5 |
+
max_episode_steps: 1500
|
| 6 |
+
seed: 1
|
| 7 |
+
deterministic: true
|
| 8 |
+
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/provenance.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task": "extreme-parkour-go2",
|
| 3 |
+
"model": "ppo-command-policy",
|
| 4 |
+
"latency_profile_model": "qwenpi_v3",
|
| 5 |
+
"status": "evaluated",
|
| 6 |
+
"wandb_url": "https://wandb.ai/saberrr-zju/isaaclab-parkour/runs/h7ebvge6",
|
| 7 |
+
"checkpoint": "checkpoint.pt",
|
| 8 |
+
"checkpoint_bytes": 171687483,
|
| 9 |
+
"checkpoint_sha256": "896954eb9e51f2f3ee96b4f82286c330bc57c2b21e16bbfdee023a9bbe373dc1",
|
| 10 |
+
"checkpoint_iteration": 2999,
|
| 11 |
+
"decision_timesteps": 442368000,
|
| 12 |
+
"control_frames": 2211840000,
|
| 13 |
+
"initialization": "from_scratch",
|
| 14 |
+
"training_seed": 1,
|
| 15 |
+
"source_revisions": {
|
| 16 |
+
"benchmark": "f0929454423a5f170eb3c226aec42103ea351248",
|
| 17 |
+
"isaac_lab": "46dff135f44683f031edf346e544fcfd8456b2bb",
|
| 18 |
+
"parkour": "b34830ece802978aaff8b97500a3a924d1209c21"
|
| 19 |
+
},
|
| 20 |
+
"teacher": {
|
| 21 |
+
"checkpoint_sha256": "acd97fbc316cdfa52521f05ee6c6be8614a18b28cb9ff918a4aa9e25c7e29378"
|
| 22 |
+
},
|
| 23 |
+
"profile": {
|
| 24 |
+
"repo_id": "latency-sensitive-bench/profiles",
|
| 25 |
+
"revision": "e8be1e5dfd309f85ab7ff704dc02bd4898b7ceb4",
|
| 26 |
+
"path": "profiles/qwenpi_v3/1x-rtx3090/extreme_parkour_go2/instance_b19d7af6f1bdd95d",
|
| 27 |
+
"profile_sha256": "2abdc10b7e63aeec20bd3688992dec07c813f76c87a1072c20d91b57430e3b52"
|
| 28 |
+
},
|
| 29 |
+
"evaluations": {
|
| 30 |
+
"profile": "eval_profile.json",
|
| 31 |
+
"zero_latency": "eval_l0.json"
|
| 32 |
+
}
|
| 33 |
+
}
|
| 34 |
+
|
latency-aware/extreme-parkour-go2/small-policy/ppo-qwenpi_v3-rtx3090-v1/train.yaml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
experiment:
|
| 2 |
+
name: extreme_parkour_go2_qwenpi_v3_scratch
|
| 3 |
+
seed: 1
|
| 4 |
+
env:
|
| 5 |
+
name: extreme_parkour_go2
|
| 6 |
+
env_fps: 50
|
| 7 |
+
obs_fps: 10
|
| 8 |
+
simulator_device: cuda:0
|
| 9 |
+
latency:
|
| 10 |
+
method: temporal
|
| 11 |
+
seed: 0
|
| 12 |
+
profile_path: profiles/qwenpi_v3/1x-rtx3090/extreme_parkour_go2/instance_b19d7af6f1bdd95d/profile.json
|
| 13 |
+
executor:
|
| 14 |
+
simulated_worker_capacity: 1
|
| 15 |
+
scheduler:
|
| 16 |
+
hold_policy: hold
|
| 17 |
+
ordering_policy: latest_ready
|
| 18 |
+
command:
|
| 19 |
+
dimension: 34
|
| 20 |
+
horizon: 1
|
| 21 |
+
control_repeat: 5
|
| 22 |
+
training:
|
| 23 |
+
num_envs: 6144
|
| 24 |
+
kit_threads: 8
|
| 25 |
+
physx_threads: 8
|
| 26 |
+
physics_dt: 0.005
|
| 27 |
+
decimation: 4
|
| 28 |
+
decisions_per_env_per_iteration: 24
|
| 29 |
+
max_iterations: 3000
|
| 30 |
+
learning_epochs: 5
|
| 31 |
+
minibatches: 4
|
| 32 |
+
learning_rate: 0.0002
|
| 33 |
+
learning_rate_schedule: fixed
|
| 34 |
+
|