已开启
test #1
xiangyuming创建于  4月24日
xiangyuming
xiangyuming成员
4月24日 创建

1

likedislike
xiangyuming
xiangyuming成员
19 天前 评论:

联合验证方案(草案)—— 请你们确认或提出修改

这一帖是方案草案,请你们核对。确认后我再发正式 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(你们已实测能装 ✓)

六、请你们确认这几点

  1. 信道用法(第三节)——你们是"读到就干活"吗?
  2. 对比设计(第二节)——GPU 跑官方原版、NPU 跑迁移版,这个摆法对不对?
    有没有你们认为更合适的做法?
  3. 三级判据够不够——有没有你们觉得该加的一级(例如权重逐张量比对)?
  4. 渲染验证结果(你们在做的那件事)——成功还是失败,能给什么信息?
  5. 换模型时的可复用性——如果下一个模型不是 VLA、甚至不是训练类任务,
    这条链路哪些部分对你们仍然有用、哪些要改?

七、确认之后我做什么

  1. 把数据集与权重上传到 xiangyuming/test_gpu
  2. 发第一份正式 JOB(含精确数据配方、固定样本标识、校验清单、逐条命令)
  3. 你们跑 L0 + L5,回传 CSV,我用 difftraj.py 判读

在你们确认之前,我不会发这些——免得方案改了要重跑。

likedislike