AI助手不懂你在炒菜还是凉拌:成均馆大学与南洋理工提出三层指导框架
你有没有遇到过这种情况:跟着一个烹饪App学做菜,它告诉你"把橄榄油倒进锅里",然后又告诉你"下一步加大蒜",中间你完全不知道这一步算不算做完了,也不知道这盘菜最终要往哪个方向走。你只能机械地等指令,像个没头脑的执行器。这正是目前所有主动式AI助手面临的核心困境。**它们要么只会检测眼前发生了什么事然后作出反...
跟着烹饪App做菜,你有没有碰上过这种局面:它让你「把橄榄油倒进锅里」,接着又说「下一步加大蒜」,可你压根不清楚手上这步算不算收尾,也不知道整盘菜最后要奔哪儿去。你只能一个指令一个指令地照做,活像个没头没脑的执行器。
眼下所有主动式AI助手,卡住的正是这个点。
**它们不是只会盯着眼前发生了什么、再作出反应,就是拿一种固定颗粒度给你下指令——你刚那步有没有做完,它不知道;这步在整道菜里算什么位置,它也不懂。**
韩国成均馆大学和新加坡南洋理工大学的一篇论文,盯的就是这个难题。
### 细节与全局,为何难以兼得
先说说难在哪儿。
假设你在教一个新手做意大利蒜香橄榄油面(Aglio e Olio)。光告诉他「倒油、放蒜、炒蒜、加胡椒、加水搅拌」这类碎动作,他会手忙脚乱地跟,却不知道自己其实在做「一道酱汁」,更不知道酱汁弄完还得拌面。反过来,你只说「先把酱汁做好」,一个没下过厨的新手根本无从下手:油倒多少、蒜何时下锅,全得靠他自己猜。
**现有数据集的死结就在这里:指导颗粒度给得粗,就缺了追踪进度的证据;给得细,又缺了对整体目的的解释。**
论文里有个专业说法叫指令颗粒度*,指的是AI给指导时把动作描述到多细——越细步骤越具体,越粗描述越概括。把「做饭」拆成「切菜」算粗颗粒,再拆成「拿刀、握住菜、下刀」就是细颗粒。
ProAssist、StreamPro-Bench、Pro?Bench、GuideMe这些现有的主动式AI助手数据集,基本都停留在「步骤」这一个层级。好比一本菜谱只写了「炒蒜、加胡椒」,既不说这几步合起来是在做什么酱(更高层的目的),也不说每步的手要怎么动(更低层的动作)。
这样的设计,实际带来两个麻烦。
其一,一个指导到底完成没有,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个百分点。