configuration_pi0_torch.py — 定义 PI0 模型的 HuggingFace 配置类¶
文件路径:
verl/experimental/vla/models/pi0_torch/configuration_pi0_torch.py模块路径:verl.experimental.vla.models.pi0_torch.configuration_pi0_torch
文件概述¶
定义 PI0 模型的 HuggingFace 配置类,包含状态/动作归一化统计量和 PI0.5 开关。
关键代码¶
class PI0TorchConfig(PretrainedConfig):
"""PI0/PI0.5 模型配置"""
model_type = "pi0_torch"
def __init__(
self,
state_norm_stats=None, # 状态归一化统计量 {mean, std}
action_norm_stats=None, # 动作归一化统计量 {mean, std, q01, q99}
pi05_enabled=False, # 是否启用 PI0.5 模式
sac_enable=False, # 是否启用 SAC 支持
double_q=True, # 是否使用 Double Q(SAC)
**kwargs
):
super().__init__(**kwargs)
self.state_norm_stats = state_norm_stats
self.action_norm_stats = action_norm_stats
self.pi05_enabled = pi05_enabled
self.sac_enable = sac_enable
self.double_q = double_q
PI0 vs PI0.5 的区别¶
| 特性 | PI0 | PI0.5 |
|---|---|---|
| 时间条件化 | 拼接到动作嵌入 | 通过 AdaRMS 调制 |
| 状态输入 | 通过投影层 | 忽略(直接用图像) |
| 文本提示长度 | 最大 48 token | 最大 200 token |
pi05_enabled |
False | True |
与其他模块的关系¶
- 被
PI0ForActionPrediction(modeling_pi0_torch.py)使用 - 被
register_vla_models.py注册到AutoConfig
小结¶
PI0 的配置相比 OpenVLA 更简洁,核心差异在于使用归一化统计量(连续动作空间)而非离散 bin。pi05_enabled 是区分 PI0 和 PI0.5 两个版本的关键开关。