server3
OpenVLA项目Open-X Embodiment数据转MLLM通用微调格式 ->LLaVA-OV训练(完整项目+笔记) - 知乎
https://github.com/openvla/openvla
https://github.com/LLaVA-VL/LLaVA-NeXT
https://github.com/haotian-liu/LLaVA
数据变化过程:
[traj_len, actionxxx]
,现在变成 [traj_len , window_size + future_action_window_size, actionxxx]
,每个单元素都变成窗口多元素,每个窗口就是一个训练数据了(obs+action tensor)
其中最重要的步骤 goal_relabeling 用于构造behavior cloning (行为克隆,简称BC)数据,定义uniform函数,对于每一个step均匀的从未来的obs中抽样一个未来目标step,构造一个和observation字典结构一样的字典,合并到traj[“task”]
中(即各个键都应该在task有,其中后续构造训练时用到了traj["task"]["timestep"]
完整使用方式(个人版,路径对应改一下,实在太懒了😭 )
# 下载和预处理数据,要翻墙,更改prepare_open_x.sh的数据集选用和比例
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7891
conda activate rlds_data
cd /project/rlds_dataset_part
./prepare_open_x.sh
# bridge是现成的,copy一部分,执行👇
./prepare_bridge.sh
# 注意dobbe的数据错乱,需要修改sh文件中判断train_file的条件
# 注意,如果单独执行modify_rlds_dataset.py 也一定要翻墙!!!不然会出抽象bug
# 修改generate_llavadata.sh 里的 data_mix,在//project/openvla/prismatic/vla/datasets/rlds/oxe/mixtures.py注册一个mix,处理轨迹数据成llm格式
# 如果改名了要去config和transform注册,这里不能翻墙、、不然会报错
conda activate openvla
cd /project/openvla
./generate_llavadata.sh
# 未知原因最后会卡住,但其实已经生成好了
# 处理序号,shuffle,以及改成llava相对路径格式,rename是直接重命名不保留,cp是备份(debug用)
python /project/openvla/shuffle_reid_rename.py
# 修改//project/LLaVA-NeXT/scripts/train/vla.yaml 的json_path,image_dir应该不会变,进行训练
conda activate llavaov
cd /project/LLaVA-NeXT
./scripts/train/finetune_ov_vla.sh