← 返回 portal 首页
一句话结果:把基座全冻(保住它的分割/泛化)、只训一个轻量关节头、轴改用回归 + 几何角度损失(直接惩罚 90°),
关节轴误差中位 90° → 10.1°、翻轴率 0.65 → 0.18、≤15° 占比 24% → 53%——而且是在更难的评测协议上(全 94 个关节精确配对)。
背景:两个互相纠缠的坑
ArtiPhys 是在同学的分割基座(Qwen3-VL + 点云编码器 + mask decoder, 110 万样本训)上加关节(type/axis/limit)。先前用全参微调 959 个窄域(PhysXVerse 游戏资产)样本,撞到两堵墙:
① 灾难性遗忘 — 窄数据全参微调把基座"读点云"的能力覆写成"套游戏资产模板",在 Objaverse 上分割崩。
② 轴 90° 翻转 — 自回归吐"主轴码 token",损失(token-CE)不知道 90° 是几何灾难,模型塌成"猜主轴",62% 翻 90°。
① 为什么必须冻基座:基座本来就好,是我们的窄微调搞坏了
同一个 table(训练没见过的类),基座原生分割 vs 我们全参微调版,逐点 mask 对比。这个对照实验定了"冻基座"的方向。
基座原生分割(未动)— mask 贴合真实几何

我们全参微调版 — 悬空模板,脱离 mesh

左:基座把薄板正确切成 Base/Tabletop,逐点贴几何。右:全参微调后吐出脱离 mesh 的"桌面+4腿+床头板"家具模板,全标"wood"。结论:formulation 和基座都好,是 959 窄数据全参微调造成灾难性遗忘。→ 基座全冻,只加关节头。
② 关节头 + 几何损失:把翻轴压下去
| 指标 | idea1(全参 SFT, 自回归吐 token) | 关节头(冻 base + 角度损失) |
| 轴误差 中位 | 90.0° | 10.1° |
| 轴误差 均值 | 61.3° | 26.7° |
| 翻轴率 (>60°) | 0.65 | 0.18 |
| 轴 ≤15° 占比 | 24% | 53% |
| 轴心误差 中位 | 0.18 | 0.12 |
| limit 误差(revolute) | 82° | 18° |
| 类型准确率 | 0.97(n=37匹配) | 0.83(n=94全配对) |
分类型:prismatic 轴中位 3.6°、revolute 轴中位 16.8° / 类型 0.96。关节头仅 1.46M 可训参数,基座一个权重没动。
干净成功例(绿=GT 轴,红=预测轴,几乎重合)
axis_err ≈ 0.8°(2 关节)

axis_err ≈ 0.1°

绿色 GT 轴和红色虚线预测轴基本重合 → 角度损失让头把轴钉准了。
诚实的尾部例(残留翻轴)
toilet,axis_err=[76°, 17°]——一个关节仍翻、一个接近。残留约 18% 翻轴 + p75 尾部(~49°),
疑似单态真歧义(从单一静态姿态本就判不出哪个主轴是铰链)——这一层训练跨不过,得靠多态/螺旋从运动测轴。
意义 & 诚实弱点
两个坑一起填:冻 base → 分割/泛化由构造保住(防遗忘);轴用连续回归 + 角度损失 → 直接惩罚 90°,治翻轴。
坐实翻轴真因:idea1 的"先选主轴码 + abs() + token-CE 不惩罚 90°"是元凶;换连续回归 + 角度损失,大部分翻轴消失 = 翻轴大头属"训练可救"层。
残留 18%:疑似单态信息论下限 → 接多态/螺旋(与本组螺旋不变量方向首尾呼应)。
| 弱点 | 说明 / 下一步 |
| 稀有类型分类 | prismatic 类型 0.68 / continuous 0.125(仅 68 训练样本)→ 类别均衡采样 / focal loss / 补数据 |
| 关节"存在"头不锐 | 正 0.45 / 负 0.13,可用但不够分 → 校准 |
| 残留翻轴尾巴 | ~18% + p75 长尾 → 上多态/螺旋,验证是否真·单态歧义 |