TTI / Dev /examples /eval_openvla_oft.sh
JosephBai's picture
Upload folder using huggingface_hub
857c2e9 verified
set -x
export MUJOCO_GL="egl" # glfw, glx, osmesa, egl
export PYOPENGL_PLATFORM="egl"
export NCCL_DEBUG=WARN
export WANDB_API_KEY='e3f637ebbcc4a90452916a3f7b209ba6dcd7ebea'
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
export TOKENIZERS_PARALLELISM=true
export CUDA_LAUNCH_BLOCKING=1
export TORCH_USE_CUDA_DSA=1
PROJECT_NAME='SimpleVLA-RL'
EXPERIMENT_NAME='vla-libero10-sft-trajall_eval'
# For openvla-oft Libero-Long traj1 SFT or traj all SFT models can be find in https://huggingface.co/collections/Haozhan72/simplevla-rl-6833311430cd9df52aeb1f86
SFT_MODEL_PATH="CKPT/Openvla-oft-SFT-libero10-trajall"
CKPT_PATH="CKPT/eval_libero10_sft_trajall"
# DATASET_NAME can be libero_10 (libero_Long), libero_90, libero_spatial, libero_object, libero_goal
DATASET_NAME="libero_10"
VLA_NAME="openvla-oft"
NUM_GPUS=8
# If you want to use 2*8 GPU to RL. Set NUM_NODES=2
NUM_NODES=1
ALIGN_PATH="/home/zechen/SimpleVLA-RL/align.json"
HYDRA_FULL_ERROR=1 python -m verl.trainer.main_ppo \
data.task_suite_name=$DATASET_NAME \
data.num_trials_per_task=50 \
data.n_samples=8 \
data.filter_accuracy=True \
data.accuracy_lower_bound=0.1 \
data.accuracy_upper_bound=0.9 \
data.oversample_factor=1 \
data.train_batch_size=64 \
data.val_batch_size=496 \
data.max_prompt_length=256 \
data.max_response_length=128 \
actor_rollout_ref.model.path=$SFT_MODEL_PATH \
actor_rollout_ref.model.vla=$VLA_NAME \
actor_rollout_ref.model.action_token_len=7 \
actor_rollout_ref.model.action_chunks_len=8 \
actor_rollout_ref.actor.optim.lr=5e-6 \
actor_rollout_ref.actor.optim.warmup_style=constant \
actor_rollout_ref.actor.ppo_mini_batch_size=128 \
actor_rollout_ref.actor.ppo_micro_batch_size=$NUM_GPUS \
actor_rollout_ref.actor.use_dynamic_bsz=False \
actor_rollout_ref.actor.fsdp_config.param_offload=False \
actor_rollout_ref.actor.fsdp_config.grad_offload=True \
actor_rollout_ref.actor.fsdp_config.optimizer_offload=True \
actor_rollout_ref.actor.grad_clip=1 \
actor_rollout_ref.actor.clip_ratio_high=0.28 \
actor_rollout_ref.actor.clip_ratio_low=0.2 \
actor_rollout_ref.actor.num_images_in_input=1 \
actor_rollout_ref.actor.traj_mini_batch_size=16 \
actor_rollout_ref.model.enable_gradient_checkpointing=False \
actor_rollout_ref.model.use_remove_padding=False \
actor_rollout_ref.actor.entropy_coeff=0. \
actor_rollout_ref.rollout.num_images_in_input=1 \
actor_rollout_ref.rollout.val_micro_batch_size=8 \
actor_rollout_ref.rollout.temperature=1.6 \
actor_rollout_ref.rollout.experiment_name=$EXPERIMENT_NAME \
actor_rollout_ref.rollout.micro_batch_size=1 \
actor_rollout_ref.rollout.unnorm_key=$DATASET_NAME \
actor_rollout_ref.rollout.model_family=openvla \
actor_rollout_ref.rollout.task_suite_name=$DATASET_NAME \
actor_rollout_ref.rollout.num_steps_wait=10 \
actor_rollout_ref.rollout.pretrained_checkpoint=$SFT_MODEL_PATH \
actor_rollout_ref.rollout.center_crop=True \
actor_rollout_ref.rollout.max_prompt_length=512 \
actor_rollout_ref.rollout.log_prob_micro_batch_size=32 \
actor_rollout_ref.rollout.tensor_model_parallel_size=1 \
actor_rollout_ref.rollout.name=hf \
actor_rollout_ref.rollout.gpu_memory_utilization=0.9 \
actor_rollout_ref.ref.log_prob_micro_batch_size=32 \
actor_rollout_ref.ref.fsdp_config.param_offload=True \
algorithm.kl_ctrl.kl_coef=0.00 \
trainer.logger=['console','wandb'] \
trainer.project_name=$PROJECT_NAME \
trainer.experiment_name=$EXPERIMENT_NAME \
trainer.default_local_dir=$CKPT_PATH/$PROJECT_NAME/$EXPERIMENT_NAME \
trainer.n_gpus_per_node=$NUM_GPUS \
trainer.nnodes=$NUM_NODES \
trainer.save_freq=25 \
trainer.test_freq=4 \
trainer.total_epochs=100 \
trainer.val_only=True \
algorithm.adv_estimator=grpo \
algorithm.adv_params.verifier_gamma=1.0 \
algorithm.adv_params.reward_model_gamma=1.0 \
trainer.runtime_env=$ALIGN_PATH \
trainer.wandb_mode=online \
trainer.val_before_train=True \