跳至正文
原文导读 · 原标题中译

修复(模型):阻止批处理填充改变预测动作

fix(model): stop batch padding from changing predicted actions

材料发布 2026-11-05 · raw.githubusercontent.com · 工程产物 · 核查 2026-11-06

内容摘要

批量推理时同一条观测的输出可能随批次组成而变:同批提示词被补齐到最长,真实机器人形态也只填满固定动作画布(action_horizon 动作时域 × max_action_dim 最大动作维度)的一部分;若填充位对动作头可见,同一句指令仅因批次不同就可能得到不同动作。NVIDIA 在 Isaac-GR00T 仓库的这次修复(README 训练提示章节记载)把它变成两个可选开关:--strict_vl_padding_mask 把左填充的视觉-语言 token 挡在 vl_self_attention 栈与动作头扩散 transformer(DiT)交叉注意力之外;--strict_action_padding_mask 把补齐的动作维度与时域 token 挡在动作编码器与 DiT 自注意力之外。两者默认继承 checkpoint(已训练权重)且对已发布 checkpoint 保持关闭,新训练可开启,状态写入 checkpoint 的 config.json(动作掩码另写 processor_config.json),微调未显式指定则沿用。官方只给出一个量化:关闭视觉-语言掩码时,一条观测的动作会随同批次其余样本的提示词长度偏移约 2% 的动作量级,且是在合成骨干特征上用已发布 checkpoint 的动作头自测,不是真机成功率。代价在部署链路:开启后 TensorRT 导出图不接受掩码输入,vl_self_attention 需留在 PyTorch,纯 DiT 的 TensorRT 路径拒绝含视觉-语言填充的批次;严格动作掩码训练的 checkpoint 必须用 PyTorch 动作头服务,TensorRT 导出与引擎替换路径直接拒绝。背景是 N1.7 正式发布(GA),骨干换为 Cosmos-Reason2-2B(Qwen3-VL 架构),状态/动作维度由 29 扩到 132、action_horizon 由 16 扩到 40,rollout 参数改名为 --execution-horizon。

点评

对做机器人本体软件的工程师,这是一个直接影响部署确定性的坑:批量推理时同一条观测的输出不应依赖同批次的其他样本。GR00T 的做法是把这一行为变成两个显式开关,并写清与 TensorRT 导出/服务路径的冲突,避免把批次组成变成难以复现的隐藏变量。以上行为与代价均以 NVIDIA README 的记载为准,属厂商工程说明而非独立复现结论。

限制:证据为 NVIDIA Isaac-GR00T 仓库 README 的固定版本抓取快照(该文档随版本滚动更新,章节与参数名会变化),本次材料未包含代码改动本身,也没有第三方复现;2% 是厂商在合成骨干特征上用已发布 checkpoint 的动作头自测的数字,不是真机或基准任务成功率;README 中的 GA、性能与稳定性表述均为厂商自述,未见独立验证;快照的抓取时间不能证明所有描述在报告截止前已存在。

版本与核查范围

版本 bc5d21a2ea1d41306318486faac3c8992440b499 · 原文定位与程序检查、独立上下文模型复核;不代表独立研究复现。。依据已核查材料整理;未运行模型或机器人。

原文与定位

  • 原文链接 README:paragraph:131;README:paragraph:131;README:paragraph:131;README:paragraph:131;README:paragraph:131;README:paragraph:131;README:paragraph:131;README:paragraph:10;README:paragraph:30;README:paragraph:11;README:paragraph:6;README:paragraph:107