模型训练
完成 数据准备 后,选择一种模型训练即可。各模型使用独立环境和配置,不要混用双臂与全身布局。环境安装、权重下载及其他模型的完整命令见 LETools 全身 VLA 教程。
1. 选择模型
| 模型 | 数据与配置要点 |
|---|---|
| LingBot-VLA v2 | 全身机器人配置为 configs/robot_configs/roban_wholebody.yaml,使用绝对动作,chunk 为 50 步 |
| OpenPI | 使用 pi05_roban_wholebody 训练配置,action_dim 不小于 32;推理的 policy_config_name 与训练名称一致 |
| Isaac GR00T N1.7 | 先将 LeRobot v3 转成 v2;将全身 modality 模板复制到数据集 meta/modality.json,使用 roban_wholebody.py,chunk 为 40 步 |
本页以 LingBot-VLA v2 为例,后续 推理部署 使用同一模型说明。
2. 修改训练配置
进入 LeTools-Learning 的 kuavo_model/external_models/lingbot-vla-v2 目录,编辑 configs/vla/roban_wholebody/roban_wholebody.yaml:
- 设置基础模型
model.model_path、分词器model.tokenizer_path,以及 depth / DINO 权重路径。 - 将
data.train_path指向转换后的数据集,train.output_dir指向本次训练输出目录。 - 使用全身机器人配置,保持
chunk_size: 50;当前各段subtract_state: false,按绝对动作训练。
3. 计算统计并训练
先计算归一化统计。下例按单卡统计设置,数据路径需替换为实际位置:
CUDA_VISIBLE_DEVICES=0 bash train.sh scripts/compute_norm_stats.py \
./configs/vla/roban_wholebody/roban_wholebody.yaml \
--data.data_name roban_wholebody \
--data.train_path /path/to/roban_wholebody_lerobot \
--data.robot_config_root ./configs/robot_configs \
--data.norm_path assets/norm_stats/roban_wholebody.json \
--data.data_ratio_for_norm_compute 1 \
--train.global_batch_size 1 \
--data.num_workers 0
再启动训练:
bash train.sh tasks/vla/train_lingbotvla.py \
./configs/vla/roban_wholebody/roban_wholebody.yaml \
--data.train_path /path/to/roban_wholebody_lerobot \
--data.norm_stats_file assets/norm_stats/roban_wholebody.json
4. 保留推理产物
| 文件 | 用途 |
|---|---|
所选训练步的 hf_ckpt/ | 推理模型权重 |
输出根目录的 lingbotvla_cli.yaml | 训练 YAML 与命令行参数的完整快照 |
roban_wholebody.json | 本次数据集的归一化统计 |
| 全身机器人配置及基础模型路径 | 与训练一致的动作布局和基础模型 |
推理必须使用本次训练的快照和匹配的统计文件,不用默认 YAML 替代训练快照。
下一步:通信准备。