模型配置#

对于模型配置,我们采用 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 完全一致。