ml: 按运行手册审查修订——头分目录不互相覆盖(ml/runs/<CFG>、selected_ckpt/CKPT);统一 $PYTHON(Windows Git Bash 可跑);gen 按实测样本/任务自动补量;R10 改终态判据(≥5k 样本/s≈60k 步≤3.5h);m5 纯策略/仿真安全层双口径;无老师题定长 6 s 口径;APG 展开随批时长、端点+中点铰链、余量 3 mm(投影同步);挖错池只用本轮;门禁加 R7;bench 加 R8 对抗集与刹停率、--nc-n/--route-n/--r8-n;新增 check_r2 与 acceptance;export 默认 fp32;出题分块防 OOM;val 为空保护

This commit is contained in:
Hark
2026-10-18 06:40:24 +08:00
committed by cbb
parent 8800a68cad
commit f8cdabb781
18 changed files with 493 additions and 156 deletions
+33 -18
View File
@@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Transformer 避障运动策略:最终方案</title>
<title>Transformer 轨迹拟合训练方案</title>
<style>
html {
color: #1a1a1a;
@@ -252,7 +252,7 @@
</head>
<body>
<header id="title-block-header">
<h1 class="title">Transformer 避障运动策略:最终方案</h1>
<h1 class="title">Transformer 轨迹拟合训练方案</h1>
</header>
<nav id="TOC" role="doc-toc">
<ul>
@@ -613,8 +613,9 @@ K=8,二者共用骨干,切换约 1 天</td>
<tr class="odd">
<td>训练余量</td>
<td>越大越不易被认证拒绝</td>
<td>越大行程越长、贴柱越难</td>
<td><strong>5 mm</strong></td>
<td>越大行程越长、贴柱越难;高于老师轨迹自身间隙(实测最小间隙 p50 4.4 /
p90 5.9 mm)会与 BC 标签对抗</td>
<td><strong>3 mm</strong>(≈ 老师 p10),APG 碰撞项与运行时投影共用</td>
</tr>
<tr class="even">
<td>关节噪声增广 σ</td>
@@ -1230,18 +1231,19 @@ s),统计到达率、用时 ≤ 老师 × 1.3
<h3 id="71-主力apg-可微微调">7.1 主力:APG 可微微调</h3>
<pre><code>for 每个 batch(随机采样 q0 和目标,不需要老师):
q = q0
for t in 0..H-1 (H = 60 次推理 × 3 步 = 180 步 ≈ 3.6 s;长任务分段截断反传):
for t in 0..H-1 (H = 本批老师时长 p90 × 1.2,60–150 次推理 × 3 步 ≈ 3.6–9 s;无老师题按 6 s;每 10 次推理截断反传):
chunk = π(obs(q, 目标, 前缀), z) # 每条展开固定一个噪声 z
Δq = chunk[0:3] # 与部署一致
q = clamp(q + Δq)
累计 L_col(q), L_smooth(Δq)
L = w_tgt·L_target(q_H) + w_col·ΣL_col + w_smooth·ΣL_smooth (+ w_len·行程) + w_bc·L_BC
L = w_tgt·Σ_段末 L_target(q) + w_col·ΣL_col + w_smooth·ΣL_smooth (+ w_len·行程) + w_bc·L_BC
反传,梯度裁剪 ≤ 1.0,lr 1e-4</code></pre>
<ul>
<li>碰撞项 L_col = Σ ReLU(margin − 胶囊距离),margin =
<code>margin_mm</code> + 训练余量 5
mm(覆盖安全层认证的保守量);含臂×立柱、臂×台架、臂×臂(非相邻段)。</li>
<li>到达项:位置误差² + λ_rot·‖R − R*‖_F²。</li>
<li>碰撞项 L_col = Σ ReLU(margin − 胶囊距离),margin = 训练余量 3
mm(间隙已扣除 <code>margin_mm</code>);每步端点 +
中点;含臂×立柱、臂×台架、臂×臂(非相邻段)。</li>
<li>到达项:每个截断段末的位置误差² + λ_rot·‖R −
R*‖_F²;不做到达即停,段末项在整条展开上持续给出接近梯度。</li>
<li>平滑项:速度² + 加速度²。</li>
<li>BC 锚定项:保留预训练损失,防止多模态被压缩;每轮监控左右比例。</li>
<li>采样分布同 §4.3,B/C/D 类提到 60%,其中贴柱类 40%。</li>
@@ -1311,8 +1313,9 @@ ms,否则放 Web Worker 与推理流水线并行。</li>
</thead>
<tbody>
<tr class="odd">
<td><code>traj_policy.onnx</code>(fp16,约 9.8 MB)+
<code>traj_policy.meta.json</code>(指纹 / 特征版本 / TCP)</td>
<td><code>traj_policy.onnx</code>(fp32,约 20 MB;wasm / CPU 后端上
fp16 不保证更快)+ <code>traj_policy.meta.json</code>(指纹 / 特征版本 /
TCP)</td>
<td>PRM 路网、IK 候选大表</td>
</tr>
<tr class="even">
@@ -1464,6 +1467,11 @@ rt)</td>
</table>
<p>说明:30 例全对时,失败率的 95% 置信上界约 9.5%;扩展集 1000 例 0
失败时约 0.3%,因此以扩展集作为 30/30 的统计支撑。</p>
<p>口径:本表全部按部署形态(<code>tests/policy_bench.cjs</code>,与浏览器同一份运行时)或
held-out 闭环仿真(开仿真安全层)测量,由
<code>ml/eval/acceptance.py</code> 汇总;M5
门禁与挖错用的是关安全层的纯策略口径,二者互不替代。挖错题与门禁集没有老师参考,到达按定长
6 s 判,「到达用时」「关节行程」两项只在有老师参考的任务上统计。</p>
<hr />
<h2 id="10-当前存在的问题与风险">10. 当前存在的问题与风险</h2>
<h3 id="101-只能靠实测消除的风险按里程碑顺序">10.1
@@ -1489,7 +1497,9 @@ rt)</td>
<tr class="even">
<td>R2</td>
<td>时间律仍有不可观测成分,闭环起不了步</td>
<td>近邻样本标签方差 &lt; 10% 步长;起步失败率 = 0</td>
<td>近邻样本标签方差 &lt; 10%
步长(<code>ml/eval/check_r2.py</code>);起步失败率 = 0(闭环
<code>start_fail</code>)</td>
<td>进一步把剩余路程估计加入输入</td>
<td>M1 / M5</td>
</tr>
@@ -1497,7 +1507,7 @@ rt)</td>
<td>R3</td>
<td>距离认证过于保守,贴柱处拒绝率高,影响 30/30</td>
<td>near_column 上认证拒绝率统计;离线 10⁵ 段 0.01° 审计漏检 = 0</td>
<td>训练余量提高到 3–6 mm,接受行程变长;收紧杠杆界(按位形分区)</td>
<td>训练余量提高到 4–6 mm,接受行程变长;收紧杠杆界(按位形分区)</td>
<td>M2 / M7</td>
</tr>
<tr class="even">
@@ -1524,14 +1534,17 @@ rt)</td>
<tr class="odd">
<td>R7</td>
<td>APG 压缩多模态或拉长路径(ELMP 中路径 +23%)</td>
<td>每轮左右比例与行程门禁</td>
<td>每轮门禁:B/C 类左右绕行比例变化 ≤ 5 个百分点、行程中位数比 ≤
1.05(<code>ml/mining/gate.py</code>)</td>
<td>加大 BC 锚定权重;行程项</td>
<td>M6</td>
</tr>
<tr class="even">
<td>R8</td>
<td>卡死换向活锁</td>
<td>50 个"两侧都要绕远"对抗用例 3 s 内恢复 ≥ 95%,活锁 = 0</td>
<td>50 个"两侧都要绕远"对抗用例(J1 起终差 ≥
140°、终点贴立柱,部署运行时)首次换向锁后 3 s 内到达 ≥ 95%,活锁 =
0(<code>tests/policy_bench.cjs</code> r8)</td>
<td>子目标改为离散绕行锚点分类</td>
<td>M6 / M7</td>
</tr>
@@ -1545,8 +1558,10 @@ rt)</td>
<tr class="even">
<td>R10</td>
<td>训练耗时估计偏差</td>
<td>2000 步吞吐 ≥ 2 万样本/s</td>
<td>降 epoch 或增大 batch</td>
<td>60000 步 ≤ 3.5 h,即 2000 步测速 ≥ 5000 样本/s(3090 实测 6.2 k/s ≈
2.8 h)</td>
<td>FK 损失胶囊数 96 → 48;仍不够则步数降到 40000(MeanFlow JVP
受算力限制,增大 batch 无效)</td>
<td>M5</td>
</tr>
</tbody>