数据飞轮(Data Flywheel)#
可选的数据飞轮功能会记录 LIBERO 评测中实际执行的轨迹,但不会改变规划器或动作 原语。它首先保存不可变的原始轨迹;转换为训练格式是独立的后续步骤。
安装#
环境准备和仿真资源下载请参考 安装。在 RPent 仓库根目录安装 LIBERO-PRO 及数据飞轮导出依赖:
pip install -e ".[libero-pro,flywheel]"
采集轨迹#
在普通 LIBERO 评测命令中开启采集,并指定数据根目录:
rpent --robot libero \
--suite libero_goal --task 0 --seed 0 \
--planner codex \
--collect-flywheel-data \
--flywheel-root /path/to/datacollection
每次运行会在
/path/to/datacollection/raw/libero/<suite>/task_<id>/seed_<seed>/ 下写入一条
轨迹,其中包含策略观测、实际执行的动作、奖励、终止标记、原语调用编号和 VLA
预测的动作序列。采集功能默认关闭,首版仅支持评测模式。
校验并导出成功轨迹#
使用轨迹前可以单独校验原始数据:
rpent-flywheel validate /path/to/raw/episode
将同一任务套件中某个任务下所有已完成的成功轨迹导出为 LeRobot 数据集:
rpent-flywheel export-lerobot \
--data-root /path/to/datacollection \
--suite libero_goal \
--task 0 \
--dataset-id goal-task-00 \
--output-root /path/to/lerobot
其中 --data-root 是原始数据根目录,--output-root 是导出数据集的父目录。
本例导出的数据集位于 /path/to/lerobot/goal-task-00。
对于成功轨迹,导出从开始到首次完成任务的所有实际执行动作,包含使任务成功的 那一步。其中既有脚本原语动作,也有 VLA 动作;成功后的后续动作不导出。
导出程序不会改写原始轨迹。失败轨迹会继续保留以便审计,但不会进入这份监督训练 数据。
使用 RLinf 训练#
将成功轨迹导出为 LeRobot 数据集后,可以在独立的 RLinf 环境中进行 Pi0.5 监督 微调。RPent 负责采集和导出;模型训练、日志和权重保存由 RLinf 管理。
环境安装和训练配置请参考
RLinf OpenPI_RLinf 监督微调指南。
训练数据路径应指向导出的 LeRobot 数据集目录,即包含 meta/info.json 的目录,
而不是原始轨迹目录。
先准备支持 LIBERO LeRobot 数据加载的 RLinf 环境,并将 Pi0.5 LIBERO SFT 配置
保存为 /path/to/sft-config/libero_pi05_sft.yaml,再运行:
cd /path/to/RLinf
unset PYTHONPATH
export PYTHONPATH="$PWD"
export EMBODIED_PATH="$PWD/examples/sft"
.venv/bin/python examples/sft/train_vla_sft.py \
--config-path /path/to/sft-config \
--config-name libero_pi05_sft \
data.train_data_paths=/path/to/lerobot/goal-task-00 \
actor.model.model_path=/path/to/pi05-checkpoint \
runner.logger.log_path=/path/to/new-training-output
根据可用 GPU 设置配置中的资源分配和 batch size,并使用与所选模型和数据集 相匹配的 checkpoint 及归一化设置。