lnp_ml/scripts_run/run_qwen_softrag.sh

39 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -uo pipefail
# ===== 可调参数(用环境变量覆盖)=====
GPU=${GPU:-1}
SEED=${SEED:-42}
BATCH=${BATCH:-8} # OOM 就设 4
N_OUTER=${N_OUTER:-5}
N_INNER=${N_INNER:-3}
N_TRIALS=${N_TRIALS:-20}
EPOCHS=${EPOCHS:-20} # 每个 trial 最大 epoch
PATIENCE=${PATIENCE:-5} # 内层早停耐心值(配合 min_delta 生效)
# 固定运行目录(按 seed 区分)→ 断点续跑的关键
RUN_DIR="models/abl_qwen_softrag/seed${SEED}"
export TRANSFORMERS_OFFLINE=1
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
export TOKENIZERS_PARALLELISM=false
mkdir -p "${RUN_DIR}"
echo "[$(date)] START seed=${SEED} gpu=${GPU} batch=${BATCH} dir=${RUN_DIR}"
CUDA_VISIBLE_DEVICES=${GPU} python -m lnp_ml.modeling.nested_cv_optuna \
--input-path data/interim/internal.csv \
--output-dir models/abl_qwen_softrag \
--resume-dir "${RUN_DIR}" \
--seed ${SEED} \
--use-llm --use-rag --rag-top-k 4 \
--use-soft-prompt --llm-use-qlora \
--llm-model-path models/qwen2.5-7b-instruct \
--no-llm-freeze \
--n-outer-folds ${N_OUTER} --n-inner-folds ${N_INNER} \
--n-trials ${N_TRIALS} --epochs-per-trial ${EPOCHS} \
--inner-patience ${PATIENCE} \
--batch-size ${BATCH} --device cuda \
2>&1 | tee -a "${RUN_DIR}/run.log"
echo "[$(date)] DONE seed=${SEED} (exit=${PIPESTATUS[0]})"