LoongForge-Embodied 正式发布:面向具身模型的高性能训练子系统
今天,我们在 LoongForge 中正式发布 LoongForge-Embodied——一个专为 VLA(视觉-语言-动作) 与 WAM(世界-动作模型) 打造的 torch-native 训练子系统。它一次覆盖 Pi0.5、GR00T N1.6、X-VLA、FastWAM、LingBot-VA、Cosmos3、DreamZero 等主流具身模型,并在同等硬件下相对各模型官方实现取得 1.6× ~ 2.67× 的训练加速。
📚 GitHub:https://github.com/baidu-baige/LoongForge/tree/master/loongforge/embodied
1. 它是什么:一个 torch-native 的具身训练子系统
LoongForge 是一套统一的训练框架,覆盖 LLM / VLM / Diffusion / Embodied。其中 LLM / VLM / Diffusion 构建在 Megatron-LM 之上,面向大规模、模型并行的预训练与 SFT;而具身模型有着截然不同的形态,我们为它单独构建了一套子系统。
原因在于,具身模型与典型大模型的差别是本质性的:它参数量小得多(通常在 10B 以内),一个典型 VLA 往往就是一个 VLM 叠加一个动作头。这个规模并不需要为超大模型准备的 TP / PP / EP 模型并行——硬套只会徒增复杂度与开销。因此 LoongForge-Embodied 直接构建在原生 PyTorch 的 DDP / FSDP 之上,聚焦于中小规模、数据并行场景下的训练效率与模型接入体验。
两套栈共享同一个代码仓库、发布流程与工具链,但不共享 Megatron 核心引擎,也不共享 args / parser / core,从而各自独立演进:
| 维度 | LoongForge 核心(LLM / VLM / Diffusion) | LoongForge-Embodied |
|---|---|---|
| 计算 / 分布式 | Megatron-LM —— TP / PP / EP / CP / FSDP | torch-native DDP / FSDP |
| 负载特征 | 大规模、模型并行的预训练 / SFT | 中小规模、数据并行的 SFT |
| 模型规模 | 数十亿至数千亿参数 | 通常 10B 以内 |
2. 支持的模型:主流 VLA 与 WAM 一次到位
首个版本即覆盖主流的 VLA 与 WAM 模型,且接入方式统一:
| 类别 | 模型 |
|---|---|
| Pi | pi0.5 |
| GR00T | groot_n1_6、groot_n1_7 |
| XVLA | xvla |
| FastWAM | fastwam |
| LingBot-VA(WAM) | lingbot_va |
| Cosmos3 | cosmos3_nano |
| DreamZero | 系列变体(Wan2.1 14B / Wan2.2 5B,LoRA 与全量微调,覆盖 DROID / LIBERO / AgiBot / YAM 等数据集) |
全量微调是标准能力,数据侧支持 LeRobot / HDF5 等多种格式(各模型支持的格式不尽相同);部分模型(如 DreamZero)另提供 LoRA 变体。
3. 性能:同等硬件下的实测加速
以下为 LoongForge-Embodied 在与各模型官方实现相同硬件配置下的实测加速:
| 模型 | 类型 | 对比基线 | 加速比 | 测量版本 |
|---|---|---|---|---|
| Pi0.5 | VLA | OpenPI | 2.23× | main · 2026-07 |
| GR00T N1.6 | VLA | LeRobot | 2.31× | main · 2026-07 |
| X-VLA | VLA | X-VLA | 1.6× | main · 2026-07 |
| DreamZero(DROID Wan2.2-5B 全量) | WAM | DreamZero | 2.67× | main · 2026-07 |
| LingBot VA | WAM | LingBot-VA | 1.80× | main · 2026-07 |
这份加速横跨 VLA 与 WAM 两大类、多个主流实现,而不是只在单个模型上成立。
上述数字反映测量时各基线与 LoongForge 版本的表现(见"测量版本"列),随实现演进可能变化;具体加速幅度也因模型、数据与配置而异。
4. 架构设计:公共能力共享,模型差异下沉
这套子系统的设计哲学可以概括为一句话:共享公共能力,下沉模型差异——公共层做深,模型层做薄,新增一个模型无需改动训练主循环。
① 模型层(model/)—— 一个模型一个目录。 每个模型通过 @register_model
注册到统一入口:modeling_<name>.py 负责组网 / 前向 /
损失,model_configuration_<name>.py 是架构超参数据类。对上层暴露统一接口,接入新模型不触碰训练循环。
② 数据流水线(data/)—— 公共后端 + 每模型差异。
数据集读取后端(lerobot / hdf5 / dummy)、有状态的分布式采样器、可组合的 transform 框架统一沉淀为公共能力;模型特有的数据读取(如
fastwam 的多帧几何)、动作 / 图像变换、batch 拼装下沉到 datasets/<name>/;每个模型用
DataConfig 声明图像尺寸、动作维度、归一化统计等。
③ 三层配置解析(train/parser.py)—— 冻结为不可变对象。 YAML model: 段 →
ModelConfig、YAML data: 段 → DataConfig、命令行 →
TrainingArgs;--model-name 经 config_map.py 路由到对应 YAML 与类型,命令行还可用
dotlist 覆盖字段(如 model.action_horizon=64),最终统一冻结为全局单例。
④ 分布式训练器(train/trainers/、distributed/)—— 策略灵活。 标准 SFT 直接用
FinetuneTrainer,多流、CUDA Graph 等特殊范式继承 BaseTrainer 并在
trainer_builder.py 注册,通过 --trainer-type 选择;分布式则可在
ddp(数据并行)、ddp + --zero-optimizer(ZeRO
Stage-1)、fsdp(全分片)、hsdp(混合分片)之间按需切换,贴合具身模型的规模与显存特征。BaseTrainer
还把优化器 / LR 调度、梯度裁剪与 NaN 清理、checkpoint 续训、确定性控制等收敛到公共层,让每个模型复用同一套实现。
新增一个模型只需 5 步:① 加 model/<name>/ 的组网与配置并 @register_model;②
加 data/datasets/<name>/(DataConfig + transform + collator);③ 在
configs/models/embodied/ 加 YAML 并在 config_map.py 登记;④ 范式不同则继承
BaseTrainer,否则复用 FinetuneTrainer;⑤ 在 examples/ 加启动脚本。
5. 快速开始
训练通过 torchrun 启动 loongforge/embodied/train.py:
export LOONGFORGE_PATH=/workspace/LoongForge
PYTHONPATH=$LOONGFORGE_PATH:$PYTHONPATH \
torchrun --nproc_per_node 8 --nnodes 1 \
$LOONGFORGE_PATH/loongforge/embodied/train.py \
--model-name pi05 \
--trainer-type FinetuneTrainer \
--dataset-format lerobot_datasets \
--distributed-strategy fsdp \
--train-iters 30000 \
...
不同模型在数据格式、处理流程、性能优化配置上各有差异,可直接运行的命令因模型而异。开箱即用的示例脚本见 examples/embodied/:
bash examples/embodied/pi05/run_pi05_fsdp_finetune.sh # 另有 ddp / ddp_zero1 变体
bash examples/embodied/groot_n1_6/run_groot_n1_6_ddp_finetune.sh
6. 评测:离线 benchmark,进程解耦
训练之外,LoongForge-Embodied 内置一套离线评测模块,覆盖 LIBERO / CALVIN / SimplerEnv / RoboTwin / ManiSkill。它将 benchmark 客户端与模型策略服务器拆分为独立进程,通过 WebSocket / msgpack-numpy 的 RPC 协议连接,以 YAML 作为唯一用户入口:
cd /path/to/LoongForge
examples/embodied/pi05/eval/run_libero_eval.sh
模型侧只需实现统一的 predict_action 接口,通用策略层 GenericPredictActionPolicy 负责图像视图选择、动作 shape
校验、chunk 缓存、延迟统计与归一化统计加载;接入新模型只需在 eval/factories/ 下新增一个轻量工厂,无需改动服务器主流程。
评测模块仍在持续开发中,后续会有更多 benchmark 与能力加入。
7. 写在最后
LoongForge-Embodied 的发布,标志着 LoongForge 面向具身模型的训练能力,从此前散落在主框架中的 VLA 支持,正式沉淀为一个独立、解耦的子系统:主流 VLA 与 WAM 一次到位、接入统一,同时在同等硬件下相对官方实现带来 1.6× ~ 2.67× 的训练加速。
我们相信,具身模型的研发效率,取决于能否用最贴合其形态的基础设施去训练它。欢迎试用,也欢迎通过 GitHub Issue、微信或 Slack 加入社区,一起把它打磨得更好。