exp: 轮次41——K16串行/批量决策逐位相同(等价性扩到K=16)+墙钟-18%;brake_rate首读mean7.06%但p50=0,刹停集中在一小撮卡住的题
This commit is contained in:
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"config": {
|
||||||
|
"ckpt": "ml/runs/base_dag2_dag1/best.pt",
|
||||||
|
"samples": "ml/data/samples",
|
||||||
|
"tasks": null,
|
||||||
|
"split": "val",
|
||||||
|
"n": 256,
|
||||||
|
"K": 16,
|
||||||
|
"commit": 2,
|
||||||
|
"fb": 2.2,
|
||||||
|
"ki": 0.0,
|
||||||
|
"fb_scale": 0.0,
|
||||||
|
"fb_near": 0.2,
|
||||||
|
"fb_fallback": 0.0,
|
||||||
|
"kdecay": 0.9,
|
||||||
|
"kimax": 0.5,
|
||||||
|
"fb_every": 1,
|
||||||
|
"safety_try": 0,
|
||||||
|
"sel_w": 0.1,
|
||||||
|
"dls_safety": 1,
|
||||||
|
"fb_clear": 0.0,
|
||||||
|
"fb_cmin": 0.3,
|
||||||
|
"sub_refresh": 0,
|
||||||
|
"fb_block_gain": 0.5,
|
||||||
|
"dump": null,
|
||||||
|
"out": "docs/experiment_round40_K16cb1.json",
|
||||||
|
"trace": null,
|
||||||
|
"select": "endpoint",
|
||||||
|
"replan": "empty",
|
||||||
|
"safety": 1,
|
||||||
|
"partial": 1,
|
||||||
|
"inc_cap": 1,
|
||||||
|
"gap_margin": 0.0,
|
||||||
|
"cert_batch": 1,
|
||||||
|
"steps": 1,
|
||||||
|
"z_scale": 1.0,
|
||||||
|
"len_w": 0.0,
|
||||||
|
"backoff": 0,
|
||||||
|
"max_sec": null,
|
||||||
|
"seed": 0,
|
||||||
|
"dls": "analytic",
|
||||||
|
"device": "cuda"
|
||||||
|
},
|
||||||
|
"batch_size": 256,
|
||||||
|
"batch_seed_rule": "same seed per batch",
|
||||||
|
"checkpoint_sha256": "f7f686fd8ee92fb6948fbcc4ee954636065ad87bb54f661c4f8f575bc16c2ce1",
|
||||||
|
"tasks_sha256": "249bd93457825cda98c59e64d9a096d3473c69aeb3553de1dea6d9e56be71772",
|
||||||
|
"kin_fp": "2ebcbf17",
|
||||||
|
"act_scale": 1.0,
|
||||||
|
"metrics": {
|
||||||
|
"n": 256,
|
||||||
|
"n_ref": 256,
|
||||||
|
"success": 0.5625,
|
||||||
|
"collision_free_success": 0.5625,
|
||||||
|
"time_ok_1p3": 0.296875,
|
||||||
|
"collision_rate": 0.0,
|
||||||
|
"collision_steps_mean": 0.0,
|
||||||
|
"travel_ratio_median": 2.6243183612823486,
|
||||||
|
"time_mean_s": 2.6024999618530273,
|
||||||
|
"brakes_mean": 13.7734375,
|
||||||
|
"start_fail": 0.0,
|
||||||
|
"goal_ratio_2s": 0.2799961566925049,
|
||||||
|
"err_fail_med": 195.448486328125,
|
||||||
|
"err_success_med": 0.15947841107845306,
|
||||||
|
"dls_share": 0.640625,
|
||||||
|
"time_budget": "teacher×2(≥3 s)",
|
||||||
|
"speed_ratio_p50": 1.0000016689300537,
|
||||||
|
"speed_ratio_p95": 1.0000101327896118,
|
||||||
|
"speed_ratio_max": 1.0000101327896118,
|
||||||
|
"over_vmax_rate": 0.0,
|
||||||
|
"accel_ratio_p95": 1.0000016689300537,
|
||||||
|
"accel_ratio_max": 1.0000101327896118,
|
||||||
|
"reverse_p50": 0.26249998807907104,
|
||||||
|
"reverse_mean": 0.2693643867969513,
|
||||||
|
"reverse_moving_p50": 0.3194444477558136,
|
||||||
|
"moving_share_p50": 0.9869565367698669,
|
||||||
|
"brake_rate_mean": 0.07063301652669907,
|
||||||
|
"brake_rate_p50": 0.0,
|
||||||
|
"n_plans_mean": 195.0
|
||||||
|
},
|
||||||
|
"simulation_wall_s": 469.2955887999997
|
||||||
|
}
|
||||||
@@ -108,6 +108,16 @@
|
|||||||
- **对 `backoff` 的预期与判据**:全拒意味着"连第 1 步的端点或中点已经穿进障碍",缩步能不能救取决于**穿得有多深**(穿 0.1 mm 救得回,穿 3 mm 救不回)。这个数转储里没记(只记被选中那条),所以直接由 `backoff_mean`/`reject_all_mean` 来量:
|
- **对 `backoff` 的预期与判据**:全拒意味着"连第 1 步的端点或中点已经穿进障碍",缩步能不能救取决于**穿得有多深**(穿 0.1 mm 救得回,穿 3 mm 救不回)。这个数转储里没记(只记被选中那条),所以直接由 `backoff_mean`/`reject_all_mean` 来量:
|
||||||
`reject_all_mean ≈ 原全拒次数`(=backoff_mean+brakes_mean,与轮次 33 cap 的 19.55 可比),`backoff_mean/(backoff_mean+brakes_mean)` 就是"缩步能救回的比例"。这是补跑(#22)要读的第一个数。
|
`reject_all_mean ≈ 原全拒次数`(=backoff_mean+brakes_mean,与轮次 33 cap 的 19.55 可比),`backoff_mean/(backoff_mean+brakes_mean)` 就是"缩步能救回的比例"。这是补跑(#22)要读的第一个数。
|
||||||
|
|
||||||
|
## K=16 串行 vs 批量认证等价 + 第一次真正核算"刹停率"(轮次 41)
|
||||||
|
|
||||||
|
- `--K 16 --cert_batch 1` 与 `--K 16`(串行)跑同一 256 题同 seed:`success / time_ok_1p3 / brakes_mean / travel_ratio_median / collision_*` **全部逐位相同**,差异键只有 7 个、且全是我这几轮新加/改口径的报表键(`reverse_*` 的两种口径、`n_plans`、`brake_rate`、`moving_share`)。⇒ **轮次 39 的"试候选数 1/3/8/16 曲线"同样描述批量口径**,也就是说 K=16 到达 0.5625 这个收益不依赖串行早停这个巧合。
|
||||||
|
(`docs/experiment_round40_K16cb1.json` vs `docs/experiment_round39_K16.json`)
|
||||||
|
- **整批墙钟 573 s → 469 s(−18%)**:批量把 K 次小调用并成 1 次大调用,在 B=256 的评估里本来就更快。这只说明趋势,**单次规划的 P99 要用独占微基准另测**(修好的探针排在链尾)。
|
||||||
|
- **`brake_rate`(刹停 / 规划次数)第一次有读数**:K=16 口径 `mean = 7.06%`,但 **`p50 = 0.0`**,`n_plans_mean = 195`,`moving_share_p50 = 98.7%`。
|
||||||
|
⇒ §9.2 要"<2% 推理周期",均值差 3.5 倍,但**中位任务一次都不刹**——全部刹停集中在一小撮题上。这与失败分类完全一致(63/109 是"走一半被冻住",而它们就是那撮尾巴)。
|
||||||
|
**含义**:继续在"普遍少刹"上花力气收益有限,真正的问题是**那批卡住的题里安全层没有可行候选**——正是 K=16(+3.9 pp)与 #24(把间隙喂进打分)要打的靶子。
|
||||||
|
- 仪表互验:K=16 批量臂 `reverse_p50 = 0.2625` 与我离线同窗口重算的 K=8 对照 0.247 同量级(K=16 略高,与它到达更多、动得更多一致);`reverse_moving_p50 = 0.3194` > 全步口径 ✓ 方向正确(除掉站住的步之后更抖)。之前那批 1.x 的读数确系修分母前的旧口径。
|
||||||
|
|
||||||
## #24 的设计定稿:一次几何调用同时供打分与认证(不放松判据、不加成本)
|
## #24 的设计定稿:一次几何调用同时供打分与认证(不放松判据、不加成本)
|
||||||
|
|
||||||
- 表面看有循环依赖:打分要用的"沿路间隙"目前只在安全层里算,而安全层只认证**排完序**的候选。破法是把顺序倒过来——**先对全部 K 条候选算一次 `2·commit_n` 点的间隙矩阵**,然后:
|
- 表面看有循环依赖:打分要用的"沿路间隙"目前只在安全层里算,而安全层只认证**排完序**的候选。破法是把顺序倒过来——**先对全部 K 条候选算一次 `2·commit_n` 点的间隙矩阵**,然后:
|
||||||
|
|||||||
Reference in New Issue
Block a user