本论文提出了一种能够利用多样化数据源的方法
1.引言
| 线索 | 笔记栏 |
|---|---|
| 研究动机 | 想让 VLA 既可以像 LLM 组合式去调用原子技能执行长程任务 LLM:如果让它以鲁迅的语气(元素 A),写一篇关于量子力学(元素 B)的科普文章,并且最后输出 JSON 格式(元素 C)。虽然它的训练数据集中没有同时满足这三个条件的文章,但是它的训练数据中单独包含过这三个元素,LLM 可以将这三个元素组合起来输出要求的文章。 之前的 VLA:1. 学过把苹果放到红碗里 2. 学过把香蕉放到绿碗里 。但是 prompt 让它把苹果放到绿碗里,它不会把"抓苹果"和“放绿碗”这两个技能组合。只能重新采集"把苹果放到绿碗里"的数据集重新训练 |
| 核心解决方法 | 利用大规模且多样化的数据集:1. 多种机器人及其不同策略的数据 2.自主执行过程中收集的次优数据(成功或失败)3.人类执行任务的视频 4. 互联网多模态数据 但是简单多模态训练会导致模型学到对不同模式形式进行平均(什么都没有学好) |
| 怎么解决 | 为数据添加详细的上下文标注(语言标签、策略元数据、以及子任务图像等多模态数据):1. 做什么 2. 如何做 每个回合 VLA 学到动作技能和细微的概念 |
| 机器人领域上下文文本描述不够的 | 除了详细的文本提示,pi0.7 还在提示中添加多种额外的元数据: 1. 策略元数据(给每个数据集片段打好坏分数、速度等标签) 2. 机器人使用的控制模态(关节控制信息、 末端执行器控制信息)以及子目标图像(世界模型想象的未来几秒任务成功时的画面) |
| pi0.7的评估效果 | -开箱即用:在折叠衣服、取出垃圾袋等特定场景下,无需任务数据集后训练,也表现良好 -指令泛化:在完全未见过的场景下遵循多样的开放式指令 -跨具身泛化:将当前机器人的特定复杂任务操作能力迁移到完全未经训练的机器人上 -组合任务泛化:可以像 LLM 那样组合原子技能来执行新任务 |
总结:
pi0.7 是为了解决之前 VLA 不能进行组合技能执行任务的情况,通过多元化数据集训练时,对数据集进行标注,添加详细的上下文文本信息、策略元数据、机器人使用的控制模态,以及世界模型想象的子目标 image。从而防止 VLA 训练学到多元化数据集的平均策略。最终pi0.7 可以实现开箱即用、跨具身机器人泛化、听懂未见过的指令、组合任务泛化。
提问:
| 问题 | 分析 / 理解 |
|---|---|
| 为什么需要策略元数据? | VLA 不能只学完美成功的数据数据,丢掉的好像"次优数据"的失败经验也很重要,它包含了物理世界的规律。 |
2. 相关工作
| 线索 | 笔记栏 |
|---|---|
| 使用合适的提示设计 | 合适的提示设计使得模型能够利用多样化机器人、互联网、人类操作数据中,学到任务与本体之间强大的泛化能力 |
提问:
| 问题 | 分析 / 理解 |
|---|---|
| 为什么合适的提示设计使得模型能够利用多样化的机器人、人类和互联网数据,在任务与本体之间实现强大的泛化能力。 之前只收集大量多样化数据集的工作,为什么泛化能力比较弱 | LLM 是多样化数据训练,大力出奇迹 机器人领域,盲目堆多样化数据,往往会导致"灾难性"的结果。 1.行为策略相冲突:数据集 A 是慢慢抓起瓶子,数据集 B 是快速抓起瓶子... 2. VLA 学到"平均化"规划动作 pi0.7 通过丰富的提示设计,解决数据冲突: 1.利用"元数据"消除不同数据集之间的歧义 - 现在,模型看到的不再是模糊的“抓起杯子”,而是: - 数据 A:“抓起杯子” + <质量:5> + <失误:否> + <速度:慢> - 数据 C:“抓起杯子” + <质量:1> + <失误:是> + <速度:快> 2. 利用"子目标图像"实现跨本体泛化 - 不管当前机器人长什么样子,世界模型根据强大的语义和物理常识,想象接下来执行会变成什么样子,当前机械臂再去执行 |
3. pi0.7 概述
| 线索 | 笔记栏 |
|---|---|
| 模型架构 | 基于 pi0.6 以及 MEM 内存系统,并在此基础上扩展了多模态上下文条件 |
| pi0.6架构 | Gemma3 4B 视觉语言模型 (SigLIP 视觉编码器 400M)+ 流匹配动作专家(860 M) = 模型总参数量约 5B |
| MEM 视频历史编码器 | 全称是Multi-scale Embodied Memory(多尺度具身记忆)。 机器人操作需要"记住"过去几秒钟发生了什么。但是如果把历史几帧图像都输入 LLM 计算量爆炸。 MEM 使用空间压缩、时间压缩。无论你给它塞多少帧的历史视频,它都能把它们“压缩”成和单张图片一样少的信息量! |
总结:
pi0.7 的模型架构就是pi0.6架构,然后对视觉编码器加了一个 MEM 编码器。
4.多样化提示
| 线索 | 笔记栏 |
|---|---|
| 总体思想:为什么要扩展 Prompt | 为了让模型能处理包含失败和次优数据在内的多样化数据集。扩展后的提示词不仅告诉模型"做什么",还明确了“怎么做”,“用什么质量做”。 做什么:总任务和子任务 怎么做:预测子目标图像 用什么质量做:策略元数据(包括速度、质量、是否失败) |
| Prompt 组件1:子任务指令 | 定义:在总任务指令(如“清理厨房”)之外,补充更细粒度、中间级别的语义步骤。 例如:总体是"清理厨房",子任务是“打开冰箱门”。它是实现"语言指导"的基础。人类可以通过给子任务指令,一步步引导机器人完成以前没做过的新任务。 |
| Prompt组件2:子目标图像 | 子目标图像,通常比语言指令更能清晰的消除歧义,从而更明确地传达策略的目标 定义:展示任务推进后,多视角未来预期退休昂 来源:一个轻量级世界模型生成 优势:提供了比文字更丰富的空间和细节约束。 |
| Prompt 组件 3:策略元数据 | 痛点:训练数据里有大量动作缓慢、失败甚至完全失败的轨迹数据,如果用来帮助 VLA 提升能力 三个标签维度:1.整体速度:完成任务花费的步数 2.整体质量: 1-5 分(5 分最完美)。 3.是否失误:在动作片段中是否犯错。 作用:训练时贴标签放置模型"学坏“; 推理时通过 Prompt 召唤“最高质量的操作”如强行要求 Quality: 5, Mistake: false)。 |
| Prompt 组件 4:控制模式 | 定义:用 文字 标识底层运动的控制方式。 分类:joint (关节级,适合灵巧精细动作) ee(末端执行器,只管机械手的三维空间位置) |
| 随机暂退提示法 | 训练期间,随机去掉提示数据的某个部分,这使得 pi0.7 在测试时具有灵活性,可以使用提示组件的任意子集(带或不带子目标图像的运行) |
完整 Prompt 长什么样子?
Pasted image 20260721202639.png
总结
这部分为什么要扩展 Prompt,详细定义了多模态提示词结构 , 这是模型能实现"组合泛化"的基础组建。提示词组成:视觉图像+子目标图像+总任务指令+子任务指令+策略元数据信息(整体速度、整体质量、是否失误)+文字版控制方式标识
提问:
| 问题 | 分析 / 理解 |
|---|---|
| 只要子目标图像,不要任务指令行不行? | 作者在训练时会有 30%的概率故意把文字指令删掉,因为数视觉子目标图像通常能够以更丰富的细节,直接替代文字描述。 但是子目标图像需要文字指令提示生成 |
| 关节级和末端执行器,指的是机械臂手 和 对应的夹爪吗? | 不是,这是两种控制方式。 -关节级控制:模型把胳膊的 6 个关节角度+夹爪的开合度,全部直接算出来 - 末端执行器控制:AI 只算夹爪在三维空间的位置 + 夹爪的开合度。置于胳膊的关节怎么转,交给底层的数学公式去计算。 |
5. pi0.7 模型和训练配方
| 线索 | 笔记栏 |
|---|---|
| 训练数据集 | 多任务:涵盖多种不同机器人平台 多样化环境:实验室内部、家庭环境 大量策略自主收集数据、策略执行过程中的手动干预数据、开源机器人数据、第一人称人类视频数据 |
| 模型架构 | 与 pi0.5 和 pi0.6 模型相比,pi0.7 主要架构来改进是 MEM 的历史视觉编码器以及上下文中的视觉子目标图像 模型输入:最多四张相机图像(前视图、两个腕部视图,以及可选的后视图),每张图像最多包含六个历史帧,以及最多三张子目标图像(不包括后视图) 观测图像与子目标图像使用双向注意力 后续文本使用因果注意力 |
6. 运行时提示 pi 0.7
| 线索 | 笔记栏 |
|---|---|
| 固定元数据信息 | - 整体质量:5 分(最高级) - 失误:永远为 False - 整体速度:设置为该任务在训练数据里前 15%快的速度 |
| 图像指令什么时候刷新? | 生成子目标图像很废时间,不是每秒都生成一张新图。 作者定了一个规则: 1.意图改变时:比如文字指令从“打开微波炉”变成了“端出盘子”,这说明动作进入下一阶段了,立刻刷新图像。 2. 超时 4 秒: 如果一直在做一个动作(比如慢慢擦桌子),系统设定每隔 4 秒强制刷新一次未来画面。 |
| 什么是"异步推理" | 这是一个纯工程技巧,为了防止机器人“卡顿”。 - 生成一张子目标图像,就算是超级显卡,大概也要花 1.25 秒。 - 但是机器人的胳膊是每秒钟动 50 次的(50 Hz)。如果胳膊每动一下都要等图像生成,机器人就会像卡带一样,动一下停一秒。 -解决方案:系统开了两个“线程(大脑分区)”。 -慢大脑(后台):慢慢悠悠地想词儿、画图片。 -快大脑(前台控制臂):只管用 50 Hz 的极快速度输出控制动作。它不等慢大脑,慢大脑画出最新的一张图,快大脑就拿来用;如果有 1 秒钟没新图,快大脑就看着上一张旧图继续干活。互不干扰,保证动作丝滑。 |
| 使用“CFG(无分类引导)”放大招(强迫模型听话) | -为什么用 CFG?有时候,即便你在提示词里写了 <Quality: 5>,模型还是会犯懒,偷偷用平均水平去干活。 -CFG 的作用:相当于一个“提示词音量放大器”。论文里设置了权重 β∈{1.3,1.7,2.2}β∈{1.3,1.7,2.2}。意思是在底层计算概率时,系统会对模型大吼:“给我加倍注意【质量 5 分】这个标签!1.7 倍注意!不许忽略!” -结果:** 使用 CFG 强推元数据后,模型会极其努力地逼迫自己做出那些高难度的灵巧动作。 |