pi0.5面试题

Fig. 3: Model overview. π0.5 is trained in two stages. First, a pre-training stage combines all of the different data sources to produce an initial VLA with

discrete tokens. This stage uses data from diverse robotic platforms, high-level semantic action prediction, and data from the web. Robotic data uses the FAST

action tokenizer to represent actions as discrete tokens 64. Second, a post-training stage specializes the model for low-level and high-level inferences for

mobile manipulation, leveraging the most task-relevant data, including verbal instructions from human supervisors. This stage uses flow matching to represent

the action distribution, enabling efficient real-time inference and the ability to represent fine-grained continuous action sequences. At inference time, the model

first infers a high-level subtask, and then predicts the actions based on this subtask.

问题一

π₀.₅ 论文标题是 a Vision-Language-Action Model with Open-World Generalization。请你回答:

  1. π₀.₅ 相比 π₀,核心目标从"会做机器人动作"升级到了什么?

  2. 论文里为什么强调 heterogeneous co-training,也就是把机器人低层动作数据、高层 subtask prediction、web VQA/object detection、语言指令等混在一起训练?

  3. 从代码实现角度看,openpi 仓库里的 π₀.₅ 是否完整实现了论文里所有 action heads?还是只支持其中一部分?
    答:π₀用 Z-score 归一化,π₀.₅ 用的 quantile normalization
    它换归一化的方式是为了让 state 离散化成 256 bins 时整体范围在-1 ,1之间。
    heterogeneous co-training是为了让 VLA 同时学习两类能力:

    高层:进行规划,预测 object grounding
    低层:通过 action expert + flow matching 输出连续动作

它可以在数据中学习"高层语义任务"和"底层控制动作"的关联

Openpi 仓库里没有完整复现π₀.₅ 的所有训练头,目前主要支持 flow matching head,并不完全支持论文中的所有 hybrid training head。

问题二:

Knowledge Insulation

请你继续回答:

  1. π₀ 里 state、noisy action、timestep 分别是怎么进入模型的?
  2. π₀.₅ 对这三者分别做了什么改动?
  3. 为什么这些改动能减少 "state-action shortcut",提升泛化?
    答:在π₀ 中,state 是连续向量,会通过投影层变成一个 suffix token;noisy action 通过投影层变成 action tokens;timestep 先做 sin/cos embedding,然后和 action tokens 通过 concat 拼接到一块,再经过 MLP 融合后送入 action expert。因此 state、action、time 表现出强耦合关系。
    π₀ 做了两处 konwledge insulation :第一,把 state 离散化成 token,放进 prompt/prefix,让他成为视觉条件的一部分,而不是放在 action expert 旁边(可能学成捷径);第二,timestep 不再和 action token concat,而是通过 MLP 生成 adaRMS 条件,去调制 action expert。
    这样可以降低 state-action shortcut:模型不能只学"当前关节状态对应常见动作"这种局部数值映射,而需要更多依赖图像、语言和上下文语义来决定动作,所以在新物体、新环境、新任务组合上泛化更好。

问题三:

  1. 论文里的 π₀.₅ 为什么同时提到 FAST 离散 action tokens 和 flow matching 连续动作?

  2. 预训练阶段和 post-training 阶段分别用了什么 action representation?

  3. Openpi 这个仓库里的 π₀.₅ 推理时到底输出的是离散 action token,还是连续动作?为什么?
    答: π₀.₅ 之所以同时提 action tokens 和 flow matching,是因为它想结合两者优点:

    FAST action tokens:
    训练效率高,能把动作放进 VLM离散化token 语言建模框架里,适合大规模多样化数据混合 预训练
    Flow matching action expert:
    推理时生成连续动作 chunk,更适合实时控制,不需要自回归逐 token 采样动作

预训练阶段:主要使用离散 action tokens

这样机器人动作数据、高层语义数据等多样化数据都能统一成 token prediction 问题,更容易做大规模混合训练。

Post-training 阶段:

复制代码
加入 / 训练 expert
使用 flow matching 预测连续 action chunk

这样最终部署时可以走连续动作生成,避免 FAST 自回归动作 token 的推理开销

Openpi README 说得很清楚:当前仓库里 π₀.₅ 训练和推理 只支持 flow matching head

问题四:

论文和代码都强调:VLM embedding 和 action expert embedding 的交互不是完全自由的,而是有方向性的。

请你回答:

  1. 在 π₀/π₀.₅ 里,prefix token 和 suffix/action token 的 attention 关系大致是什么?
  2. 为什么要让 action token attend to 图像/语言 prefix,但不让图像/语言 prefix attend to action token?
  3. 这和防止 VLM 表示被低层动作污染有什么关系?
    答:prefix 中的图像、语言以及π₀.₅ 的离散state token 可以双向 attention,形成完整的语义条件表示。Action suffix token 在生成动作时可以 attend 到 prefix,从图像、指令和 state 中取条件信息;但 prefix token 不 attend 到 suffix/action token。这样信息流是 VLM 语义条件到 action expert 的单向流动。设计原因是动作应该由视觉语言条件决定,而 VLM 的图像语言表示不应该依赖 noisy action 或低层控制 token,否则会把机器人动力学和连续动作去噪的低层信息混进语义表示,破坏 VLM 的开放世界知识和泛化能力。

问题五

你现在比较一下这三个模型:

复制代码
π₀
π₀-FAST
π₀.₅

请回答:

  1. 三者的动作生成方式分别是什么?
  2. 三者在泛化能力、推理延迟、动作精度上各有什么 trade-off?
  3. 如果你要在 DROID 上做语言跟随任务,三者你会怎么选?为什么?
    答:π₀ 和 π₀.₅ 最终都通过 flow matching action expert 在连续动作空间生成 action chunk;π₀-FAST 则把动作压缩成离散 action tokens,由 VLM 自回归生成后再 decode 回连续动作。π₀ 的优势是连续动作精度和低层控制稳定,但开放世界语义泛化较弱;π₀-FAST 的优势是动作可以纳入 token prediction 训练框架,训练/表示统一,但有量化误差和自回归 decoding 延迟;π₀.₅ 结合二者思路,预训练阶段利用离散动作和多源语义数据,post-training 用 flow matching 输出连续动作,同时用 knowledge insulation 提升泛化。DROID 语言跟随任务我优先选 π₀.₅,因为它在语言理解、物体泛化和新场景泛化上更强,同时仍保留连续动作控制能力。

问题六

π₀.₅ 为什么要把 normalization 从 Z-score 换成 Quantile normalization?请你回答:

  1. Z-score 和 Quantile normalization 分别怎么算?
  2. π₀.₅ 的 state 离散化为什么依赖 Quantile normalization?
  3. 如果直接用 Z-score 做 state discretization,会出现什么问题?
    答:π₀.₅ 把 normalization 从 Z-score 换成 Quantile normalization,核心是为了支持 state 离散化。Z-score 是 (x - mean) / std,让数据均值约为 0、标准差约为 1,但没有固定边界,极端值可能远超 [-1,1]。Quantile normalization 用 q01q99 做线性映射,使 q01 -> -1q99 -> 1,约 98% 的 state 数据落在 [-1,1] 附近。这样 state 才能稳定地分到 256 个 bins 中,并作为离散 token 放进 prefix。
    如果直接用 Z-score 离散化,很多 state 可能超出 [-1,1],被 clip 到边界 bin,导致信息损失;不同维度的 bin 利用率也会不均衡。Quantile normalization 让离散 token 更稳定,配合 Knowledge Insulation,把 state 从连续 action shortcut 中移到 VLM 的语义条件侧。

问题七

现在我们回到底层动作生成。请你回答:

  1. π₀ / π₀.₅ 的 flow matching 训练时,x_t 是怎么由真实动作 a 和噪声 ε 构造出来的?

  2. 模型预测的目标 v_t / vector field 是什么?

  3. 推理时为什么可以从纯噪声开始,经过多步更新得到动作?
    答:训练是从标准正太采样噪声 ε,从 Beta (1.5 ,1) 采样时间 t,构建 x_t = tε + (1-t)a。d 当 t=0 时是干净动作 a,当 t=1 时是纯噪声 ε。模型输入当前 noisy ation、x_t、时间 t 和观测条件,预测 v_t,监督目标是 u_t = noise - actions。
    为什么从纯噪声:因为训练定义了一个从数据分布到噪声分布的连续路径:

    真实动作 a t=0
    纯噪声 ε t=1

模型学会了路径上每个点的速度长,推理时我们没有真实动作,要生成动作先从容易采样的分布开始。也就是纯噪声,然后预测向量场反向积分,多步更新到 t=0,得到连续动作 chunk。

问题七

请你回答:

  1. 在 π₀ / π₀.₅ 中,PaliGemma/VLM 主要负责什么?
  2. Action Expert 主要负责什么?
    答:PaliGemma/VLM 主要负责处理图像和语言 prompt,形成 prefix 语义表示;π₀.₅ 中 state 也离散化后进入这个 prefix。推理时 prefix 可以先算 KV cache,后续 action suffix attend 到这些语义条件。
    Action Expert 负责生成连续动作:接收 noisy action token、timestep 条件以及 prefix 语义条件,预测 flow matching 的速度场,采样的高斯噪声反向积分生成连续 action chunk。

问题八

请你回答:

假设你要把一个 7 维动作的新机器人接入 π₀.₅ 微调,有 1 个外部相机、1 个腕部相机、6 个关节 + 1 个夹爪。请你按数据流回答:

  1. 原始数据到 LeRobot 格式,你要保存哪些字段?
  2. RobotInputs 里要做哪些映射和补齐?
    答:接入新机器人时,先把原始数据转成 LeRobot dataset,保存外部相机、腕部相机、6 维关节、1 维夹爪、7 维动作、语言 prompt、episode/timestamp 等字段。
    然后学 RobotInputs,把 LeRobot dataset 字段映射到 openpi 标准格式;图像映射到 base_0_rgb 和 left_wrist_0_rgb, 缺失的第三路图像用零图和mask补齐;joint 和 gripper 拼接成 7 维 state;训练时传入 7 维 actions;prompt 传给 tokenizer。

问题九

假设你现在要用 pi05_base 在这个 7 维新机器人上做低显存微调。请回答:

  1. LoRA 会插到哪些模块里?PaliGemma 和 Action Expert 的 rank 分别是多少?
  2. Freeze_filter 大概冻结哪些参数、训练哪些参数?
  3. 为什么 LoRA 适合新机器人适配?它有什么局限?
    答: π₀.₅ 做 LoRA 微调时,会在 PaliGemma/Gemma 2 B 和 action expert Gemma 300 M 的 attention 与 FFN 层插入低秩 adapter。PaliGemma 侧 rank=16,action expert 侧 rank=32。冻结策略上,主要冻结预训练的 LLM/VLM 和 action expert base 权重,只训练 LoRA adapter;其他小模块是否训练取决于具体 freeze_filter。LoRA 的好处是参数量小、显存低、训练快,并且能保留 base VLA 的视觉语言和动作先验,降低灾难性遗忘风险。局限是适配容量有限,如果新机器人和预训练分布差异很大,或者动作定义、相机布局、控制频率变化很大,LoRA 可能不如 full fine-tuning,甚至需要重新设计数据映射和动作空间。

问题十

π₀.₅ 一次输出一个 action chunk,比如 action_horizon=1550。请回答:

  1. 实际部署时,会不会把整个 chunk 全部执行完再重新推理?
  2. 为什么要一次预测多个动作,而不是只预测下一步?
  3. 如果模型推理延迟 120 ms,机器人控制周期 20 ms,你会怎么设计异步推理和执行调度?
    答:实际部署不会等整个 action chunk 执行完才重新推理,而是采用异步 rolling horizon。控制线程每 20 ms 从 action buffer 取一个动作执行;推理线程用最新可用观测生成下一段 action chunk。一次预测多个动作可以建模短期动作轨迹的时间相关性,让动作更连贯,同时提供推理延迟缓冲。
    如果推理延迟 120 ms、控制周期 20 ms,那么至少需要 6 步动作 buffer 覆盖延迟。我会在开始执行当前 chunk 时立即异步启动下一次推理,控制端执行当前 chunk 的前 6 步;新 chunk 返回后,在下一控制周期切换到新 chunk,必要时根据 observation timestamp 跳过前几步或做平滑 blending,避免时滞和动作突变。

问题十一

论文里 π₀.₅ 的重点不是只在 benchmark 上提分,而是展示 open-world generalization。请你回答:

  1. π₀.₅ 主要验证了哪些泛化能力?比如环境、物体、语言/任务层面。
  2. 论文消融里去掉 web data、高层 prediction、heterogeneous co-training,大概会发生什么?
  3. 为什么作者说 π₀.₅ 的成功不能只归因于模型 scale,而更依赖 training recipe?
    答案:π₀.₅的实验主要验证 open-wold generalization(开放世界泛化能力):包括新家庭/新房间的环境泛化,新物体和新摆放的物体泛化,以及高层语言指令和长程任务分解能力。
    消融实验表明,去掉 web data 会降低 VLA 的物体/场景语义理解能力。去掉 hign-level substask prediction 会削弱长程任务规划和语言跟随,只用低层机器人 action data 则难以在开放环境中泛化。
    单纯扩大模型或机器人数据,不一定提供它缺的知识(场景语义和任务分解能力)。所以π₀.₅ 引入 web data、object detection、VQA、substask prediction 等数据源。

问题十二

关于π₀.₅的局限性。请你回答:

  1. π₀.₅ 在真实家庭长程任务中可能失败在哪些地方?
  2. 这些失败分别更像是感知问题、语义规划问题,还是低层控制问题?
  3. 如果你在公司里要继续提升 π₀.₅,你会从数据、模型结构、部署系统三个方向分别怎么改?
    答:π₀.₅可能失败在以下层面
  • 感知层面:识别错物体、定位错目标、处理不好反光场景;
  • 语义规划层面:它可能理解错高层语言指令、生成错误子任务顺序
  • 低层控制层面:它可能抓取失败、柔性物体操作失败
    如果继续提升。我会从三方面做:数据上收集更多失败案例、新家庭、新物体、长程恢复演示;
    模型上加强 object grounding、改进更稳定的 substask head、加入memory(让模型记住长程任务已经做了什么)、失败检测和失败恢复。

问题十三

假设老板让你基于 π₀.₅ 做一个"家庭桌面整理机器人",能听懂"把桌上的餐具收进抽屉/水槽附近"这类指令。

请你给一个完整技术方案,覆盖:

  1. 你会用哪些数据训练/微调?
  2. 模型选 π₀、π₀-FAST 还是 π₀.₅?为什么?
  3. 部署时如何做感知、动作 chunk 执行、失败检测和恢复?
  4. 你会设置哪些评测指标?
    答:我会基于 π₀.₅ 做家庭桌面整理机器人,因为任务需要理解开放词汇物体、家庭场景和高层语言指令,同时还需要连续低层控制。数据上,我会收集餐具抓取、放入抽屉、放到水槽附近、开关抽屉、移动障碍物等低层演示,并标注高层指令到子任务序列;同时增加不同家庭、不同餐具、不同光照和桌面杂乱度的数据,以及失败恢复演示。模型上用 pi05_base 做 LoRA 微调,保持 32 维 action space,通过 padding/slicing 适配机器人。

部署时使用外部相机和腕部相机输入 π₀.₅,异步生成 action chunk,控制线程按固定周期执行,推理线程后台滚动更新 chunk。系统层加入 detector/grounding 或视觉检查器来判断餐具是否抓起、抽屉是否打开、物体是否放到目标区域。失败时停止当前 chunk,重新观察,换抓取姿态或重新规划子任务,多次失败后请求人工接管。评测上看整体任务成功率、子任务成功率、语言跟随准确率、新物体/新环境泛化、恢复成功率、完成时间、人工介入率和安全事件数。

相关推荐
Agilex松灵机器人1 天前
UMR × NAVIS:移动机器人行业级通用一体化底盘与3D导航解决方案
人工智能·3d·机器人·ros·slam·vla·松灵机器人
Godspeed Zhao1 天前
具身智能中的无线技术——总览
人工智能·具身智能·无线技术
HyperAI超神经4 天前
活动预告|智源/TileRT/腾讯/华为/智元创新同台,共探 AI 编译的多层级协同优化
人工智能·ai 编译器·腾讯·具身智能·矩阵乘法·算子优化·华为昇腾
HelloWorld__来都来了22 天前
【每日学术速报】2026-06-15
人工智能·具身智能
选与握22 天前
$\pi_{0.7}$: 一个具备涌现能力的可引导的通用机器人基础模型
机器人·vla·pi07
WangN223 天前
【通识】宇树G1_29DOF速度跟踪训练—逐章学习手册
人工智能·python·学习·机器人·具身智能
chen_zn9523 天前
VLA 的 Co-training:通过多源数据提升机器人泛化能力
人工智能·深度学习·具身智能·vla