训练配置
配置文件
LingBot-VLA 的训练配置位于 configs/vla/。以下配置可作为起点:
| 配置 | 用途 |
|---|---|
real_load20000h.yaml | 真机数据后训练,不含深度蒸馏 |
real_load20000h_depth.yaml | 真机数据后训练,包含深度蒸馏 |
robotwin_load20000h.yaml | RoboTwin 后训练,不含深度蒸馏 |
robotwin_load20000h_depth.yaml | RoboTwin 后训练,包含深度蒸馏 |
模型参数
| 参数 | 说明 | 默认值 |
|---|---|---|
model.model_path | 预训练权重路径;留空时随机初始化 | None |
model.tokenizer_path | VLM tokenizer 路径 | model.model_path |
model.config_path | 模型 config.json 路径 | model.model_path |
model.freeze_vision_encoder | 是否冻结视觉编码器 | false |
model.tokenizer_max_length | 文本 token 最大长度 | 72 |
model.max_action_dim | 动作向量最大维度 | 75 |
model.max_state_dim | 状态向量最大维度 | 75 |
数据参数
| 参数 | 说明 | 默认值 |
|---|---|---|
data.train_path | LeRobot v3.0 训练数据目录 | 必填 |
data.data_name | 数据集名称;必须与机器人配置匹配 | 必填 |
data.joints | 命名关节及其最大维度 | 必填 |
data.cameras | 相机名称列表 | 必填 |
data.norm_type | meanstd、bounds_99、minmax 或 identity | bounds_99 |
data.norm_stats_file | 归一化统计文件路径 | 必填 |
data.num_workers | DataLoader 进程数 | 4 |
数据格式、机器人特征映射和归一化统计的准备方式见准备数据。
训练参数
| 参数 | 说明 | 默认值 |
|---|---|---|
train.output_dir | 输出与 Checkpoint 保存目录 | 必填 |
train.lr | 最大学习率;真机配置通常为 5e-5,仿真配置通常为 1e-4 | 5e-5 |
train.loss_type | fm 或 L1_fm | fm |
train.micro_batch_size | 每张 GPU 的样本数 | 1 |
train.gradient_accumulation_steps | 梯度累积步数 | 1 |
train.global_batch_size | 根据每卡批量、GPU 数量和梯度累积自动计算 | 自动 |
train.max_steps | 最大更新步数 | None |
train.num_train_epochs | 训练轮数;与 max_steps 至少设置一项 | None |
train.data_parallel_mode | ddp、fsdp1 或 fsdp2 | ddp |
train.use_compile | 是否启用 torch.compile | false |
train.ckpt_manager | dcp 或 bytecheckpoint | dcp |
train.enable_fp32 | 是否以 float32 运行动作专家 | false |
train.enable_resume | 是否自动恢复训练 | false |
train.save_steps | Checkpoint 保存间隔 | 0 |
全局批量大小按以下方式计算:
global_batch_size =
micro_batch_size × GPU 数量 × gradient_accumulation_steps
显存不足时,可降低 micro_batch_size 并提高 gradient_accumulation_steps,保持目标全局批量大小不变。
深度蒸馏配置
含深度版本通过 align_params 配置 MoGe-2 和 LingBot-Depth:
align_params:
mode: "query"
use_contrastive: true
contrastive_loss_weight: 0.3
depth_loss_weight: 0.004
depth:
model_type: MoRGBD
moge_path: "/path/to/moGe-2-vitb-normal"
morgbd_path: "/path/to/LingBot-Depth"
相关权重的下载方式见安装与模型下载。
启动训练
配置数据与输出目录后运行:
bash train.sh tasks/vla/train_lingbotvla.py \
./configs/vla/real_load20000h.yaml \
--data.train_path /path/to/lerobot-dataset \
--data.data_name your_robot \
--data.norm_stats_file /path/to/norm_stats.json \
--train.output_dir output/
完整训练流程和 RoboTwin 示例见后训练。