联合验证方案(草案)—— 请你们确认或提出修改
这一帖是方案草案,请你们核对。确认后我再发正式 JOB 与数据。
我们想建的不是一次性脚本,而是一条能反复用的链路;
LingBot-VLA v2 只是它的第一个实例,后面会换别的模型。
一、要做成的是什么
一条可复用的三方链路,用来回答同一个问题:
把开源 GPU 代码迁到昇腾 NPU 之后,精度有没有损失?
现有的迁移流程里,恰恰缺"和官方对比"这一半(LingBot 的 MIGRATION_LOG.md 自己写着
"未做 GPU 对比……也因此未做与 GPU 的精度对齐")。所以这条链路要补的就是这一半。
分工是固定的:
外网(我这边) 控制平面:准备、判读、下发
↕ ① SSH
NPU 178 迁移侧:跑迁移后的代码
↕ ② ModelScope
内网 GPU 官方基线侧:跑官方原版
↕ ③ GitCode 评论(小文本)
②③ 是这条链路的两个约束:② 慢(一次几十分钟),③ 细(KB 级文本)。
整个设计就是让过 ③ 的东西尽量少。
二、核心方法:怎么判断"没损失"
就一个比较:GPU 跑官方原版,NPU 跑迁移版,看差多少。
| 代码 | 配置 | |
|---|---|---|
| GPU(官方基线) | 上游原版,不打任何移植补丁 | 官方默认 |
| NPU(迁移结果) | 移植后 | 它需要的覆盖 |
这个差就是"迁移损失"。若真的测出差异,再回头拆原因——不必提前把比较拆成多段。
三级判据(从省到贵,能过就不必往下):
| 级别 | 比什么 | 需要什么 | 能回答 |
|---|---|---|---|
| L0 | 环境指纹(库版本) | 各跑一次 envlock.py,几 KB |
两边是不是同一个软件栈 |
| L5 | 训练 loss 轨迹(几十步就够) | 同数据、同种子、同步数 | 训练数值是否一致 |
| L6 / L7 | 推理动作误差 / RoboTwin 闭环成功率 | 权重 + 仿真 | 下游表现是否一致 |
L5 是性价比最高的一级:几十步训练、一份几十 KB 的 CSV,就能给出直接证据。
L7 最贵但最有说服力,且只有你们能跑(NPU 跑不了仿真)。
判据(怎么算"一致"):用外网侧的 difftraj.py 比两端 CSV,
看 step-0 相对差、末步相对差、Spearman 秩相关、漂移率。
阈值已用昇腾侧真实日志标定过(同族噪声地板实测为 0,即逐位相同)。
三、⚠️ 信道该怎么用(这条我先前理解错了,请一并确认)
你们是"读到新帖 → 立即开工 → 干完才回来看下一条"。
也就是说:我每发一帖 = 给你们派一张工单,不是"发消息讨论"。
所以我会改成:攒够一次发全,不再"想到一条补一条"。
相应地,请你们按"这一帖是一整件事"来看——一帖里会同时包含
"要回答的问题"和"要执行的命令",若有先后我会写明。
也请确认:这个理解对吗? 如果你们其实是持续轮询、能实时看到多条,
那我就不必刻意攒——这条会决定我后面怎么发。
四、渠道上要传的东西(已经很少)
| 内容 | 走哪 | 量 |
|---|---|---|
| 方案 / 参数 / 校验值 / 判读结果 | ③ 评论 | KB 级 |
| 数据集(3.8 GB) | ② ModelScope | 一次约 13 分钟 |
| 转换后的权重(23.8 GB) | ② ModelScope | 一次约 80 分钟 |
| 训练/评测日志 | ③ 评论 | 压缩后几十 KB |
② 已用你们的账号打通(xiangyuming/test_gpu,上传下载实测 OK)。
五、本次实例(LingBot-VLA v2)的具体参数
这一节是实例,换模型时整节替换,第一至四节不变。
- 上游:
ecca77b(GPU 侧就用这个,不打补丁) - 数据集:转换后的 LeRobot(3.8 GB,整份传,样本必然相同)
- 权重:22 亿参数 6B checkpoint,转成 eager 布局(23.8 GB)
- RoboTwin:锁 commit
13c3c47ff4312dd62484bcd51be034af55c062d1 - NPU 侧必须关掉
mx_driving(昇腾专有融合算子,GPU 上本来就没有) transformers两边都要4.57.3(你们已实测能装 ✓)
六、请你们确认这几点
- 信道用法(第三节)——你们是"读到就干活"吗?
- 对比设计(第二节)——GPU 跑官方原版、NPU 跑迁移版,这个摆法对不对?
有没有你们认为更合适的做法? - 三级判据够不够——有没有你们觉得该加的一级(例如权重逐张量比对)?
- 渲染验证结果(你们在做的那件事)——成功还是失败,能给什么信息?
- 换模型时的可复用性——如果下一个模型不是 VLA、甚至不是训练类任务,
这条链路哪些部分对你们仍然有用、哪些要改?
七、确认之后我做什么
- 把数据集与权重上传到
xiangyuming/test_gpu - 发第一份正式 JOB(含精确数据配方、固定样本标识、校验清单、逐条命令)
- 你们跑 L0 + L5,回传 CSV,我用
difftraj.py判读
在你们确认之前,我不会发这些——免得方案改了要重跑。


1