1. 环境配置

RoboTwin 对应的 Openvla-oft conda 环境,与 ALOHA 部分的官方 Openvla-oft 环境完全一致。请按照 Openvla-oft 官方文档安装环境,并直接覆盖 RoboTwin 环境。

conda activate RoboTwin  # 激活环境,准备安装 PyTorch
# 根据你的设备选择对应命令安装 PyTorch:https://pytorch.org/get-started/locally/
pip3 install torch torchvision torchaudio

# 克隆 openvla-oft 仓库并通过 pip 安装依赖
git clone https://github.com/moojink/openvla-oft.git
cd openvla-oft
pip install -e .

# 安装训练所需的 Flash Attention 2(参考:https://github.com/Dao-AILab/flash-attention)
# 若安装遇到问题,先尝试执行 `pip cache remove flash_attn`
pip install packaging ninja
ninja --version; echo $?  # 验证 Ninja 是否安装成功,成功会返回退出码 "0"
pip install "flash-attn==2.5.5" --no-build-isolation

注意事项:若在 diffusers 库使用中遇到问题,尝试执行 pip install diffusers==0.33.1 安装指定版本。


2. 收集 RoboTwin 数据

详细操作可参考 RoboTwin 教程的「使用说明」部分。


3. 生成 RLDS 数据

RLDS 数据集是 Openvla-oft 训练所需的数据格式,生成步骤如下:

  1. 利用 RoboTwin 数据生成机制生成原始数据。
  2. 执行以下命令,将原始数据转换为 Openvla-oft 支持的 ALOHA 格式,需要修改preprocess_aloha.sh里面的{--dataset_path}和{--instruction_dir}。
    bash preprocess_aloha.sh
    
  3. 数据转换为 RLDS 格式后,需在数据加载器中注册该数据集(示例数据集名称为 aloha_move_can_pot_builder):
    • 在 configs.pytransforms.py和 mixtures.py中添加对应配置项。
    • 具体细节可参考 Openvla-oft 官方文档。
  4. 将数据转换为 TFDS 格式,并在设备中注册该数据集(示例命令)
    python -m datasets.move_can_pot_builder

4. 微调模型

执行以下命令启动模型微调:

bash finetune_aloha.sh

说明:默认情况下,训练过程不会保存合并后的权重。若需使用检查点(checkpoint),需运行 merge_lora.sh 合并 LoRA 权重。若合并后的检查点缺少部分 .py 文件,直接从原始检查点中复制即可。


5. 在 RoboTwin 上进行评估

示例用法

bash eval.sh ${task_name} ${task_config} ${checkpoint_path} ${seed} ${gpu_id} ${unnorm_key}
# 示例命令:bash eval.sh move_can_pot demo_randomized ckpt_path 0 5 aloha_move_can_pot_builder

评估结果说明:评估结果(含视频文件)将保存在项目根目录下的 eval_result 目录中。

2025 年 10 月 2 日

TianxingChen

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐