外观
踩坑GitHub openvla/openvla10 个月前
Octo微调LIBERO成功率0%及输出动作过小导致机器人不动
本文由 AI 根据公开内容整理,可能有误,请以原文为准:The details of fine-tuning Octo using LIBERO(GitHub openvla/openvla #215)
状态:有绕过办法
问题
在LIBERO数据集上微调Octo模型时,评估成功率始终为0%。即使有输出,动作值也极小(如[-0.000, 0.002...]),导致仿真环境中机器人几乎无法移动。该现象在使用octo-base模型时尤为明显,且默认配置下未能复现论文指标。
环境
Octo (octo-base/octo-small), LIBERO RLDS数据集, finetune_config.py, TensorFlow
解决办法
- 将基础模型从
octo-base切换为octo-small,后者在该任务上表现更稳定。 - 修改
FINETUNING_KWARGS配置,将image_obs_keys中的wrist设为None,仅使用第三人称视角图像进行训练。 - 设置
action_normalization_mask为[True, True, True, True, True, True, False],避免对夹爪动作进行归一化。 - 自定义
libero_dataset_transform函数:将夹爪动作裁剪至0-1区间并执行invert_gripper_actions翻转(+1开/0关);将本体状态前6维与后2维拼接作为proprio观测输入。 - 确保数据标准化逻辑与OpenVLA处理流程保持一致,通过
ModuleSpec.create正确加载自定义变换函数。
讨论原作者:@buduz 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。