模型配置#
对于模型配置,我们采用 dict 的形式进行定义。模型配置的核心内容包括:
type:模型类型名称,用于指定所使用的 VLA 模型架构
pretrained_name_or_path:预训练权重的路径或 HuggingFace 模型名称
vlm_backbone:视觉语言模型 backbone 网络配置,定义用于视觉-语言理解的基础模型
vla_head:VLA 动作预测头配置(如有),定义动作生成模块的结构与超参数
freeze_vlm_backbone / freeze_projector:是否冻结特定模块权重,用于控制训练时哪些部分参与梯度更新
name_mapping:预训练权重到当前模型的键值映射,用于加载不同命名规范的预训练模型
以下是一个完整的模型配置示例:
model = dict( # 模型配置字典
type='LlavaVLA', # 模型类型,使用 LlavaVLA 架构
pretrained_name_or_path= # 预训练模型的名称或本地路径
'/path/to/models/GR00T-N1.5-3B', # 预训练权重路径(GR00T-N1.5-3B)
vlm_backbone=dict( # 视觉语言模型 backbone 网络配置
type='EagleBackbone', # backbone 网络类型,使用 Eagle 架构
vlm_path= # VLM 模型路径
'limvla/models/third_party_models/eagle2_hg_model'),
vla_head=dict( # VLA 动作头配置
type='FlowMatchingHead', # 动作头类型,使用 Flow Matching 方法
state_dim=8, # 机器人状态维度(如关节角度+夹爪状态)
hidden_size=1024, # 隐藏层维度大小
input_embedding_dim=1536, # 输入嵌入维度(来自 VLM 的特征维度)
num_layers=1, # Transformer 层数
num_heads=4, # 多头注意力的头数
num_inference_timesteps=4, # 推理时的去噪步数(越多越精确但越慢)
traj_length=10, # 预测的动作轨迹长度(未来帧数)
action_dim=7), # 动作维度(如 6DoF 位姿 + 夹爪)
freeze_vlm_backbone=False, # 是否冻结 VLM backbone 网络权重
name_mapping={ # 权重名称映射(用于加载预训练权重)
'vlm_backbone.vlm': 'backbone.eagle_model',
'vla_head': 'action_head'
},
freeze_projector=False) # 是否冻结投影层权重
推理模型配置(可选):当推理时的模型结构与训练不同,或需要跳过特定权重加载时,可通过 inference_model 单独指定推理模型配置,其格式与 model 完全一致。