RuntimeError: Request failed with status code 500: No available agent to submit job, please try again later..
使用ray进行ppo的时候,在creating a file package for local directory(会卡1分钟左右)之后,会报错No available agent to submit job, please try again later..,如下图所示。请问这是什么原因?
我确认了下,openrlhf目录下只有总计1M的代码文件,应该和这个目录无关。
脚本如下:
set -x
work_dir=my_work_dir
code_dir=$work_dir/OpenRLHF
export PYTHONPATH=$code_dir:$PYTHONPATH
data_path=$work_dir/data/ultrafeedback_binarized/
model_path=$work_dir/checkpoint/sft/qwen2_5_1_5b_base_ultrachat200k_bsz128_lr2e-5
reward_model_path=$work_dir/checkpoint/reward_model/qwen2_5_1_5b_on_ultrafeedback_bsz128_lr2e-5
task=ppo_ray
batch_size=128
actor_lr=5e-7
critic_lr=9e-6
task_config=qwen2_5_1_5b_on_ultrafeedback_bsz${batch_size}_actorlr${actor_lr}_criticlr${critic_lr}
# task_config=qwen2_5_1_5b_on_ultrafeedback_after_ultrachat200k_bsz${batch_size}_lr${lr}
output_dir=$work_dir/checkpoint/$task/$task_config
if [[ ! -d $output_dir ]]; then
mkdir -p $output_dir
fi
# launch the master node of ray in container
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8 \
ray job submit -v --address="http://127.0.0.1:8265" \
--runtime-env-json='{"working_dir": "my_work_dir/rlhf/OpenRLHF/openrlhf"}' \
-- python3 -m $code_dir/openrlhf/cli/train_ppo_ray.py \
--ref_num_nodes 1 \
--ref_num_gpus_per_node 2 \
--reward_num_nodes 1 \
--reward_num_gpus_per_node 2 \
--critic_num_nodes 1 \
--critic_num_gpus_per_node 2 \
--actor_num_nodes 1 \
--actor_num_gpus_per_node 2 \
--vllm_num_engines 2 \
--vllm_tensor_parallel_size 2 \
--colocate_critic_reward \
--colocate_actor_ref \
--pretrain $model_path \
--reward_pretrain $reward_model_path \
--prompt_data $data_path \
--prompt_split train_prefs \
--input_key messages \
--apply_chat_template \
--prompt_max_len 1024 \
--generate_max_len 1024 \
--train_batch_size $batch_size \
--micro_train_batch_size 2 \
--rollout_batch_size 1024 \
--micro_rollout_batch_size 4 \
--actor_learning_rate $actor_lr \
--critic_learning_rate $critic_lr \
--init_kl_coef 0.01 \
--normalize_reward \
--warmup_ratio 0.1 \
--save_path $output_dir \
--save_steps -1 \
--logging_steps 1 \
--eval_steps -1 \
--zero_stage 2 \
--max_epochs 1 \
--flash_attn \
--bf16 \
--gradient_checkpointing 2>&1 | tee -a $output_dir/train.log
ray启动后的状态信息如下:
同样的问题,请问您解决了吗 Same problem
同样的问题,请问您解决了吗 Same problem
我用torchrun启动可以正常运行,ray job submit的方式还是不行
我也遇到了同样的问题,最后发现是端口被占用了。根据官方文档中的端口配置,在ray start时手动修改dashboard-agent-listen-port、port、ray-client-server-port、dashboard-port可以解决问题(注意ray job submit的时候要把端口改成对应的dashboard-port)。
我也遇到了同样的问题,最后发现是端口被占用了。根据官方文档中的端口配置,在
ray start时手动修改dashboard-agent-listen-port、port、ray-client-server-port、dashboard-port可以解决问题(注意ray job submit的时候要把端口改成对应的dashboard-port)。
可以分享一下命令吗
我也遇到了同样的问题,当时的情况是服务器上有2张空余的卡,所以我在启动ray的指令是:
CUDA_VISIBLE_DEVICES=3,4 ray start --head --port=6380 --node-ip-address=127.0.0.1 --num-gpus=2 --dashboard-host=0.0.0.0 --dashboard-port=8260
在操作系统层面,Ray 只能看到 GPU 3 和 4;又通过 --num-gpus=2: 在 Ray 自己的配置层面,它也只知道自己有 2 个 GPU。但问题出在 Ray 的调度机制上——Ray 的头节点本身需要占用一些资源来运行它的内部服务(如调度器和代理)。所以,当 Ray 启动后,它的调度器发现自己拥有的全部 2 个 GPU 已经被头节点占用了,没有多余的资源可以分配给新的任务。
最终我的解决方案是删除ray start指令中的CUDA_VISIBLE_DEVICES和--num-gpus=2,这个报错消失了
所以我的建议是可以试试删除--num-gpus=8