V4.15 · 滚动重规划(Receding-Horizon Neural Parking)

2026-08-28 立项 · 承接 V4.14 P1 终局裁决 · 外部评审版 v3(14 条采纳已合入)· 训练/评估全程在本页回填

验收硬门(闭环口径)

≤0.3m
终点误差 med
≤0.6m
终点误差 p90
≥90%
零碰撞率(仿真门槛)
纯NN
禁运行时IPOPT

90% 零碰撞为仿真阶段验收门槛,非最终产品目标——后续版本持续压低。内部加牌参考线(非验收门):med≤0.2m / p90≤0.5m,为实车定位/执行器滞后预留衰减余量。

📌 为什么起 V4.15:V4.14 的遗产

V4.14 P1(44K 数据 / 300ep / 碰撞权重课程 2→8)已收官:碰撞 36%→13.6% 有效,但 med 卡死 0.90m 平台,距 0.3m 硬门差 3 倍。这正是立项调研(110 篇论文)预言的 Curse of Precision:单次前向的长程精度天花板在 0.2-0.4m 附近,超指数恶化——继续在"一次算准全程"这条路上加数据/调损失,边际收益已尽。

资产状态V4.15 中的角色
A组配方:轨迹级 Transformer + goal-frame + 物理损失✅ P0 裁决胜出(5K 数据即 med 0.28m 开环)直接复用为滚动重规划的单步规划器
44K DAgger 专家数据 + warehouse 环境 + RK4 闭环评估器✅ 全部就绪(169:/root/warehouse_v414/)训练/评估基础设施原样继承
单次前向口径⛔ P1 实测撞天花板(med 0.90m)正式退役,切换闭环口径(用户 08-28 拍板"可以干")
ep40 best 权重(开环 0.72m / 碰撞 36%)已存 169:/root/v414_p0/p1_best.pth候选:作为规划器 warm-start(待 A/B 验证)

🔄 核心思想:不指望一次算准,每走一步重算

单次前向(V4.14)

网络看一眼起点 → 吐出全程 40 航点 → 盲开到底。开环第 5 点偏 5cm,闭环执行到该处姿态已歪,后续 35 点全部建立在错误状态上——误差复利放大,P1 的 0.9m 平台很大一部分来自这里而非网络本身。

滚动重规划(V4.15)

t=0 算全程 → 只执行前 2~3 个航点 → 用 RK4 真实新状态(含偏差)重算 → 再执行几步 → 循环至入库。每次重算都吃进"我已经偏了"的事实,误差每 0.5s 被纠正一次,不复利。

state = start
while not done:
    if pos_err(state) < eps:  break            # ① 终止:位置误差达标
    if steps > MAX_STEPS:     mark_timeout()   # ② 终止:步数上限(防车位附近震荡死循环 → 记失败case)
    traj  = NN(state)                          # 同一个网络,单次前向
    if collision_imminent(traj): mark_fail(); break   # ③ 终止:检测到碰撞即停(记失败case)
    state = rollout(state, traj[:K])           # 只执行前 K 步;执行层带转向角变化率 clip

类比:人开车瞄一眼终点打一把方向,开两秒再看实际位置修正——没有人是一次规划好全程方向盘角度然后闭眼开的。

为什么能破 0.3m 天花板:每段只要求"短视野内准"(这是网络擅长的),长程精度由"重算 + 反馈闭环"保证(这是控制论擅长的)。两条 0.4m 级的短程规划串联,好过一条 0.9m 的长程规划。

⚖️ 口径变更声明(本页最重要的一个框)

主指标不变:med ≤0.3m / p90 ≤0.6m / 零碰撞 ≥90%,全部按 闭环 rollout 终态 计算——与 V4.14 的评估器同一口径(300 条固定验证集、RK4 真动力学、OBB 碰撞检测),数字可直接与历史版本对比。

变的只有一件事:"单次前向出全程"的部署形态退役。V4.15 的网络仍是每次调用内部单次前向、无任何求解器,但执行层变为 N 次前向 + 反馈循环。运行时依然 禁 IPOPT / 禁解析兜底——"把网络做到绝"的红线不破。

依据:立项调研显示工业界(Apollo/毫末等量产方案)闭环重规划是 100% 共识路线;单次前向天花板 0.2-0.4m 是已发表结论,P1 用 44K 数据实测复核确认。

📐 训练设计:四阶段递进(切片 BC → DAgger 前置一轮 → 分层评估 → RL 收官)

阶段做法关键点
S1 · 闭环短视 BC数据切片重组织:以轨迹上任意中间状态为起点、以目标为终点的(状态→剩余轨迹)对。沿用 A 组配方(goal-frame + 物理损失)44K 轨迹切片后预计 200K+ 样本,零新增求解成本。让网络学会"从任何偏差状态救回目标"
S1b · DAgger 前置一轮(评审#1采纳)S1 模型闭环 rollout 采集网络跑偏状态 → IPOPT 补解救场样本 → 并入数据集混训。第 2 轮是否执行由本轮闭环指标决定,不由流程教条决定补解不后置到加牌阶段——第一轮 BC 必有分布偏移,前置一轮是标准 DAgger 动作
S2 · 分层双指标评估(评审#2/#7采纳)验证集分层拆分,每轮同时输出:①专家切片测试集指标 ②闭环 rollout 生成状态子集的 med/p90。两套差异过大直接报警。扫 K∈{1,2,3,5} 同步统计单 episode 平均 NN 调用次数(精度-算力联合筛选)防"开环好看、闭环跑飞"(P1 best 偏置的教训);推理频次数据为产品化预留
R1 · GRPO RL 后训练(主线收官)S2 底子确认后(碰撞个位数、med 0.3-0.5m 级)启动。reward = -终端误差 - 碰撞罚 - 平滑罚;组采样 G=8-16 批 rollout 组内排名做 advantage(免 critic)文献实证最厚的精度倍增器(Swift/Nature 2023、REAP 2026 实车泊车"BC米级→RL厘米级")。护栏见下方"RL 防崩三件套"

损失函数(S1 起生效):① 轨迹模仿 + 物理一致性(A组配方);② 碰撞 hinge-only(只罚实际碰撞样本——P1 课程抢容量教训);③ 障碍安全距离 margin 渐进损失(评审#3采纳):低权重(≈0.1×hinge)约束不紧贴障碍物行驶,降低扰动下碰撞风险——全程监控 med 不因 margin 项回退。

Checkpoint 择优(评审#4B采纳):硬门过滤——碰撞率>10% 的权重一律不存 best,过门权重中选终端 med 最小者。fallback:训练早期无权重过门时暂存 best-score(med 归一化+碰撞归一化加权),首个过门权重出现即取代。periodic checkpoint 全程保存(P1 丢 ep300 权重的教训)。

RL 防崩三件套(R1 起生效):① KL 锚定 BC(防破坏已学动力学);② 择优沿用硬门——碰撞>10% 的 policy 不保存;③ 小步长课程(碰撞罚 soft→hard 渐进收紧,REAP 配方)。

🧪 技术武器库(六招,110 篇文献背书,正交可叠加)

#招出处/实证状态对什么短板
1滚动重规划(每 0.5s 用最新状态重新前向)工业界 100% 共识(Apollo/毫末/Tesla 复盘)本版主线误差复利(P1 的 0.9m 平台主因)
2DAgger 自举(偏差状态上 IPOPT 重解救场样本)HG-DAgger/ExIt;专家是 IPOPT 全自动S1b 前置一轮 + 按指标追加分布偏移(没见过自己犯错后的状态)
3多候选 + 解析打分(K=16-32 条候选→可微解析评分→argmax,GPU <10ms)NVIDIA Hydra-MDP(NavSim 冠军)E5 加牌(碰撞专项)碰撞率——但定位为"降低"而非"彻底解决":全部候选都可能带碰撞(评审#10),打分函数必须 A/B 消融验证(防选出抖动大/动力学不合理轨迹)
4RL 后训练(GRPO 组采样批 rollout)Swift(Nature 2023)/Song 2023/REAP 2026——"BC 米级→RL 后厘米级"实证最厚R1 主线收官med 精度 + 碰撞(reward 同时含两项)
5网络自迭代精化(训 refinement 算子:粗解→更优解;同伦链中间解=现成教材)Berkeley Solution Smoothing:"蒸馏网络+1~2步 ≈ 求解器精度"储备(不做强依赖)med 精度(增益项)
6Sobolev 灵敏度蒸馏(蒸馏时连 ∂u/∂x 灵敏度一起学)INRIA 2026:精化 0.22s vs 从头解 4.1s,闭环无 compounding error储备(不做强依赖)精化质量/收敛速度

#5/#6 仿真效果好但工程复杂度高、推理算力开销上涨——定位后期储备优化,主路径不强依赖(评审#11)。全部招数运行时零求解器:多步前向/多候选解析评分/滚动重规划均属"纯 NN 合法算子";禁 IPOPT/ACADOS/MCTS。

🛡️ 闭环执行层设计(评审 #5/#6/#8/#16 采纳)

机制设计
终止条件三件套① 位置误差达标退出;② 最大迭代步数上限(超限记 timeout 失败,防车位附近震荡死循环);③ 检测到严重碰撞立即终止记失败。三类失败 case 全部落盘(见 failure case 沉淀)
抖动双层抑制① 轨迹前缀一致性软约束:新轨迹前若干航点对齐上一轮规划中尚未执行的轨迹段(软对齐——硬对齐会妨碍纠错);② 执行层转向角变化率 clip:硬件级保证,不依赖事后平滑
failure case 数据集极端奇异姿态失败 case(timeout/碰撞/死局)统一落盘 → 回流训练迭代(S1b 补解优先处理这批)→ 持续扩充模型边界(评审#17)
safety 语义(仿真阶段)critic 报警 → 终止 episode + 记失败,即仿真的"刹车"。规则化 recovery(带碰撞检查的后退)属产品级系统,留实车化阶段(评审#8 简化采纳)

📊 评估指标体系(评审 #12/#13/#14/#15 采纳)

类别指标说明
结果指标(验收)med / p90(闭环终态)验收门 ≤0.3m / ≤0.6m;内部加牌参考线 ≤0.2m / ≤0.5m
零碰撞率验收门 ≥90%(仿真门槛,非产品目标,后续持续压低)
成功率(三终止条件分类统计)达标 / timeout / 碰撞 三分计数
过程指标(强制新增)轨迹平滑度方向盘角速度统计(σ 与峰值)
平均最小障碍物安全距离全程 min-clearance 分布
单次泊车耗时 + NN 调用次数精度-算力联合视图
扰动测试(S3)分布内扰动转向延迟 / 初始姿态噪声 / 模型失配三组
OOD 大扰动专项单独统计 OOD 失败率,识别分布外失效

🚧 风险与对策

风险判据对策
中间状态起点分布 ≠ 专家轨迹分布(网络没见过"被救"的状态)S2 分层双指标:专家切片 vs 闭环 rollout 子集差异过大报警S1b 前置 DAgger 补解;failure case 优先回流
重规划频率不足 → 段间误差仍复利S2 扫 K 曲线:闭环 med 随 K 减小应单调改善K 调小(单次前向 <10ms 级,算力充足——NN 调用次数同步监控)
闭环震荡 / 车位附近死循环平滑度指标突变 / timeout 计数前缀一致性软约束 + 转向角变化率 clip + 最大步数上限(三层已固化进执行层设计)
碰撞率在闭环下恶化S2 闭环碰撞率 vs P1 开环 13.6%margin 损失(S1 起低权重)→ R1 RL 碰撞罚 → 仍不过线上多候选牌(E5)
RL 训练崩坏 / 破坏 BC 动力学R1 训练中闭环指标回撤超阈值防崩三件套:KL 锚定 + 硬门择优 + 小步长课程;任一失效即回退上一 checkpoint

🖥 执行计划

步内容环境产出
E1切片数据管线 + S1 训练脚本(hinge-only + margin 低权重 + 硬门择优 + periodic ckpt)+ 闭环评估器升级(终止三件套 / 过程指标 / 双指标分层)169(开机后)S1 权重 + 双指标基线回填本页
E2S1b DAgger 前置一轮:闭环采集跑偏状态 → IPOPT 补解 → 混训;失败 case 落盘回流169S1b 权重 + 补解前后指标对比
E3S2 闭环评估:扫 K∈{1,2,3,5} + NN 调用次数统计 + 确定底子是否达标(碰撞个位数 / med 0.3-0.5m)169最优 K + 底子判定 → R1 发车条件
E4R1 GRPO RL 后训练(主线收官,防崩三件套护栏)169RL 后闭环指标回填本页
E5加牌门(仅剩一张):RL 后碰撞仍 >10% → 上多候选+解析打分(打分函数 A/B 消融先行);med 已过 0.3 但未到 0.2 参考线 → 视算力决定是否加169加牌后指标回填
E6S3 扰动实验(分布内三组 + OOD 专项)→ 终局对决:V4.15 vs V4.13(2.02m)vs expert 同题 500 条全维度报告169验收硬门判定

169 当前已关机(2026-08-28)。开机后 E1 即可发车,P1 产物(数据/评估器/best.pth)全部在盘。周期预估:E1-E3 地基 1~2 天(含 S1b 补解),E4 RL 1-2 天,E5-E6 0.5-1 天。

📜 时间线(实施阶段:细节/数据/变更原因全记录)

2026-08-28
V4.15 立项:滚动重规划发车
用户拍板"可以干,先起个网页写清楚"。口径变更(单次前向 → 闭环滚动)经用户批准;主指标数值与评估器口径不变。
方案增强:武器库六招 + 加牌路线
用户问"除滚动重规划外还有什么靠谱招"——基于 110 篇调研新增技术武器库卡:六招正交可叠加,各附实证出处。
RL 升主线(R1)
用户拍板"有必要把 RL 直接用上"。GRPO 从"med 卡线才上"的备胎升级为 S2 底子确认后的主线收官手段——RL 同时压 med 和碰撞,是必然要打的牌,等卡线再上是浪费。前提护栏:底子必须先过"碰撞个位数"(否则 reward 被碰撞罚淹没),防崩三件套全程在位。
外部 Agent 评审 17 条 → 采纳 14 条合入 ✍️
采纳(14):#1 DAgger 前置一轮("至少2轮"教条拒绝,按指标定);#2 分层双指标+差异报警;#3 margin 安全距离损失(低权重+med 不回退监控);#4B 择优硬门过滤(碰撞>10% 不存,过门选 med 最小,早期 fallback best-score);#5 终止条件三件套;#6 抖动双层抑制(前缀软约束+变化率 clip);#7 K 扫描记 NN 调用次数;#8 safety 语义=仿真终止记失败(规则 recovery 留实车);#10 多候选打分 A/B 消融+降预期为"降低碰撞";#11 #5/#6 储备不强依赖(确认既有定位);#12 OOD 专项扰动;#13 内部加牌参考线 0.2/0.5(验收门 0.3/0.6 不变);#14 注明 90% 为仿真门槛;#15 过程指标三件套(平滑度/最小障碍距离/耗时);#16 死局并入 #5 步数上限;#17 failure case 数据集回流。不采纳(2):#9 GRPO 降为最后兜底——与 110 篇调研实证相悖(Swift/REAP 的跃迁恰在 BC→RL 这步,"RL 破坏 BC"由 KL 锚定解决,是 GRPO 标配非未验证假设),且与用户已拍板的 RL 主线决策冲突;其合理内核(防崩护栏)已并入防崩三件套。#11 为与现状对齐的确认,非改进。
2026-08-28
E1 发车:S1 切片训练启动 🚀
169 已开机。44,964 条轨迹切片 224,820 样本(每轨迹 5 切点 t=0/16/32/48/64),batch 256 + AMP + 8 worker DataLoader(实测 6min/ep,120ep 预计 12h)。损失 = BC + 2×terminal + 2×碰撞hinge(d_safe=0.3, 固定无课程) + 0.2×margin(d_safe=0.6) + 0.1×jackknife + 0.05×smooth。验证:分层双指标(开环切片 + 闭环滚动 K=3 含终止三件套/转向clip/过程指标),硬门择优(碰撞>10% 不存 best)。冒烟 3ep 全链路通过后发车。ep10 首读:开环 med 0.70m(学习正常),闭环 med 15.6m/碰撞 54.9%(远差于开环——分布偏移实锤,正是 S1b DAgger 要治的病;训练极早期数字,等 ep50 判读)。巡检 cron 每 30min 静默监控。
2026-08-28
E1 中期诊断:闭环 15m 异常 → 评估协议修订 🔬
ep40 时开环正常收敛(0.63-0.96m)但闭环卡 15m,触发鉴别实验:P1 best 权重(存档 0.72m)灌入新评估器同题复测——逐步执行逻辑与 P1 原版逐位一致(无 clip 双方均 0.572m),判定代码无 bug,15m 是真实模型行为。机理(单条跟踪实锤):网络近目标时规划"先开出去再倒回"的机动,K=3 滚动只执行每个计划前 3 步前缀 →"倒回来"永不执行 → 反复开出去越滚越远(滚动重规划经典短视前缀陷阱)。P1 权重 K=80 完整执行即回 1.8m 佐证。另:原 0.10m 成功阈值过严 + 无终止承诺放大了现象,v3 评估器修订:成功阈值 0.3m + 碰撞即停(记碰撞时刻 pe)+ max_steps 120。结论:①S1 训练不受影响继续(loss/数据与评估器无关)②K 扫描扩为 {1,2,3,5,10,20,40,80},短视前缀靠大 K 或偏差触发重规划解决 ③S1b DAgger 补网络到达态仍是正解。
2026-08-28
S1 收官 + K 全谱扫描:切片分布问题确诊 ⚠️
S1 跑满 120ep(12.1h)。K 扫描(3 ckpt × 7 K 值,300 条验证):K 越小越差(K=1: 16m → K=80: 10.3m/succ 22%)——与滚动纠错预期相反;最好成绩仅为 P1 权重同协议(1.8m)的 1/5。根因判读:切片点 5 个里 3 个在轨迹中后段(t=48/64 距目标几米,专家剩余轨迹=微调),模型被教成"不管在哪都输出小幅微调",丢失长途机动能力;开环 1m/闭环 10m 的巨大鸿沟即此。碰撞 60% 全谱不降。处置:修正切片分布重训 S1v2——切点偏前段(t=0/8/20/40)+ 样本按剩余距离加权(长剩余样本上采样)+ periodic ckpt 保存逻辑修正(评估轮才存的 bug 一并修)。DAgger 暂缓(底子太差补解会被噪声状态淹没,时机不对)。预计半天出结果。
2026-08-29
S1v2 发车:修正切片分布重训
切点改为偏前段 t=0/8/20/40 + 长剩余加权,314,748 样本(S1 初版的 1.4 倍)。bs 256 / AMP / 8 workers,约 88min/10ep。GPU 利用率实测仅 24%(RTX 5880 48Q,显存 3.2/48G)——CPU 侧闭环评测阻塞为主因。用户立铁律:下一轮训练(S1b)GPU 利用率必须 ≥50%,满血配置已定稿(bs 1024 / workers 16 + persistent + prefetch 4 / 评测异步重叠 / torch.compile),启动后采样验证达标才放跑。
2026-08-29
9:10 定时关机事故 + resume 治本 🔧
169 每日 9:10 定时关机(用户确认不取消)杀掉训练/生产/下载三线。恢复过程:训练——原脚本无 resume 逻辑,ep50-70 进度丢失(ckpt 每 25ep),给 v415_s1v2.py 补完整断点恢复(model/optimizer/scheduler/hist 四件套,ckpt 加密到每 5ep,最多丢 ~44min);生产——producer 按 seed 初始化 rng,直接重启会重复产出同序列数据,改为按 seed 段盘点缺口、独立目录续跑防覆盖(/root/resume_prod.sh);下载——Qwen3.8-27B-FP8(31G,S1b 阶段部署备用)hf 断点续传。另建幂等恢复脚本 auto_recover.sh + 本机守望 cron(30min 检测机器上线且进程死 → 自动拉起 + 通知),此后每日关机零人工恢复。
2026-08-29 22:10
S1v2 收官 + 判读:open-loop 大胜,闭环天花板确认 ⚖️
120ep 跑满(续跑后 630min + 首轮 529min)。开环:med 0.68m(区间 0.59-0.94m),对 V4.13 best 2.02m 提升 3 倍,切片分布修正确认有效(S1 初版开环卡 1m+)。闭环:ep60→ep120 走平,K=80 succ 3.6% / 碰撞 61% / med 11.2m,best 过门失败(碰撞 > 10% 门),fallback = ep110(score 43.33,较 S1 初版 53.98 改善 20%)。判读:纯模仿学习结构性天花板实锤——开环 0.7m 的好底子无法穿过 80 步误差复合,闭环指标从 ep60 起不再随训练量改善。这不是数据量或收敛问题,是 S1b DAgger 的靶子(网络跑偏状态 → IPOPT 补解 → 混训)。处置:S1b DAgger 发车,采 NN 闭环跑偏状态补解。
2026-08-29 深夜
S1b DAgger 三件套发车 🚀
按 110 篇调研路线图 A 段执行,三脚本落地 169:/root/:①采集器 v415_s1b_collect.py——fallback(ep110) 权重闭环 rollout(K=3, max_steps=80),3,000 条轨迹 → 22,387 个跑偏状态,GPU 仅 6 秒;②补解器 v415_s1b_resolve.py——跑偏状态 → solve_scenario_v2(同伦链)+ verify_one 七道闸 → 救场样本 (start/goal/obstacles35/U(2,80)),10 worker 并行 ~480 条/h,22K 状态预计 ~46h;断点续跑按输出文件存在性跳过,9:10 关机重启零浪费;③混训器 v415_s1b_train.py——切片+DAgger 混训,fallback 热启动,lr 减半 2e-4,满血配置(bs1024/workers16/torch.compile/eval 异步),GPU≥50% 铁律采样达标才放跑。格式对齐踩坑已记录(goal 4 维 / solver 返回 4 元组 / ob35→7×5 零填充行过滤)。起飞判据:开环 med<1m 且 loss 平台(S1v2 双满足);首轮混训不必等补解全完,攒 3-5K 救场样本即可起跑。
2026-08-30
重启恢复 + 补解进度确认:844 条救场样本,产率/通过率盘点 📊
8-29 21:10 定时关机后离线过夜,8-30 用户两次手动重启(06:13 上线)。补解器不在 auto_recover 管辖内(守望脚本只认旧训练/producer),手动拉起,断点续跑零浪费(13 进程 = 主 + 10 worker)。首轮 10 小时实测:844 条救场样本入库(/root/v415_work/dagger_solved/),10 worker 各 ~60 尝试/h,通过率 5-20%(差异极大:最好 worker ok=203,最差 ok=0)——跑偏状态本身多接近死局,七道闸严格把关属预期;按当前产率 22K 状态需 ~46h 不变。混训起跑线 3-5K 条,预计 8-31 早达标。观察项:sw6 全拒(0/400)需在混训起跑前看是否系统性偏斜。
2026-08-30 07:31
CPU 提速:补解 worker 10 → 15 → 22 ⚡
用户要求最快收官。盘点资源:32 核 CPU 只用了 10(load 10,67% idle)、内存 62G 只用 40%、GPU 完全空转。补解是纯 CPU 任务且按 worker 线性扩展 → 直接扩 worker。07:31 先扩到 15(实测 10 worker 满载耗 23G 内存,按 180 机群 OOM 教训每 worker 峰值 2.3G,15 worker=34.5G 安全);08:50 用户拍板再 +7 → 22 worker(50G 内存,超 180 机群实测 20 上限但在 169 内存余量内,已加盯防)。重启用 PID kill 方式(避开 pkill -f 自杀坑),断点续跑零浪费。产率 480 → ~1,000 尝试/h,22K 状态预计从 46h 压缩到 ~22h。期间发现 pgrep 自匹配假信号:ps aux | grep producer 报 1 进程实为 grep 自身(老坑重现),已改用 [.] 正则规避。
2026-08-30 09:00
并行发车决策:补解与混训同时跑 🚀
用户拍板"一边求解一边混训"。原计划串行(补解攒 3-5K → 起混训)改为并行:GPU(混训)与 CPU(补解)零冲突,DAgger 首轮用 871 条救场样本(占比 ~0.3%)起跑,明天补解攒满后热启动加第二轮(2-3h)吃满增益。时间线从"明晚见结果"提前到"明早第一轮判读"。冒烟流程启动:v415_s1b_train.py --smoke --epochs 3。
2026-08-30 09:03-09:06
环境坑 #1:torch 无法 import(nccl 库被平台镜像裁剪)🔧
症状:python3 -c "import torch" 报 ImportError: libtorch_cuda.so: undefined symbol: ncclCommResume。排查:torch 2.13.0+cu130 的依赖是 nvidia-nccl-cu13==2.29.7——pip 显示已安装但 库文件 .so 被裁掉只剩元数据(AutoDL 系统镜像瘦身所致);降级试 cu12 包(2.26/2.27.5/2.31.2)均无 ncclCommResume 符号,证实必须 cu13 2.29.7。修复:pip 源指向 mirrors.aliyun.com(注意:默认源 mirrors.cloud.aliyuncs.com 证书不匹配会 SSL 报错)重新下载完整 wheel(206MB)force-reinstall,import torch 恢复正常。教训:平台重启可能换底层镜像,跑长任务的机器重启后必须先冒烟验证环境,不能假设环境不变。
2026-08-30 09:06-09:10
环境坑 #2:transformer_model.py 丢失 + 9:10 定时关机打断 ⏸️
症状:冒烟报 ModuleNotFoundError: transformer_model——v415_s1b_train.py 依赖 sys.path /root 下的该模块,但 /root 只在 v412_work/ 有副本(同样是重启镜像差异)。修复:cp /root/v412_work/transformer_model.py /root/。刚修完 09:10 平台定时关机把冒烟和 22 worker 补解器一起杀掉(冒烟只跑到一半)。机器离线期间把本机守望脚本升级为全恢复版:上线自动拉补解器(22 worker)+ 训练状态机(冒烟未通过→跑冒烟;通过→自动转正式 80ep,脚本自带 resume 关机重启续跑)。
2026-08-30 09:31-09:44
用户重新开机:冒烟连环炸出 3 个数据格式坑,逐一修复 🔧
09:31 机器上线(守望自动拉起补解 24 进程 + 冒烟重启)。冒烟逐个暴露补解器↔混训器格式不对齐,三连修:①09:33 字段名:混训器读 d['obstacles_raw'] 但补解器存的是 'obstacles'(且 d['O'] 分支也不存在)→ 改读 d['obstacles'];②09:38 障碍维度:切片样本障碍 (N,7,5) 三维 vs 救场样本展平 (N,35) → reshape(7,5) 对齐;③09:42 控制量转置:切片样本 U (80,2) vs 救场样本 U (2,80) → 救场侧 .T 转置。根因:三件套 8-29 深夜快速落地时补解器与混训器由不同批次样本格式约定,没有跑通端到端就发车——违反了"改完代码必须自测"铁律,冒烟兜住了。三个 patch 均用 Python str.replace + ast.parse 校验(不碰 sed)。
2026-08-30 09:45
环境坑 #3:torch cu130 与驱动 12.8 版本错位(处理中)⏳
冒烟跑起来但警告 CUDA not available → 训练退化到 CPU 爬。诊断:torch 2.13.0+cu130 需要驱动 13.0,宿主机实际 570.172.18(CUDA 12.8);且 /usr/local/cuda-12.8/compat/ 有兼容层 libcuda.so 但不在默认加载路径。疑点:S1v2 之前用同一个 python3 训练正常,说明当时 torch 是 cu12x 版——重启后环境被换成了 cu130 torch(与坑 #1 同源:镜像漂移)。候选方案:A) 降级 torch 2.13.0+cu128(重装 2.5G,风险=又触发依赖漂移);B) 用 LD_LIBRARY_PATH 挂 cuda-12.8/compat 兼容层(compat 是给驱动旧于 CUDA 的场景,方向对但需验证符号);C) 平台 aigc_apps/venv 里有旧 torch 环境待验证。SSH 09:50 起连接抖动(历史发生过,数分钟自愈),恢复后继续。
2026-08-30 10:12
坑 #3 解决:换用平台 venv(torch 2.3.0+cu118)✅
验证候选方案 C:/root/aigc_apps/venv 的 torch 2.3.0+cu118 在驱动 12.8 上 CUDA 可用(驱动向下兼容,RTX5880 Ada sm_89 cu118 支持)。杀掉 CPU 爬行的冒烟,改用 venv python 重跑 → GPU 恢复工作(31%,显存 4.5G)。比降级 torch 2.5G 更稳(不再动系统环境)。代价:venv 是 Python 3.12,torch.compile 不支持(Dynamo skip),AMP 可用——对训练速度影响可接受(实测 2.3min/ep)。守望脚本的训练拉起命令已同步改为 venv python。
2026-08-30 10:20-12:00
S1b 第一轮混训冒烟通过 → 正式发车 → 80ep 收官 🏁
冒烟(10:20):3ep 全链路通过,27,580 切片 + 200 DAgger 样本,ep3 即 k80_med=10.79(好于 S1v2 的 11.2)。正式(10:30 发车):31.5 万切片 + 898 DAgger(占比 0.3%),从 s1v2_fallback 热启动,80ep 用时 186min。收官判读(13:20):k80 med 9.74(S1v2 11.2,-13%)、碰撞 58.1%(-3pt)、fallback score 38.29(-12%)、最优 ep60;但成功率 1%(反降,timeout 率 40%——网络学规避但量少没学会"到达")、硬门未过。判读:方向正确但增益不足,符合 DAgger 首轮 0.3% 占比的预期;真正的跃迁预期在样本攒满的第二轮。
2026-08-30 17:20
S1b 第二轮混训发车:1,744 条 DAgger 样本 + ep60 热启动 🚀
用户拍板发车并授权自主决策。第二轮配置:S1B_INIT=r1_arch/r1_ep60.pth(第一轮最优)热启动 + lr 减半 1e-4 + DAgger 样本 1,744 条(占比 0.55%,第一轮的 2 倍)。为混训器打了三个环境变量补丁(S1B_INIT/S1B_LR/S1B_ROUND2 归档逻辑),补丁过程踩了两个小坑:①import re 缺失(skill 记录里的已知坑重现);②ROUND2 归档目录在首次崩溃时只建了目录没拷文件 → 手动归档 r1_ep60/opt/sch/fallback/hist 五件套到 r1_arch/ 后清空工作区 ckpt 再启动。18 进程稳定运行,GPU 31%。守望脚本升级:识别两轮状态机(第一轮 DONE → 自动以第二轮配置拉起;两轮都 DONE → 静默),并固化 venv python 路径。补解器同步在跑(1,744 条),预计今晚破 2.5K。明早 9:10 关机恢复后自动续跑。
2026-08-30 20:30
第二轮收官:平(0.55% 占比被淹没)→ 诊断明确 ⚖️
80ep 跑完(185.7min):k80 med 9.92 / score 38.92(ep80 最优)vs 第一轮 9.74 / 38.29——无改善。诊断:DAgger 样本 1,744 条在 31.5 万切片样本里只占 0.55%,梯度信号被稀释到接近噪声——不是 DAgger 无效,是剂量不足。与第一轮(0.3%)对比,两轮 med 都停在 9.7-9.9 区间,该区间即当前数据配比下的收敛平台。
2026-08-30 20:45
第三轮发车:DAgger 过采样 ×20,占比冲 13.2% 🚀
关键改动:给混训器加 S1B_DAG_WEIGHT 环境变量补丁——DAgger 样本在 DataLoader 前按维度 repeat 过采样。第三轮配置:样本 2,393 条 ×20 = 有效 47,860 条(占比 13.2%,进入文献有效剂量区间 5-20%)+ 第二轮 ep80 热启动 + lr 再减半 5e-5 + 40ep 短程冲刺(~1.8h)。第二轮 ckpt 已归档 r2_arch/。ep20 中期读数(22:11):loss 7.738(降)、k80_med 10.03、碰撞 0.59——数字暂平,但 k3_med 升到 17.32 值得注意:过采样让网络行为开始改变(更谨慎),短期指标抖动属预期,等 40ep 收官判读。判读逻辑预告:若 13% 占比下 med/碰撞明显再降 → 路线通,等补解全量(~2.6K 极限)做第四轮;若仍平 → 救场样本覆盖不足实锤,转向武器库 B 段(可微 rollout 损失)权重上调。
2026-08-30 22:11
补解器推进:2,722 条 / 22,387 状态 📦
补解器 22 worker 持续满跑,救场样本 2,722 条(~130 条/h)。累计尝试约 15K/22K 状态,预计明天下午全量收官(理论极限 ~2.9K 条通过)。GPU 训练与 CPU 补解并行无冲突。
2026-08-30 22:20
⛔ 全线停止:用户叫停,对当前方案失去信心 🛑
第三轮(过采样 ×20,占比 13.2%)跑到中途 ep20 读数仍平(k80_med 10.03 / 碰撞 0.59 无改善迹象),用户判断当前方案无效,叫停全部工作:训练(第三轮中断)、补解器(2,733 条救场样本定格)、本机守望 cron(删除)全部停止。判读要点:S1b DAgger 三轮尝试(0.3% → 0.55% → 13.2% 占比)闭环指标始终卡在 med 9.7-10.1 / 碰撞 52-59% / succ ~1% 平台,与 S1v2 相比仅有 -13% 的边际改善且无法继续推进——DAgger 路线在本配置下未能兑现调研预期的跃迁。所有资产已归档(r1_arch/r2_arch 各轮 ckpt、2,733 条救场样本、31.5 万切片数据集),随时可重启。下一步方向待用户决策。
2026-08-30 22:25
📋 V4.15 阶段总结(截至停止时点)
成果:①开环 med 0.68m(S1 切片分布修正 + S1v2,较 V4.13 的 2.02m 提升 3 倍,这是确定性成果);②闭环 med 从 11.2 → 9.74(S1b DAgger 边际改善 -13%);③基础设施:22 worker 补解管线、两轮混训框架、断点恢复体系、平台镜像漂移排障经验(nccl 裁剪/torch cu130 vs 驱动 12.8/venv 方案)。未达成:闭环指标距验收门(med≤0.3m / 碰撞≤10% / succ≥90%)差距巨大,DAgger 三轮剂量实验未找到突破口,succ 始终 <4%。待决策:救场样本质量与覆盖是否是瓶颈(补解仅完成 15K/22K)、是否转向武器库 B 段(可微 rollout 损失)/ C 段(多候选打分)/ D 段(GRPO RL)、或回溯 V4.14 结论重估纯 NN 路线整体可行性。

Transformer 泊车项目 · V4.15 · 滚动重规划 · 上一版:V4.14(单次前向,已收官)