π0.7: a Steerable Generalist Robotic Foundation Model with Emergent Capabilities
π0.7:一个具有应急能力的可操纵广义机器人基础模型
关于Emergent 的翻译:
涌现的(强调突然出现或自组织现象)
例:Emergent behavior in ant colonies → 蚁群中的涌现行为
突现的(哲学/系统科学中表意外特性)
例:Emergent properties of complex systems → 复杂系统的突现特性
应急的(医学/紧急情况)
例:Emergent surgery → 应急手术
新兴的(技术/趋势领域)
例:Emergent technologies → 新兴技术
所以感觉更加偏向于涌现/突现/新兴,反而不是应急的意思、
π0.7 使用不同的提示(我一开始读以为这个就是普通的不同提示词,但在这不是这样的)进行训练,这些提示不仅包含任务描述,还包含详细的语言、生成的子目标图像和情节元数据。
π0.7 背后的主要思想是在训练期间使用多样(长度类型也能发生变化)的上下文调节。目的是为了增加指令跟随能力(也包含开放式指令)。
原文总览:
“然而,单纯地使用此类数据并不会带来成功:由于存在策略和任务性能方面不同的各种示例,单纯的训练过程会导致模型对数据集中的不同模式进行平均并产生次优结果。在训练 π0.7 时,我们通过使用详细的上下文注释来注释数据来解决这一挑战,这些注释不仅包含有关做什么的信息,还包含如何做的信息,并使用各种多模态条件信号向模型提供这些知识。通过这种方式,每一集都会向机器人传授细致入微的概念和技能,它不仅可以用来有效地执行训练任务,还可以以新的方式组合来解决新任务。我们提出的提示结构包括详细的语言标签、策略元数据和多模态信息(例如子目标图像)。这使我们能够解决大型和多样化数据集中的歧义,在不损害性能的情况下从次优行为中学习,并获得跨指令、实施例和环境的广泛概括。
我们的方法可以从混合质量数据和非标准数据源(这里要注意是混合质量数据,相当于数据故意变成质量有高有低)中学习,而不会损害模型性能,并且在训练期间提供详细的上下文信息时,不同的数据可以提高模型性能。
我们开发了一个 VLA 模型,它将所有这三个组件合并在一个模型中,构建在 π0.6-MEM 架构之上 [37, 42]。虽然通才策略通常是在机器人演示数据上进行训练的,但之前的工作已经展示了如何从将网络数据 [7]、人类以自我为中心的视频 [25, 43–49] 和自主机器人体验 [50 - 52] 纳入预训练中获得好处。我们整合了所有这些数据源,发现不同数据与详细提示的结合产生了一个具有强烈的成分泛化迹象和高性能的开箱即用行为的模型。
用子目标图像提示机器人。我们模型相对于 π0.6-MEM 的核心架构组件是允许使用目标图像(包括生成的子目标图像)提示模型。”
总体来说,在π0.6-MEM 架构之上融合了目前现有的新技术(世界模型)+各种方式(metadata)提升指令跟随能力。

Fig. 2 架构概述。 π0.7模型是一个5B参数VLA,由4B VLM主干、MEM式视频历史编码器和860M参数动作专家组成。该模型的上下文包括多种不同的模式,包括语言命令、描述数据质量和策略的事件元数据以及多模式输入(例如子目标图像)。在运行时,语言命令由基于相同架构的高级语义策略生成,子目标图像由基于 14 B 的 BAGEL 图像生成模型 [105] 的轻量级世界模型生成。
基础技术细节解读:
“为了学习有效的表示,我们的模型还使用知识隔离(KI)训练方法[103]:VLM主干由FAST令牌监督[104],而动作专家负责VLM主干中的所有激活,来自动作专家的梯度不会流入VLM主干,这样VLM是通过相对稳定的离散交叉熵损失来训练的。”
这里的FAST应该就是pi0-FAST里所用的FAST方案。先对动作 chunk 做 DCT(离散余弦变换),把时序动作变到频域,再量化,再用 BPE 压缩成离散 token。这样得到的 token 更短、更适合像语言一样做 next-token prediction。
接着继续沿用flow matching。
当时读到这块的时候还愣了一下

其实是正常的流匹配技术,即这句话不是在说“flow matching 完全不对应概率模型”,而是在说“它不是像交叉熵那样直接、闭式地优化真实动作的 log-likelihood;它优化的是一个通过学习连续去噪/传输向量场来间接逼近该目标的代理损失。
“视觉编码器也是从 Gemma3 初始化的,并遵循 MEM 视频历史编码器 [37] 的设计,对历史观察应用时间和空间压缩,并为任意数量的历史帧输出固定数量的标记。”
prompt细节解读:
首先一定得要知道:π0.7 里的 metadata(英文翻译为元数据与episode metadata应该是一回事),本质上是在告诉模型:这条轨迹不仅“做了什么”,还“做得怎么样、做得快不快、过程中有没有犯错”。 作者引入它的直接原因是:他们不只想用高质量示教,还想把低质量示教、失败轨迹、以及旧策略自动跑出来的数据都拿来训练(也是一种利用数据的方式);但如果不给模型这些“轨迹属性标签”,模型就会把好坏不同、风格不同的数据混在一起学,最后容易平均化、学偏。论文在 Episode metadata 一节就是这么解释的。在运行时,可以通过元数据提示指示模型高速、高质量、无错误地执行任务。
先澄清一个容易混的点:在 π0.7 的完整 prompt 里,和 metadata 挨得很近的还有 control mode,例如 Control Mode: joint。但严格按论文写法,episode metadata 指的是三类:Overall speed、Overall quality、Mistake;control mode 是单独一类上下文,不算 episode metadata 本体。论文在 V-C 专门定义了 metadata,在 V-D 又单独定义了 control mode。
相当于如下的完整prompt里面由metadata:
“<Multi-view observation><Multi-view subgoals> Task: peel vegetables. Subtask: pick up the peeler. Speed: 8000. Quality: 5. Mistake: false. Control Mode: joint.<Proprioception>”
数据处理细节解读:
“在训练过程中,我们随机删除提示的每个部分,这为 π0.7 提供了在测试时使用提示组件的任何子集的灵活性(例如,使用或不使用子目标图像运行)。”
解读:π0.7 不是被训练成“必须依赖某一种提示形式”才能工作,而是被训练成“看手里有什么提示,就尽量用好什么提示”。所以作者在训练时,会把 prompt 里的不同组成部分随机拿掉一些。这样到了测试时,模型既可以带子目标图像运行,也可以不带;既可以有更细的 subtask instruction,也可以只有部分上下文。论文原文明确说,训练时随机 dropout prompt 的各个部分,是为了让模型在测试时能灵活使用 prompt 的任意子集。
“首先,我们发现,当给定子目标图像时,模型训练速度显着加快,动作预测任务本质上变成了一个“逆动力学”问题,推断当前帧和未来帧之间的机器人动作。因此,我们只将视觉子目标图像添加到训练中每批样本的 25% 中。”
解读:因为“给定子目标图像时”这种情况太好用、太强了,所以不能让模型过度依赖它。
“历史帧通过视觉编码器处理并压缩为与单帧相同数量的令牌;子目标图像通过相同的编码器进行处理。相机观察和子目标图像首先调整为 448x448 像素。对于历史帧的采样,我们使用 1 秒的步幅,并且整个历史帧以 0.3 的概率完全丢弃。后视图像(如果可用)也会以 0.3 的概率被丢弃。”
模型架构细节解读:
“历史帧通过视觉编码器处理并压缩为与单帧相同数量的令牌;子目标图像通过相同的编码器进行处理。相机观察和子目标图像首先调整为 448x448 像素。对于历史帧的采样,我们使用 1 秒的步幅,并且整个历史帧以 0.3 的概率完全丢弃。后视图像(如果可用)也会以 0.3 的概率被丢弃。”
解读:这里的历史帧值得是MEM 存的记忆锚点,在文章中表述成history frames。机器人回忆过去时,每秒取一个记忆锚点。 那 1 秒会不会太久?(其实我在问ai这个问题的时候,那时候还有点不太明白历史帧的意思。在π0.6-MEM中有详细介绍。) 这个问题问得很好。答案是: 对“历史记忆抽样”来说,未必太久;但它当然不是在捕捉每个细微瞬时动作。 为什么说未必太久: 第一,论文这里的历史帧用途不是替代当前视觉,而是提供长一点时间尺度上的上下文。 如果每隔几帧都存一张,6 个历史帧会很快被大量重复画面占满,token 成本也更高。用 1 秒步长,6 个历史帧大致能覆盖一个更长的过去窗口。第二,细粒度控制不只靠这些稀疏历史图。 论文同时喂了当前多视角图像和proprioceptive state including history states;而动作专家本身是在 50Hz 机器人设定下做连续动作预测。也就是说,细动作主要靠当前观测、状态和高频 action chunk,不是完全靠这些 1 秒间隔的历史帧。第三,subgoal image 也不是很久才更新一次。 当使用子目标图像时,论文说它会在语义意图变了时更新,或者距离上次生成已经 4 秒 时更新,取先发生者。也就是说,目标提示本身也在动态刷新。
读到这的时候
”C. 使用子目标图像进行训练 当训练 π0.7 来处理子目标图像时,我们需要模型来适应具有不同延迟和不同图像质量水平的目标,包括我们的世界模型生成的图像。这需要在训练时仔细选择提供哪些子目标作为模型的上下文。我们对训练轨迹未来时间步长的真实图像和生成的图像进行组合训练。我们发现以下采样方案对于选择真实图像的时间步长是有效的:我们以 0.25 的概率对段结束图像进行采样(与世界模型的预测目标一致),并以 0.75 的概率从当前时间步长之前 0-4 秒均匀地采样未来图像。除了这些真实图像之外,我们还通过从世界模型中采样大量子目标图像,并将这些生成的图像添加到 π0.7 的上下文中(而不是真实的未来图像)来构建额外的训练示例,从而减轻真实图像和生成图像之间的训练测试不匹配。“
一开始针对0.25的概率我是有一些不太明白的,具体解读如下:
原因是测试时给 π0.7 的 subgoal image 往往来自它们的 world model,而不是训练轨迹里“完美的真实未来帧”;而且这些子目标有时代表“本子任务结束时应达到的状态”,有时只是“接下来几秒内的近未来状态”。所以训练时要让策略同时适应这几种情况,减少 train-test mismatch。论文原文先说“需要让模型适应不同 delay 和不同 image quality 的 goals”,然后给出了这套混合采样方案。
同时,作者强调 world model 训练很依赖高质量的 segmented language labels(分段的语言标签),尤其是时间分段质量。把这两句合起来,意思就是:他们先把轨迹按子任务/语义阶段切成若干段,再把“当前所在这段的最后一帧”当作 segment-end target。
推理细节解读:
“在运行时,我们将 π0.7 配置为根据所需的行为在不同形式的上下文中运行,而无需任何特定于任务的后期训练。对于任何任务,我们总是用控制模式和情节元数据提示模型。为了选择剧集元数据,我们遵循 • 总体速度:将每个任务设置为任务的剧集长度的第 15 个百分位。 • 总体质量:始终设置为5,这是最高分。 • 错误:始终设置为 false,表示没有错误。”
这里的总体速度设置成15%的解读:
对某个任务,统计训练数据里这个任务所有成功/演示 episode 的长度分布,然后取“较短的那一档”作为测试时 prompt 里的目标快慢。 因为 episode 越短,通常代表完成越快,所以“15th percentile of episode length”其实就是在说:把模型往这个任务中比较快的风格上推。 可以举个很直观的例子:某任务的 episode 长度分布是:最快一些:1800, 1900, 2000 steps 中位附近:3000 steps 慢一些:4500, 5000 steps 那 15th percentile 大概会落在靠近前面那批较短 episode 的位置,比如 1900 或 2000 steps。 测试时把 prompt 里的 Speed 设成这个值,本质上是在告诉模型: “这次请按这个任务里比较利落、比较高效的风格来做。”
可以使用利用如下CFG公式


它是在每一步动作去噪时,用“有 prompt”与“去掉该 prompt 后”的差值来放大 prompt 的影响,让生成动作更强地符合你想要的行为风格。
论文实验细节解读:
实验这块还是比较朴素:
π0.7 的提升,不只是模型更大,而是“更可控的上下文 + 更杂但更广的数据”这个组合真的起作用了。 这些实验共同证明:详细语言、episode metadata、以及生成子目标图像,不只是锦上添花,而是在决定模型能不能把多来源、多质量、多机器人形态的数据真正“吃进去”。没有这些上下文,数据多样性会变成负担;有了这些上下文,多样性才转化成泛化、迁移和组合能力。这个就是实验部分真正要证明的主线。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)