最近看了openpi-0.6*相关论文,为了能更好的将学习到的知识做一次记录, 在本篇博客我将会把我对论文的理解记录下来:
① paper:π*0.6: a VLA that Learns from Experience
② code: 暂为发布
一、 模型框架

二、整体思路
1. 先训练value模型
先用离线轨迹 训练一个value网络
, 打分方式:
① 中间步, 打分-1
② 最终成功步0
③ 最终失败, 基于超低的分数值-C_faile
这里的网络如上图所示
Value Function, 它则是由一个小型的VLM的网络搭建的(pre-trained VLM: SigLIP(400M) + Gemma(270M)), 该模型直接输出预测对应的分数, 这里的label标签为,value 网络(critic)的损失,在这篇论文里不是“回归一个标量”,而是把 value 当成一个分布(B 个离散 bin)来做分类,所以用的是 交叉熵(cross-entropy)损失, 即B分类
假设一个episode最多4步: t=0,1,2,3, 第4步成功结束, 根据上述的打分方式,打分轨迹的reward序列:
之后需要对reward进行归一化得到下面公式, 如下所示:
Step1: 先计算每个时刻的Monte Carlo的汇报G_t:
所以:
Step2: 把value离散成bins, 并训练分布式value
为了示范, 用了5个bins(论文实际使用的是201个)
| bin b | 代表值 (v(b)) |
|---|---|
| 0 | -1.00 |
| 1 | -0.75 |
| 2 | -0.50 |
| 3 | -0.25 |
| 4 | 0.00 |
这一条轨迹里, 每个时刻的标签(离散编号):
训练value网络的时候, 每个时刻做一次交叉熵损失函数
Step3: 推理时从“分布”取回一个标量value
假设value网络在t=1输出分布(softmax):
取期望得到标量:
直觉:最可能 bin 是 2(概率 0.60),但因为还有 0.20 的概率在 -0.25,上拉了一点,所以期望是 -0.475。
Step 4:算advantage, 最常见的:
在t=1时:
- 真实Monte Carlo回报:
![]()
- 价值网络预测:
所以:
含义:这一步的实际结果比 value 网络“预期的平均水平”稍微差一点点(所以是负的)。再举一个会变正的情况:
假设在value网络输出更悲观(比如
), 但真实汇报
, 则:
含义: 这一步动作比平均更赚, 明显推进任务, 但是论文作者其实作者这里pre-training和post-training不一样
image.png
Step5: 由advantage得到二值标签
论文做的阈值化:
假设我们取:
这就是"improving step"。Step6:用
训练条件策略
(
训练的时候I随机丢掉, 但是推理的时候I=1或,β>1 的原理,其实就是把“有条件(I=True) 和 无条件(不输入 I) 这两种策略输出”做一次更强的偏置,让模型在推理时更“执着”地选那些更像好动作(I=1)的动作)
有了带标签样本
之后, 训练一个VLA模型, 该模型既能输出:
也可以输出:
实际上就是在输入里增加i一个token/标志位, 比如:
对于每个动作:
上述的含义如果动作在动作
中比平均更常出现
。 相当于把
当成teacher, 用KL/交叉熵训练策略网络
去拟合它(就像soft label的监督学习)
pipeline

一句话总结:
先用大规模演示预训练出 “value + 能看 I 的 policy”(Line1-2)。
再对每个任务循环:用当前 policy 去跑 -> 收到经验/纠错 -> 更新 value -> 用 advantage→I 来更新 policy(Line3-10)








