INDI:教机器人先想清"为什么"再做,成功率 64.3% 提到 84.7%

会动手的机器人,没人教它"为什么动手"

一台机械臂稳稳夹住面包,转向煎锅,动作和人类示范几乎分毫不差。按行为克隆的标准,它满分。可你要问它为什么去煎锅而不是把面包收回盘子,它答不上来。示范数据里只写了手怎么动,没写手为什么这么动。这个"为什么"层次的缺失,就是这篇论文要填的洞。

机器人学习的主流做法是行为克隆:从一段段人类示范里学"看到什么观测,就复现哪个动作"。这套数据天生只记录动作本身,不记录动作背后的目标。于是训练出的策略可能很熟手,却像一个从不解释理由的熟练工。到真实世界部署时,它在一个没见过的新场景里做错动作,你连它错在"没看懂场景"还是"误解了目标"都无从判断。

POSTECH 的 Sangoh Lee、Sangwoo Mo 和 Wook-Shin Han 在《Act with Intent》中提出 INDI(Intention Distillation,意图蒸馏),主张很直接:现在的 VLA 模型(Vision-Language-Action,视觉语言动作模型)只被监督"复现哪个动作",从未被监督"这段行为要达成什么目标"。论文的做法是先想清楚再做:训练时借一个 80 亿参数的冻结 VLM 当老师,给每个示范片段打上行为意图标签,蒸馏进学生解码器的中间层;部署时把老师整个卸掉,让策略靠自己的输入在内部恢复意图。

结果相当扎眼。SimplerEnv-Bridge 上成功率从 64.3% 涨到 84.7%,RoboCasa Kitchen 从 64.1% 涨到 70.3%,真实机器人上的 held-out 任务从 62% 涨到 68%。部署开销几乎可以忽略,参数只多了 0.04B,每次策略查询大约多花 5 毫秒(按论文自报数字)。

图注:论文开篇对比三种范式。行为克隆只监督动作本身。未来监督补上了"接下来会发生什么",却补不上"为什么"。INDI 从示范行为里蒸馏出行为级意图,送进动作解码器。右侧是 GR00T-N1.7 在 SimplerEnv-Bridge 与 RoboCasa 上的数字。INDI

先说清边界:右侧数字是匹配条件下受控平均的最高值,论文并未声称全面超越所有旧方法。但"补一层为什么"换来近 20 个百分点,而且部署便宜到可以忽略,这件事本身就值得追问:它为什么有效?

从 RT-2 到 GR00T-N1:动作解码器只被监督了"怎么动"

要理解 INDI 的立场,得先看清 VLA 这条路的起点和现状。

2023 年的 RT-2 定下范式:把机器人动作当作另一种语言,编码成文本 token,与互联网规模的视觉语言数据一起训练。由此换来了明显泛化收益,符号理解、推理、人识别这些涌现能力在真实任务上可观察,评测中的提升约为基线的两到六倍。但 RT-2 自己在 Limitations 里写得很坦白:模型没有获得执行新动作的能力,只是把示范里学到的既有技能以新方式部署。RT-2这句自陈已经点破了软肋:动作是学的,语义是借的。

之后的路线都在动作头上做文章。OpenVLA 把 RT-2 的路线开源成一个 7B 节点,任何研究者都能在自己的机器人上复现;GR00T-N1 走向 dual-system,把理解与动作拆成两个系统,一个 10 Hz 的 VLM 负责看和想,一个 120 Hz 的 DiT flow-matching 动作专家负责高频控制;π0.5 则在共享 Transformer 里先输出高层子任务、再以它为条件输出低层动作。动作头的形态从"下一个 token"换到 flow-matching,一种把动作生成当作连续去噪过程、一次性产出整段动作 chunk 的方法,但有一个东西从头到尾没变:训练目标永远只有"此刻该复现哪个动作"。OpenVLAπ0

GR00T-N1 里有一个容易被忽略的结构事实,它正是 INDI 切入点的基础:VLM 的中间层表征(第 12 层)通过 cross-attention 注入 DiT 动作专家,而且报告说中间层表征比最后一层效果更好。GR00T-N1也就是说,现代动作解码器的中间层本来就有接收外部语义的接口,也有"中间层优于末层"的先例。缺的不是接口,是接口里流经的内容。

于是问题变得锋利:无论动作头是 token 化还是 flow-matching,VLA 学到的都只是"怎么动"。这个缺失的"为什么动",到底坏在哪?

"意图"到底是什么:补未来帧为什么不够

先把 INDI 对行为意图的定义钉死:当前示范片段在指令下要达成的局部目标。它既不是下一帧画面,不是下一个轨迹点,也不是一句语言推理链。它是这一段行为此刻服务的那个语义目标。举个例子,机械臂把面包从盘子里夹起来再转向煎锅,这一个片段的意图就是"把面包放进煎锅",而不是"夹住面包"这个动作本身。动作是实现,意图才是目的。

这个缺失为什么致命,看一个具体场景就明白。想象夹爪正夹着一块面包,画面里只有这一幕。接下来的动作可能是把面包放进煎锅,也可能是把面包收回盘子。同一帧观测,两种完全不同的下一步。IntentVLA 把这种失败模式命名为 observation aliasing(观测歧义):只看当前帧的策略,根本无从判断该往哪走,重规划时相邻两次决策还可能各选一个方向,产生动作 chunk 之间的冲突。IntentVLA

图注:IntentVLA 论文中的歧义示意。上下两排是相似到几乎相同的"夹爪夹着面包"画面,但演示者接下来的动作截然不同,一个走向煎锅,一个收回盘子。帧级观测无法消歧,这正是缺失"意图"层的直观后果。IntentVLA

有人说,那给模型补上"未来会怎样"不就行了?这确实是过去几年一条热闹的路线,GR-1、SuSIE 这些工作给模型加未来帧或子目标图监督,让策略"预演"接下来会发生什么。论文直接在数字上否掉了这个方案:他们的未来监督变体只告诉模型这段行为结束时的画面长什么样(endpoint 视觉目标),结果在 SimplerEnv-Bridge 上只有 68.0%,比基线高 3.7 个百分点,比完整 INDI 的 84.7% 低了 16.7 个百分点。知道未来会发生什么,和知道为什么要这样做,是两回事。未来帧是结果,意图是目标,结果可以千变万化,目标只有一个。

缺了这一层,代价有三重。第一,决策不可解释,出了错只能看动作序列,说不清哪一步的理解出了问题,这在真实部署里是实打实的排查成本。第二,未知任务上泛化差,模型记住的是动作模式,而不是解决问题的目标结构,换个场景就失灵。第三,示范数据里同一个目标往往被多种动作序列实现,只监督动作的策略抓不到这些序列的共性,等于把同一道题的多种解法当成互不相干的知识来背,数据利用率被白白浪费。

顺带预告一句:intent 这个称呼在 VLA 文献里至少有三个意思,INDI 用的是行为目标,另外两种后面划清边界。现在的问题是:怎么把一个只学过"怎么动"的网络,补上"为什么动"?

INDI 三组件:把意图蒸进解码器,部署时卸掉老师

INDI 的做法可以拆成三个组件。

第一,从示范行为里提取意图。 训练时用一个冻结的 teacher VLM 当教练,具体是 Cosmos-Reason2-8B。它拿到一个元组:当前观测、指令、一小段动作的粗粒度摘要、以及这段示范的执行视频。在功能性意图 prompt 下,老师产出三样东西:从其中间层隐状态池化出的意图目标 I_t*,保留多模态接地和语义抽象;一段 textual purpose 语句 R_t*;以及由另一个冻结视觉编码器从片段终点观测提取的 endpoint 视觉目标 V_t*。这就是"训练期借老师打标签"。

图注:INDI 完整架构。左侧训练期的 teacher VLM 从示范行为产出意图与 textual purpose 目标,冻结的视觉编码器提供 endpoint 视觉目标。右侧动作解码器中间层挂上意图查询,输出动作、视觉接地与文本接地三路。虚线表示只在训练期存在的监督。INDI

第二,在解码器中间层恢复意图。 学生解码器被塞进 8 个可学习的意图查询(K_I=8),放在解码深度 50% 的中间层,与本体感受状态、噪声化动作、接地行一起参与注意力计算,在中间层读出状态,投影到 teacher 的特征空间,用余弦相似度对齐 I_t*。为什么插在中间层而不是最后?因为 GR00T-N1 已经证明 DiT 中间层有 cross-attention 接口,也证明了中间层表征优于末层,意图查询在这里既能被注入,又不会干扰动作头末端的输出。

第三,让意图真正参与决策。 光对齐还不够,恢复出的意图可能只是"死容量",网络学会了应付对齐损失却不在下游用它。INDI 用三个细节堵死这条路。非对称注意力让动作和接地行读不到意图查询,下游信息必须穿过意图,意图成了名副其实的必经之门。一个伯努利门控 α 随机切断非意图行的直接上下文访问,让网络不能抄近路绕过这扇门。再加一个 margin 为 0.05 的 mismatch loss,强制"配对正确的意图"比"换错的意图"在下游损失上严格更低,把意图从一个装饰性读出物变成功能性中间变量。

为什么老师必须冻结而不是和学生一起训练?知识蒸馏综述给出的范式答案很简洁:当老师是 foundation model 或 LLM 时,把老师和学生联合训练因老师参数量过大而不可行,offline 蒸馏(老师先训练好并保持冻结,再迁移给学生)是标准做法。KD 综述注意这份综述的覆盖截至 2025 年 3 月,它只服务于这一个问题,不参与全篇立论。

最后一个问题最反直觉:部署时怎么办?答案是全部卸掉。推理时把 teacher、缓存的意图目标、对齐投影头、mismatch 分支统统移除,门控 α 置为 1,只保留意图查询和接地行留在解码器里。策略拿着和原来完全一样的输入,在内部自己形成意图和接地状态。代价呢?GR00T-N1.7 上参数从 3.46B 涨到 3.50B,每次策略查询从 56.1 毫秒涨到 61.5 毫秒;π0.5 上从 3.62B 涨到 3.64B,每次策略查询从 24.4 毫秒涨到 29.7 毫秒(约 +5.3 毫秒)。对闭环高频控制来说,这个开销基本可以忽略。

图注:项目页的架构镜像,细看虚线。左侧是图像观测、指令、关节状态三个编码分支,中间是自注意力与交叉注意力交替的去噪解码堆栈,意图查询与噪声化动作、视觉状态、文本状态一同进入,输出动作、未来、目的三路。右侧 Grounding 与 Intent 两路监督全部是训练期虚线,部署时这些路径和 teacher 一起消失。INDI 项目页

训练期借老师的眼睛,部署期老师消失,意图由学生自己从内部长出来。这套"借完就卸"的设计,正是近 20 个百分点和几乎为零的部署成本能同时成立的关键。问题是:它真的用上了吗?

64.3% 到 84.7%:提升是真的,意图也被用上了

先把基准的可靠性说清楚。SimplerEnv 这套模拟评测最看重 sim 与 real 的一致性,它的论文报告,在 BridgeData V2 任务上除一个任务外,所有被测策略的相对排名都能被模拟正确地恢复,并给出 MMRV 与 Pearson 相关系数两个度量。SimplerEnvINDI 用这套协议跑出来的数字,不是仿真里自嗨。

三组关键数字如下。

评估面backbone基线INDI提升
SimplerEnv-Bridge(4 任务)GR00T-N1.764.3%84.7%+20.4 pp
SimplerEnv-Bridgeπ0.552.3%58.8%+6.5 pp
RoboCasa Kitchen(24 任务)GR00T-N1.764.1%70.3%+6.2 pp
RoboCasa Kitchenπ0.534.9%41.4%+6.5 pp
真实机器人 held-outGR00T-N1.762.0%68.0%+6.0 pp

细看增量能看到规律。Bridge 上最大的提升来自 EP-Basket(把茄子放进黄色篮子)单项,涨了整整 60 个百分点,Spoon 和 Carrot 只涨了 4 到 5 个点。这项任务需要连续走完"拿起、转移、对准袋口、松手"的全过程,正是目标层理解最能帮忙的长 horizon 场景。真实机器人上增益同样集中在长任务:Cross-Bin Stacking 平均涨 7.3 个点,Drawer Storage 涨 10.7 个点,而本已接近饱和的短任务只涨 4 到 5 个点。另外两个条件分别是 ID 任务从 71% 到 76%,distractors 场景从 53% 到 62%。真实实验用的是双机械臂 SO-101 平台,策略以头、左腕、右腕三个机载相机作为视觉输入,每个格子 50 次试验。

更值得注意的是一致性:在 RoboCasa Kitchen 上,来自 NVIDIA 的 GR00T-N1.7 和来自 Physical Intelligence 的 π0.5 增益接近(分别为 +6.2 pp 和 +6.5 pp),而 GR00T-N1.7 在 SimplerEnv-Bridge 上增益更大(达 +20.4 pp)。意图蒸馏的效果不与具体动作头绑定,这是它作为"可插拔中间层"最有说服力的证据。

意图监督还有一个更值钱的附带效果:数据效率。RoboCasa 上只用每任务 100 条示范的 INDI 达到 70.3%,和用每任务 3000 条示范训练出来的已发表 checkpoint 的 70.8% 只差 0.5 个百分点。INDI意图让模型从更少的数据里抓到了更多共性,这比成功率数字本身更说明"为什么"这层语义的价值。论文还有一组受控对比排除掉"只是加了容量"的嫌疑:只留接地监督掉到 60.0%,换成自由潜变量只有 57.0%,单靠意图就有 76.0%,全部合起来 85.5%,而纯动作基线是 61.5%。增益来自 teacher 蒸馏出的意图本身,不是额外参数。

但数字好看还不够,还要证明恢复出的意图真在被使用、真有结构。论文给了三层证据。

第一,意图空间按行为目标自组织。把四个 SimplerEnv 任务在恢复出的意图空间里的中心点做相似度矩阵,Spoon 和 Carrot 距离最近,EP-Basket 与其他任务分离最远。Spoon 和 Carrot 的画面并不像,但行为目标一致,都是桌面抓取放物;EP-Basket 的袋口抓取在行为上最特殊。意图按目标而非画面聚类,说明它编码的是语义层面的东西。

图注:恢复出的意图空间中四个 SimplerEnv 任务中心的 centered cosine 相似度矩阵。Spoon 与 Carrot 是最接近的一对,EP-Basket 与其他任务分离最远。矩阵度量的是意图表示的相关性,不读作因果效应量。INDI

第二,闭环干预证明意图被解码器使用。把恢复意图中编码"目标"的坐标改成同目标的内容,成功率保留 84.5%;改成跨目标的内容,掉到 45.2%;灌入高斯噪声,直接崩到 1.0%。相位强迫更直观:把早期阶段的意图内容硬塞进去,策略就在物体上方悬停不抓取,Spoon 全程不闭爪;把后期阶段塞进去,策略空手做出放置动作,好像已经抓着东西。意图管着行为怎么走,改意图就改行为,这不是旁路装饰能做到的。INDI

第三,意图真的编码了"这一段的终点"。用非参数检索从恢复的意图里找 endpoint 画面,70.5% 的情况下找回的是当前行为的真正终点;把别的任务的意图换进去,78.6% 的情况下检索结果跟着换成了注入的终点,原终点只剩下 0.1%。

三个评估面一致获益,表示分析和干预实验又证明恢复出的意图在真干活。这不只是刷了个榜,而是"提得有道理"。

INDI 值不值得跟进:边界、代价与未解问题

先划清 intent 这个词在文献里的三种用法,别混。IntentVLA 的 intent 是短时历史的连续性表征,用冻结的 VGGT 从最近十几帧抽出来,解决帧级歧义,它不假设单一意图,也不需要意图标签。IntentionVLA 的 intent 是用户侧的推理文本,比如"我手机没电了",由 GPT-4o 生成,推理时显式写出来指导动作。IntentionVLAINDI 的 intent 是老师蒸馏出来的机器人侧行为目标,在解码器中间层恢复。三个都叫 intent,解决的是三个不同的问题。这个对照是分析者的整理,不是任何一篇论文自己的声明。

那 INDI 值不值得跟进?值得借鉴,但目前还借不全。

值得的部分很明确。它是可插拔的:不动动作头主干,只在中间层加意图查询,两个不同家族的 action head 上都能拿到一致提升。它换来一个可观测、可审查、可干预的中间变量,意图可以投影回 endpoint 画面、可以读出 textual purpose,调试时直接看意图有没有对齐,这本身就是可解释性的进步。它还是数据效率的杠杆,100 条示范逼近 3000 条示范的表现,对数据采集成本高昂的机器人领域很值钱。

代价也摆在那里。第一,teacher 选型的影响论文在附录做过受控交换实验:换用 Qwen3.5-9B 时平均成功率降到 54.5%,低于 61.5% 的纯动作基线;换用 Qwen3-VL-8B-Instruct 为 73.5%,Cosmos-Reason2-8B 为 85.5%。不过因果解读仅限于 Qwen3-VL 与 Cosmos 这一对,prompt 设计本身则没有单独消融。第二,purpose 语句的正确性没有被验证过,老师写的"为什么"对不对,没有检查。第三,跨 embodiment 还没有第三方独立复现;实验覆盖 SimplerEnv-Bridge(WidowX 单臂仿真)、RoboCasa Kitchen(仿真)与 SO-101 双臂实物平台,实物实验全部集中在这一个双臂平台上。第四,也是最实际的:截至 2026 年 9 月 1 日,项目的 GitHub 仓库(Leesangoh/INDI)只有一句"Code Coming Soon",既没有代码也没有 checkpoint,暂时没法在自己机器上复现任何一个数。INDI 项目页另外,RoboCasa 上与已发表 checkpoint 的对照是不同数据规模下的参考值,论文自己标注为 data-scale references 而非 matched baselines。

INDI 更像一次方向验证:它证明了行为意图可以作为一个几乎零成本的中间变量被蒸馏、被恢复、被使用,也证明了意图监督是把数据变成泛化的高效杠杆。它没有证明这套设计对 teacher 的依赖可以被任意替换,也没有给出可复现的工程资产。想跟进的人,可以把"意图作为可插拔中间层"这个设计借走,在自己已有的动作解码器上试,但先别指望论文里的数字能原样落地。后续值得观察的三件事:teacher 能否换得更便宜或更通用,代码和 checkpoint 何时开放,跨 embodiment 的独立复现会给出什么样的数字。

INDI 没有把机器人变成哲学家,但它让机器人的动作有了一个可以被检查、被修改的"为什么"。

想深入可以读原文:Act with Intent: Distilling Behavior Intent for Vision-Language-Action Models,见 arXiv:2608.23478

参考文献

INDI:教机器人先想清“为什么”再做,成功率 64.3% 提到 84.7%