agentic-rl-main / launch_all_raw.sh
Jack04810's picture
Add files using upload-large-folder tool
534c64f verified
Raw
History Blame Contribute Delete
2.37 kB
#!/bin/bash
# ... (保留您之前的配置变量) ...
REMOTE_USER="root"
PROJECT_PATH="/path/to/code/DyME"
#TRAIN_SCRIPT="main_rebuttal"
#SCRIPT_ARGS="--mode grpo --config llavacot"
TRAIN_SCRIPT="main"
SCRIPT_ARGS="--config norm"
#TRAIN_SCRIPT="main_change"
#SCRIPT_ARGS="--config change"
# 节点列表 (根据您的hostfile整理)
readonly WORKER_HOSTS=(
"xx.xx.xx.xx"
)
# ... (保留您的环境变量设置 ENV_SETUP_CMDS) ...
ENV_SETUP_CMDS="
export WANDB_API_KEY=YOUR_WANDB_KEY;
export http_proxy='YOUR_PROXY';
export https_proxy='YOUR_PROXY';
"
CONFIG_FILE="${PROJECT_PATH}/multi_node_config_raw.yaml"
# ============================================================
# 核心修复 1: 定义清理函数
# ============================================================
cleanup() {
echo "🛑 检测到中断或退出,正在清理所有节点进程..."
bash kill_all.sh
wait
echo "✅ 清理完成。"
}
trap cleanup SIGINT EXIT
echo "🧹 启动前预清理..."
cleanup
echo "环境安装"
pip install -r ${PROJECT_PATH}/requirements.txt &
LOCAL_PID=$! # 获取本地安装的进程ID
for HOST in "${WORKER_HOSTS[@]}"; do
echo "在节点 ${HOST} 上启动安装..."
# 使用 & 将 ssh 命令放入后台执行
ssh ${REMOTE_USER}@${HOST} "pip install -r ${PROJECT_PATH}/requirements.txt;http_proxy='YOUR_PROXY' https_proxy='YOUR_PROXY' python -m spacy download en_core_web_sm" &
done
echo "等待所有安装任务完成..."
wait
echo "所有节点环境安装完成!"
echo "🚀 正在启动主节点 (rank 0)..."
cd ${PROJECT_PATH} || exit
MASTER_CMD="${ENV_SETUP_CMDS} accelerate launch \
--config_file ${CONFIG_FILE} \
--machine_rank 0 \
-m ${TRAIN_SCRIPT} ${SCRIPT_ARGS}"
eval "${MASTER_CMD}" 2>&1 | tee master.log &
MASTER_PID=$!
RANK=1
for HOST in "${WORKER_HOSTS[@]}"; do
echo "🚀 正在启动从属节点 ${HOST} (rank ${RANK})..."
REMOTE_CMD="cd ${PROJECT_PATH}; ${ENV_SETUP_CMDS} accelerate launch \
--config_file ${CONFIG_FILE} \
--machine_rank ${RANK} \
-m ${TRAIN_SCRIPT} ${SCRIPT_ARGS}"
ssh -n ${REMOTE_USER}@${HOST} "${REMOTE_CMD}" 2>&1 | tee worker_${RANK}.log &
RANK=$((RANK+1))
done
echo "✅ 所有进程启动完毕。主进程 PID: $MASTER_PID"
echo "⏳ 等待训练结束... (按 Ctrl+C 可强制终止所有节点)"
wait $MASTER_PID