configuration_prismatic.py — 定义了 Prismatic 系列模型(包括 OpenVLA)的 HuggingFace 配置类¶
文件路径:
verl/experimental/vla/models/openvla_oft/configuration_prismatic.py模块路径:verl.experimental.vla.models.openvla_oft.configuration_prismatic
文件概述¶
定义了 Prismatic 系列模型(包括 OpenVLA)的 HuggingFace 配置类。配置类包含模型架构参数、视觉骨干配置、文本模型配置等。
核心类¶
PrismaticConfig¶
class PrismaticConfig(PretrainedConfig):
"""Prismatic VLM 的基础配置"""
model_type = "prismatic"
def __init__(
self,
# 视觉骨干配置
use_fused_vision_backbone=True, # 是否使用双骨干融合
image_sizes=[224, 224], # 输入图像尺寸
timm_model_ids=["vit_so400m_patch14_siglip_224"], # TIMM 模型ID
timm_override_act_layers=[None], # 激活函数覆盖
# 文本模型配置
text_config=None, # LLM 配置(如 Llama)
# 其他
pad_token_id=32000,
pad_to_multiple_of=64,
**kwargs
):
super().__init__(**kwargs)
...
OpenVLAConfig(继承 PrismaticConfig)¶
class OpenVLAConfig(PrismaticConfig):
"""OpenVLA 专用配置,增加动作预测参数"""
model_type = "openvla"
def __init__(
self,
n_action_bins=256, # 动作离散化的 bin 数量
norm_stats=None, # 动作归一化统计量
**kwargs
):
super().__init__(**kwargs)
self.n_action_bins = n_action_bins
self.norm_stats = norm_stats
视觉骨干映射¶
配置中包含预定义的骨干组合映射:
# model_id -> (视觉骨干列表, 融合标志, 图像尺寸列表, 激活层覆盖)
VISION_BACKBONE_MAPPING = {
"siglip-224px": (
["vit_so400m_patch14_siglip_224"],
False,
[224],
[None]
),
"dinosiglip-224px": (
["vit_so400m_patch14_siglip_224", "vit_large_patch14_dinov2"],
True, # 融合双骨干
[224, 224],
[None, "gelu"]
),
}
核心类列表¶
| 名称 | 类型 | 说明 |
|---|---|---|
PrismaticConfig |
配置类 | Prismatic VLM 基础配置 |
OpenVLAConfig |
配置类 | OpenVLA 专用配置(含动作参数) |
与其他模块的关系¶
- 被
modeling_prismatic.py的模型类使用 - 被
register_vla_models.py注册到 HuggingFace
小结¶
配置类是 HuggingFace 模型的"身份证"。model_type 字段决定了 AutoModel 如何找到对应的模型类。OpenVLA 通过继承 Prismatic 配置并添加 n_action_bins 等参数,将视觉语言模型扩展为动作预测模型。