你有没有遇到过这种情况:跟着一个烹饪App学做菜,它告诉你"把橄榄油倒进锅里",然后又告诉你"下一步加大蒜",中间你完全不知道这一步算不算做完了,也不知道这盘菜最终要往哪个方向走。你只能机械地等指令,像个没头脑的执行器。
这正是目前所有主动式AI助手面临的核心困境。
**它们要么只会检测眼前发生了什么事然后作出反应,要么只能用一个固定的颗粒度给你指令,既不知道你刚才那步做完了没有,也不懂这一步在整道菜里扮演什么角色。**
这篇来自韩国成均馆大学和新加坡南洋理工大学的论文,就是想解决这个问题。
### 一个被忽略的矛盾:细节和全局不能兼得
先说清楚这件事到底难在哪里。
想象你在教一个新手炒意大利蒜香橄榄油面(Aglio e Olio)。如果你只告诉他"倒油、放蒜、炒蒜、加胡椒、加水搅拌"这种细碎动作,他会手忙脚乱地跟着做,但完全不知道自己在做"一道酱汁",更不知道这道酱汁做完之后下一步要拌面。可如果你只说"先把酱汁做好",一个完全没下过厨的新手根本不知道从哪里下手,油要倒多少,蒜什么时候下锅,这些具体操作全靠他自己猜。
**这就是现有数据集的死结:要么提供的指导颗粒度太粗,缺乏进度追踪的证据;要么太细,缺乏整体目的的解释。**
论文里提到一个专业名词叫指令颗粒度*:指的是AI给出指导时描述动作的详细程度,颗粒度越细则步骤越具体,颗粒度越粗则描述越概括,像把"做饭"拆成"切菜"是粗颗粒,再拆成"拿刀、握住菜、下刀"是细颗粒。
现有的主动式AI助手数据集,比如ProAssist、StreamPro-Bench、Pro?Bench、GuideMe,几乎都只在"步骤"这一个层级上打转。这就好比一本菜谱只写了"炒蒜、加胡椒"这些步骤,却既不告诉你这几步合起来是在做什么酱(更高层的目的),也不告诉你每一步具体要怎么操作手(更低层的动作)。
这种设计带来两个实际麻烦。
第一,AI很难判断一个指导到底完成没有。你正在"炒蒜",但炒到什么程度算完成?如果没有更细一层的"倒油、下蒜、翻炒"这些动作作为证据,AI只能靠猜。
第二,AI没法根据用户的水平调整讲解深度。一个熟手只想听"开始做酱汁"这种概括性提示,一个新手却需要"现在往锅里倒一点油"这种手把手教学。固定颗粒度的系统做不到这种灵活切换。
研究团队的解法,就是把"阶段、步骤、动作"这三层结构同时塞进训练数据里,让AI学会在不同层级之间自由穿梭。
### 搭建一座三层金字塔:阶段、步骤、动作
论文提出了一个叫ProactiveCoach的数据套装,核心设计是把任何一个procedural task(程序性任务,比如做饭、修车、组装家具)拆成三层结构。
最顶层叫阶段(Phase)*:实现一个中间目标的高层单元,比如"做奥利奥酱汁"。
中间层叫步骤(Step)*:完成某个具体结果的程序单元,比如"用大蒜炝锅出香味"。
最底层叫动作(Action)*:可以独立指导的、能被观察到的细粒度事件,比如"把切好的蒜片下锅"。
这三层之间是严格的父子嵌套关系,一个阶段下面有若干步骤,一个步骤下面有若干动作。论文给出的统计数字是,平均每个任务序列包含4.14个阶段,每个阶段下面有3.35个步骤,每个步骤下面有2.47个动作。
这个设计巧妙的地方在于,**低层的动作进度可以作为证据,帮AI判断高层事件是否完成;高层的阶段目标又能帮AI理解低层动作到底为什么要这么做。**
这就像公司里的汇报体系。你的直属主管不需要知道你今天敲了多少行代码,但他需要知道"这个功能模块做完了没";而你自己写代码时又需要知道这个模块是用来解决"登录系统卡顿"这个大问题的,否则你写出来的代码方向可能完全偏了。如果公司只有"完成项目"这一个汇报层级,没人知道具体进度;如果只有"写了第137行代码"这种汇报,老板根本没法做决策。三层汇报体系缺一不可。
研究团队为此构建了一个叫ProactiveCoach-Instruct的训练集,还有一个叫ProactiveCoachBench的评测基准。整个数据集来自7232条第一人称视频,覆盖烹饪、组装维修、家居园艺等多个领域,总时长1452小时,一共产生了58万多条指导目标,其中阶段层4.6万条,步骤层15.5万条,动作层38.2万条。
论文里专门做了人工质量审查,请真人来打分,从视频对齐度、层级覆盖度、目标相关性、指导质量四个维度打分,满分5分,最终平均分达到4.27分。这说明这套三层标注确实是贴着视频内容走的,不是凭空编造。
### 数据是怎么造出来的:三道工序
这套数据集的构建过程分三步走,挺有意思,值得展开说说。
第一步叫程序化数据整理。研究团队先从Ego4D Goal-Step、Ego-Exo4D、EPIC-KITCHENS等八个已有的第一人称视频数据集里,用GPT-4.1-mini筛选出目标明确、覆盖关键事件完整的视频。筛完之后,再用Gemini 2.5 Flash对这些视频重新生成和视频内容对齐的字幕,因为原始标注的颗粒度参差不齐,有的太细有的太粗,还有些和视频对不上。
第二步叫程序层级构建。先过滤掉和任务目标无关的标注内容,比如视频里有人突然接了个电话,这种和做菜无关的片段要剔除。然后把保留下来的标注组织成动作、再组织成步骤、再组织成阶段,形成一棵三层的树。构建完之后还要做一轮检查和修正,专门检测会不会出现"阶段、步骤、动作说的其实是同一件事"这种冗余结构。
第三步叫主动指导生成。基于已经搭好的三层结构,分别为阶段、步骤、动作生成对应的指导语句,然后把这些指导语句和视频里的具体时间点绑定。
这里有个细节值得单独说一下,就是指导时机的分配规则。每一层各自独立判断,当前被指导的事件一旦结束,下一条指导就立刻出现在紧接着的那一帧。如果某一帧同时有多个层级的事件结束了,那就把多层指导合并成一条响应一起给出;如果什么事件都没结束,这一帧就标记成沉默,AI什么也不说。
这个设计其实暗合了一个生活经验。想象你在带孩子做手工,如果孩子每一个小动作你都要插嘴评论,孩子会很烦躁,根本没法专心;但如果你完全不说话,等到整个作品做完才给反馈,孩子又会在中间迷失方向不知道做得对不对。真正会带孩子的家长是只在一个小环节结束、准备进入下一个环节时才开口,其余时间安静地看着。**AI助手要学的也是这种"恰到好处的沉默",而不是无止境地唠叨。**
### 训练方法:一个模型同时学会三种语言
有了数据,接下来就是怎么训练模型。论文提出的方法叫ProactiveCoach,核心思路是让同一个视觉语言模型同时学会三个层级的指导能力,而不是分别训练三个独立模型。
视觉语言模型(VLM)*:能够同时理解图像/视频和文本的AI模型,简单说就是既能"看"又能"说"的模型。
训练过程里有个关键取舍。在真实的程序性视频里,"沉默"的时刻远远多于"需要说话"的时刻,如果不加处理,模型可能学会偷懒,一直保持沉默也能拿到不错的分数,因为大多数时间本来就该沉默。
为了避免这种偷懒行为,研究团队做了一个采样策略:优先保留所有需要响应的片段,以及紧跟在响应之后的那个沉默片段(这代表"刚做完一件事,马上又要判断接下来该不该说话"的关键时刻),然后再从剩下的沉默片段里随机抽一部分,数量和前面选出来的片段总数持平。
这个做法类似于考试复习时的刷题策略。如果一张卷子里90%都是"对"的判断题,10%是"错"的判断题,你如果盲猜全对就能拿到90分,这种练习对你一点帮助都没有。真正有效的复习方式是把对错题目调整成差不多的比例,这样你才会真正去辨别每一题到底哪里对、哪里错,而不是靠猜题蒙混过关。
### 实验结果说了什么
论文在ProactiveCoachBench和一个已有的公开评测基准EgoProactive上做了大量对比实验,涉及四类模型:谷歌Gemini、Anthropic Claude、OpenAI GPT这类顶级闭源模型,Qwen3-VL这类开源多模态模型,专门做指导助手的ProAssist,以及VideoLLM-Online等流式处理模型。
评测用了三个指标。sF1*:衡量生成的指导内容和真实标注在语义和时机上的匹配程度,分数越高说明说得越准、说得越全。
gF1*:只看模型该说话时有没有说、不该说话时有没有闭嘴,不管内容对不对,分数越高说明"时机判断"越准。
PQS*:综合考察时机判断和内容质量两方面的表现,是一个更全面的指标。
结果显示,经过三层级联合训练的模型,在Qwen3-VL-4B这个骨干网络上,PQS指标从没训练前的26.65分一路提升到62.69分,提升幅度相当惊人。在另外三个骨干模型Qwen3-VL-8B、Qwen3.5-4B、Qwen3.5-9B上也都呈现类似的大幅提升。
更值得玩味的是和"只训练步骤这一层"的对比实验。论文做了消融实验,专门比较了只用步骤层监督训练,和用阶段、步骤、动作三层一起训练,两种方式下模型在步骤层的表现差异。结果是,三层联合训练比单独只训步骤层的效果要好得多,PQS能提升接近10个百分点。
这个结果说明了一件直觉上不太容易想到的事:**哪怕你最终只关心步骤这一个层级的表现,给模型额外补充阶段和动作这两层的训练信号,反而能让步骤层本身做得更好。**
这其实有点像学外语的道理。如果你只背单词不学语法,你能认出每个词但组不成通顺的句子;如果你只学语法不记单词,你能造出结构正确但没内容的空壳句子。真正说得流利的人,是同时在词汇、语法、语境这几个层面都建立了理解,层与层之间互相支撑。模型学指导生成也是同样的道理,低层动作告诉它"现在具体该怎么做",高层阶段告诉它"这一步是为了什么",两边信息互相印证,反而让中间那层学得更扎实。
论文还单独验证了一件事:如果不训练,只靠在提示词里告诉模型"请你同时给出三个层级的指导",模型能不能自己做到?答案是做不到。零样本情况下模型在阶段层的PQS只有29.32分,训练后能到62.94分,差距非常悬殊。这说明光靠提示词凑合是不够的,模型必须真正在训练数据里见过这种层级结构,才能学会怎么把它们串联起来。
### 当用户突然说"我想要更详细的讲解"
实验里最有现实意义的一部分,是关于指导层级切换的测试。
现实场景里,用户的需求是会变的。你一开始可能觉得自己很懂,只想要"做酱汁"这种粗略提示,但做到一半发现某个环节不会,突然想要"告诉我具体怎么下蒜"这种细致指导。一个好的助手应该能立刻响应这种切换,而不是死守着最初设定的颗粒度。
论文设计了一个很巧妙的架构来解决这个问题,叫做引导路由器(guidance router)*:一个轻量级的小型语言模型,专门负责根据用户当下的请求,从模型已经生成好的多层级指导里挑选出合适的那一层展示给用户,不需要重新训练主模型。
这个设计的精妙之处在于把"生成指导内容"和"决定展示哪一层"这两件事彻底拆开。主模型一直在后台同时生成阶段、步骤、动作三个层级的内容,路由器只负责根据用户此刻的请求,切换展示哪一层。
论文对比了两种方案。一种是基线方案,把"用户想换层级"这句话直接塞进对话历史里,靠模型自己在上下文里领悟要切换。另一种是论文提出的路由器方案。
结果差距非常大。以"从步骤层切到阶段层"这个场景为例,基线方案的PQS只有9.46分,而路由器方案达到85.54分。四种切换场景(步骤到阶段、步骤到动作、阶段到步骤、动作到步骤)平均下来,路由器方案比基线方案高出57.1个百分点。
为什么差距这么大?论文给出的解释是,基线方案的对话历史里已经堆满了"之前一直按原来那个层级说话"的记录,模型很难单纯靠一句新指令就扭转过来,这种惯性很难打破。而路由器方案完全绕开了这个问题,因为生成和展示是分开的,历史记录不会限制接下来展示哪一层。
这让我想到一个生活中的类比。假设你请了个话痨朋友帮你带路,前半段路上他一直详细讲解"往左转、再往右转、注意台阶",你突然说"不用说那么细,告诉我大概方向就行"。如果这个朋友只会死记住之前一直是细致讲解模式,他可能很难立刻切换过来,还是忍不住碎碎念每一个细节。但如果有个助手在旁边,提前把"粗略方向"和"详细步骤"两个版本都准备好了,你一开口要换,立刻就能切过去,根本不用等那个话痨朋友转变思维。**把内容生成和呈现方式解耦,才能应对需求的突然变化。**
### 几个值得多想一步的地方
论文里有一处细节我觉得挺值得琢磨。研究团队在评测的时候,统一使用真实标注的对话历史而不是模型自己生成的历史,这是为了避免之前的错误判断影响后续评测,确保所有模型在同一起跑线上比较。但论文自己也承认,这意味着目前的评测没有完全还原真实使用场景里"一步错步步错"的风险,如果模型前面判断错了,会不会在后续持续放大误差,这个问题还没有被充分验证。
还有一点,论文提到的程序性任务评测目前假设任务的执行顺序是固定的,但现实里很多任务,比如做一道菜,先切菜还是先烧水,很多时候顺序是可以互换的,并没有唯一的标准答案。这篇论文的评测体系目前还没能很好地处理这种"多种正确做法"的情况,算是留给后续研究的一个开放问题。
### 写在后面
读完这篇论文,印象最深的其实不是三层结构本身,层级化这个思路在很多领域都不新鲜,而是论文里那组"消融实验"揭示的反直觉结果:给模型补充它表面上不需要的额外信息(阶段和动作层的监督),反而能让它在它真正关心的那个层级(步骤层)上表现更好。这提醒我一件事,我们常常倾向于认为"专注做好一件事"才是效率最高的做法,但这个实验说明,有些时候系统性地补充周边信息,反而是把核心任务做扎实的捷径。这和很多人学习时的误区很像,拼命刷一个知识点的题,不如把这个知识点前后相关的背景一起搞懂,哪怕看起来绕了远路。
另外,引导路由器这个设计思路,把"生成"和"呈现"拆开的做法,其实在很多产品设计里都能看到影子,比如一份报告可以同时准备摘要版和详细版,根据读者需求随时切换,而不需要重新写一份。但在AI助手这种实时交互场景里,把这个原则做成一个可以即插即用、不需要重新训练主模型的轻量路由器,确实是个挺讨巧的工程解法。
如果以后你家里真的有个会看着你做饭的AI助手,它突然沉默了,你会不会下意识地想,它是不是正在判断我刚才那一步做完了没有。
Q&A
Q1:ProactiveCoach数据集的三层指导结构是什么?
A:分为阶段、步骤、动作三层,阶段是实现中间目标的高层单元,步骤是完成具体结果的程序单元,动作是可独立指导的细粒度事件,三层之间存在严格的父子嵌套关系。
Q2:为什么训练阶段层和动作层能提升步骤层的表现?
A:低层动作进度能证明某个步骤是否完成,高层阶段目标能解释这个步骤的意义,三层信息互相印证,让模型对步骤层的理解更扎实,实验显示PQS能提升近10个百分点。
Q3:引导路由器是怎么实现指导层级切换的?
A:主模型持续在后台生成阶段、步骤、动作三个层级的内容,轻量级路由器只负责根据用户请求切换展示哪一层,不需要重新训练主模型,切换效果比直接在对话历史里要求模型切换高出57.1个百分点。







