你有没有想过这样一个场景:两个人戴着VR设备,站在同一个虚拟房间里,一个人伸手去拿桌上的杯子,另一个人应该看到杯子被拿起来了。可现实是,如果你去跑市面上那些厉害的视频生成模型,很可能看到的画面是:A视角里杯子已经被拿走了,B视角里杯子还稳稳地立在桌上。
这不是段子,这是2025年多智能体世界模型领域一个真实存在、而且相当棘手的问题。
来自KAIST AI的研究团队在这篇论文里把这个问题摆上了台面,并且给出了一套系统性的解决方案,叫做ME-World(Multi-agent Egocentric World Model)。在往下讲之前,有必要先搞清楚几个听起来陌生的词。
世界模型:一种能够根据输入的动作或指令,预测未来会发生什么画面的AI模型,有点像给AI装了一个"脑内模拟器",不需要真的去做某件事,就能先在脑子里演一遍后果。
第一人称视角生成(egocentric):不是从天上俯瞰整个场景的"上帝视角",而是严格按照一个人眼睛看到的样子来生成画面,也就是"ego stream"(自我视角流)。
这篇论文要解决的核心矛盾是:当多个人同时在一个共享的虚拟世界里行动和互动时,怎么让每个人看到的画面既符合自己的动作逻辑,又和别人看到的画面保持一致。
### 问题到底难在哪
先说说这个领域之前是什么水平。
过去的第一人称世界模型,比如EgoSim、EgoControl这些工作,几乎清一色只服务于单个智能体。你一个人戴上设备,模型根据你的动作生成你眼前的画面,没问题,这类技术已经相当成熟了。但现实世界从来不是一个人在战斗,两个人一起做饭、握手、递东西,这种场景里,动作不只是"我的控制信号",它同时也是"别人能看到的事件"。
已有的多智能体世界模型倒是存在,但它们大多活在另一个维度。比如用于多人游戏的Multiverse,处理的是离散的游戏指令,像"按下跳跃键"这种粗粒度操作;用于自动驾驶的Vista,处理的是相机轨迹;用于机器人协作的那些工作,处理的是机械臂的控制信号。这些控制信号都是低维度、抽象化的,根本捕捉不到人类互动中手指的微小摆动、手臂伸出去的轨迹、低头看一眼的那种细腻变化。
论文里用了三张对比图说明这个困境,很直观。第一种失败叫动作不一致:如果不给模型喂"其他智能体在做什么"这个信息,A的手在A自己的视角里看着正常,但B看到的A的手部动作却是扭曲变形的,完全对不上。第二种失败叫环境不一致:两条视角流各自为政地生成,结果同一面墙在两个人眼里长得不一样,书架摆放的位置也对不上。第三种失败叫状态更新不一致:这是最要命的,一个人移动了锅,另一个人的画面里锅还停在原地没动。
这三个问题合在一起,指向一个本质性的疑问:如何让一个模型生成多条第一人称视频流,同时保证它们描述的是同一个正在演化的共享世界,即便每个智能体观察、行动、互动的方式都不一样?
### 联合生成:不让两条视频流各写各的剧本
ME-World给出的第一招叫做联合多智能体生成(Joint Multi-Agent Generation)。
具体怎么做的?传统做法是分别给两个智能体各跑一遍生成模型,互不打扰。ME-World反其道而行之,把两个智能体的视频潜在序列(latent sequence,可以理解为视频被压缩编码后的数字表示)拼接在一起,塞进同一个视频扩散Transformer里,让它们在自注意力(self-attention,一种让模型内部不同部分互相"看一眼"彼此信息的机制)层面充分交流信息。
这里需要解释两个术语。
DiT(Diffusion Transformer):一种结合了扩散模型(通过逐步去噪生成图像或视频的技术)和Transformer架构(擅长处理序列数据、捕捉长距离依赖关系的神经网络结构)的生成模型,ME-World基于预训练好的Cosmos-Predict2.5 2B模型来做微调。
RoPE(旋转位置编码):一种告诉模型"这个数据块在时间和空间上处于什么位置"的技术手段,ME-World给两条视频流用了完全相同的位置编码,让它们对齐到同一个时空坐标系里,再用一个可学习的"智能体身份标签"来区分哪些token属于谁。
这就好比两个同事各自写一份会议纪要,如果各写各的,最后两份纪要里对"会议上谁说了什么"的记录很可能对不上。但如果让他们坐在同一张桌子边,一边写一边互相瞟一眼对方写了什么,那两份纪要大概率能对得上。联合生成做的正是这件事:让两条视频流在生成过程中"互相瞟一眼",而不是闭门造车。如果不这样做,消融实验的数据很直接:论文里的变体(3)和(7),也就是去掉联合生成的版本,环境一致性分数Senv直接从0.468掉到0.401和0.433,状态更新一致性Supdate也相应下滑,生成的画面里经常出现"同一面墙两种画法"的问题。
### 共享动作条件:让对方的动作成为"我"视角里的信息
光让两条视频流互相看一眼还不够,模型还需要知道该怎么驱动每个智能体的动作。
这里论文提出了共享动作条件(Shared Action Conditioning)。一个最直觉的做法是只给每条视频流喂它自己的动作数据,把动作当成私有信息。但问题在于,人类互动里一个人的动作本来就是要被另一个人观察到的,如果B只知道自己要做什么动作,却完全不知道A正在朝自己伸手,那B的视角里就不可能准确渲染出"A正在靠近"这个事实。
于是ME-World把每个智能体的动作拆成身体动作(body motion)和头部动作(head motion)两部分。身体动作用骨架图渲染出自己视角里能看到的手臂运动,同时把其他智能体的3D身体姿态也投影进这个视角里,这样一来,每条视频流接收到的姿态条件既包含自己的动作,也包含对方在自己视角中能看到的动作。头部动作则用Plücker射线图(一种用数学方式精确描述每个像素对应的摄像机视线方向的编码方法)来表示,它决定了摄像机轨迹和能看到的视野范围,所有的射线图都被统一表达在一个共享的坐标系里,这样不同视角之间的摄像机轨迹才具有可比性。
打个比方,这就像两个人打乒乓球,如果你只盯着自己手里的球拍动作,根本不看对方的球拍和身体姿态,你是打不好这场球的。你必须一边执行自己的动作,一边把对方的动作信息纳入你的判断里。共享动作条件做的就是把"对方在我视角里是什么姿态"这件事,明确地喂给模型,而不是让模型自己去猜。实验数据显示,去掉这个模块后(变体3、4、6),Full-Body-F1这个衡量对方身体是否被正确检测和对齐的指标会大幅下降,最低甚至只有0.146(Solaris基线对比),而加上共享动作条件后能冲到0.822。
### 共享环境记忆:给两个人一份一致的"场景底稿"
解决了"动作谁驱动谁"的问题,还剩一个更棘手的事:环境本身长什么样子。
即便两条视频流互相交流了,每个智能体依然只能看到场景的一部分,模型缺少一个共同的参照物来判断背景、物体、布局到底该长什么样。为此论文设计了共享环境记忆(Shared Environment Memory),包含两条并行的路径。
第一条叫流对齐几何记忆(Stream-Aligned Geometric Memory)。做法是从历史观测池里挑一帧和目标视角重合度最高的图像,用目标视角的射线条件把它变形(warp)到目标相机视角下,生成一个warped RGB条件和一个可见性掩码。在这个过程中,模型会用SAM3(一种能够根据语义概念精确分割图像中物体的分割模型)把移动中的人物区域屏蔽掉,避免把过时的姿态信息错误地传递进去。
第二条叫跨流锚点记忆(Cross-Stream Anchor Memory)。它的存在是为了弥补第一条路径的局限:几何变形只能覆盖能够被精确投影的区域,剩下的区域就是一片空白,而且变形过程会丢失原始画面的清晰度。于是模型贪心地挑选出若干张历史观测图(不做任何变形处理),让它们覆盖的区域互相补充,然后把这些"干净"的参考图编码后拼接进联合去噪序列里,所有视角流都能同时参照这些锚点来生成画面。
这套设计让我想起团队做项目时用共享文档的场景。如果每个人各自存一份本地文件,谁改了什么别人根本不知道,最后拼起来必然对不上版本。但如果大家都对着同一份Google Doc写,哪怕每个人编辑的段落不一样,至少底层的参照是统一的。流对齐几何记忆相当于"把别人改过的内容实时同步到你这页",而跨流锚点记忆相当于"保留一份未经改动的原始底稿,供所有人随时查阅"。如果去掉共享环境记忆(变体3、4、5),环境一致性Senv会从0.468滑落到0.401左右,背景画面在两条视角流里会出现明显的不一致。
### 评估这件事本身也要重新设计
这里有个挺有意思的点:论文作者发现,现有的多智能体一致性评估方法本身就有漏洞。
因为很多一致性是直接从共享输入条件里"抄"出来的,换句话说,如果给两个模型相同的场景输入,它们生成的画面自然会有一些表面相似,但这不代表模型真正学会了维持一个连贯的共享世界。为了把这种"虚假一致性"和"模型真正建立的一致性"区分开,论文提出了三个新指标。
Senv(环境一致性):只在没有被几何记忆直接覆盖的区域里,比较两条视频流对应区域的DINOv3特征相似度,用来检验模型在缺乏直接场景证据的情况下,是否还能自己维持环境的一致性。
Supdate(状态更新一致性):专门检查那些因为交互而发生变化的区域(比如被挪动的锅),看这个变化是否在两条视频流里都得到了体现。Sid(身份一致性):只在合成数据集上使用,检验生成画面里出现的另一个智能体是否保持了正确的外貌身份,不会在生成过程中"换脸"。
为了验证这几个指标不是花架子,论文做了一个很扎实的控制实验:故意往生成结果里注入三种已知的错误(时间错位、环境冲突、状态冲突),看指标分数是否按预期方向下降。结果显示,时间错位让两个指标都下降,环境冲突专门拉低Senv(从0.468掉到0.377,降了0.09),而状态冲突专门拉低Supdate(从0.466掉到0.32,降了0.147)。这种差异化的响应证明了这两个指标确实分别捕捉到了不同的失败模式,不是在凑数。
### 数据从哪来:真实和合成双管齐下
训练这样一个模型需要什么样的数据?答案是:现有数据集几乎都不够用。
主流的第一人称数据集,比如Ego4D、EPIC-KITCHENS这些,基本只拍一个人的视角,根本没有"两人同时戴设备记录同一场互动"这种同步多视角数据。论文采用的解决方案是两条腿走路。
真实数据这边,用的是CoMind数据集,记录了两个人在厨房里协作做饭的场景,两副头戴设备同步录制。论文团队用SLAM(一种同步定位与地图构建技术,用来还原相机在三维空间中的运动轨迹)把两个摄像头的坐标系对齐,再用DA3模型估计深度,用Sapiens2模型估计全身姿态,最后筛选出大约1.2万对训练片段。
合成数据这边,论文从Inter-X和InterHuman这两个人体交互动作数据集里挑了1822段双人互动动作,retarget(把一套动作数据迁移到另一个不同体型的角色模型上)到100个不同的虚拟角色身上,放进7个Blender渲染环境里,用两个头戴虚拟摄像机同步渲染,生成了4736对训练片段。这种合成方式的好处是角色外貌多样、环境可控、还能拿到完整的几何标注,弥补了真实数据里身份信息不够清晰的短板。
### 实际效果如何
论文把ME-World拿去和三类方法比较:多视角生成模型(GEN3C、AnyView-DVS)、单智能体世界模型(EgoSim、JointControlVideo)、通用世界模型(DreamX-World、LingBot-World)。
在真实数据集上的结果很能说明问题。多视角方法虽然用了真实的参考视频做引导,但生成画面经常模糊或出现"重影"式的动作错误,环境一致性分数普遍只有0.3出头。单智能体模型能较好地跟随目标智能体自己的动作,但因为完全不知道另一个人在做什么,Other-Agent方面的控制表现很差,比如GEN3C的Full-Body-PCK只有0.456。而ME-World在这张表里几乎是全面领先:环境一致性Senv达到0.468,状态更新一致性Supdate达到0.466,自身手部动作控制Hand-F1达到0.888,对方身体控制Full-Body-F1达到0.822,图像质量指标PSNR也拿到19.849,FVD(一种衡量生成视频整体分布是否接近真实视频的指标,数值越低越好)降到637.9,是所有对比方法里最低的。
论文还专门和四个经过改造适配的多智能体基线做了对比:MultiWorld、Solaris、γ-World、MetaWorld,确保这四个方法用的是和ME-World相同的骨干网络、相同的训练数据、相同的共享动作条件,唯一区别是各自保留自己原有的环境建模机制和跨智能体通信机制。结果显示,MetaWorld表现相对最强(它用了World-State Alignment机制,通过变形观测和深度条件来做环境建模),但依然全面落后于ME-World,比如Senv是0.421对0.468,Supdate是0.413对0.466。
消融实验部分也值得一提。论文把三个核心模块一个个拆开看效果,发现每个模块解决的失败模式是不同的:去掉联合生成,画面一致性整体下滑;去掉共享动作条件,跨视角动作对不上;去掉共享环境记忆,背景会"分裂"成两个不同的样子。三个模块叠加之后,各项指标才能同时达到最优,说明这不是单点优化能解决的问题,而是需要系统性的设计。
值得一提的是,论文还展示了ME-World能够自然扩展到三智能体场景,只需要额外增加一条视频流和对应的身份标签,不需要改动模型架构。另外模型也支持自回归式的长时间生成,通过链式拼接多个生成片段,可以产出长达221帧的连贯双人互动序列。
Q&A
Q1:ME-World是什么?
A:ME-World是KAIST AI团队提出的多智能体第一人称世界模型,能够同时为多个在同一虚拟世界中互动的智能体生成相互一致的第一人称视角视频,解决了动作不一致、环境不一致、交互状态更新不一致三大难题。
Q2:ME-World和普通单智能体世界模型有什么区别?
A:单智能体世界模型只根据一个人的动作生成这个人自己的视角画面,完全不管别人在做什么。ME-World则把多个智能体的视频生成过程联合在一起,让每条视角流互相感知对方的动作和共享的环境,保证两个人看到的是同一个正在演化的世界。
Q3:ME-World是怎么评估生成效果好不好的?
A:论文提出了三个新指标:Senv检验没有直接证据区域的环境是否一致,Supdate检验物体状态变化是否在各视角里都体现出来,Sid检验合成数据里角色外貌身份是否保持一致,并通过控制实验验证了这些指标确实能准确反映对应的失败类型。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。