#!/bin/bash #SBATCH --job-name=fw135m-lr #SBATCH --output=/orion/u/oscarwan/ept/ep_run/runs/slurm-fw135m-lr-%A_%a.out #SBATCH --error=/orion/u/oscarwan/ept/ep_run/runs/slurm-fw135m-lr-%A_%a.err #SBATCH --time=72:00:00 #SBATCH --account=orion #SBATCH --partition=orion #SBATCH --nodes=1 #SBATCH --ntasks-per-node=1 #SBATCH --gres=gpu:a6000:1 #SBATCH --cpus-per-task=16 #SBATCH --mem=64G #SBATCH --array=0-2 set -euo pipefail ROOT_DIR="${ROOT_DIR:-/orion/u/oscarwan/ept}" RUN_DIR="${ROOT_DIR}/ep_run" VENV_DIR="${VENV_DIR:-${ROOT_DIR}/.venv}" PYTHON_BIN="${PYTHON_BIN:-python}" WAND_PROJECT="ept-fineweb-135M" WAND_ENTITY="eqprop-llm-training" DATA_DIR="${DATA_DIR:-${RUN_DIR}/data/fineweb_edu}" export EPT_DATA_ROOT="${EPT_DATA_ROOT:-${DATA_DIR%/fineweb_edu}}" SEED="${SEED:-1}" LRS=(7e-4 1e-3 1.4e-3) LR="${LRS[${SLURM_ARRAY_TASK_ID:?This script must be submitted as an array job}]}" LR_TAG="${LR//-/m}" LR_TAG="${LR_TAG//./p}" TAG="fw135m_bp_lr${LR_TAG}_s${SEED}" cd "${RUN_DIR}" mkdir -p runs if [[ -f "${VENV_DIR}/bin/activate" ]]; then source "${VENV_DIR}/bin/activate" fi if [[ ! -f "${DATA_DIR}/meta.pkl" || ! -f "${DATA_DIR}/train.bin" || ! -f "${DATA_DIR}/val.bin" ]]; then echo "FineWeb-Edu data is missing at ${DATA_DIR}." >&2 echo "Run prepare_fineweb.py first to create the dataset." >&2 exit 1 fi echo "Host: $(hostname)" echo "Job ID: ${SLURM_JOB_ID:-local}; array task: ${SLURM_ARRAY_TASK_ID}" echo "Git commit: $(git rev-parse --short HEAD)" echo "CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES:-unset}" echo "W&B: ${WAND_ENTITY}/${WAND_PROJECT}; run: ${TAG}" echo "Adam-side LR: ${LR}; data: ${DATA_DIR}" nvidia-smi "${PYTHON_BIN}" casc_bp_train.py \ --tag "${TAG}" \ --L 12 --C 768 --H 12 --T 256 --B 24 \ --steps 440000 \ --lr "${LR}" \ --warmup 1000 \ --amp --olmo2 \ --wd 0.1 \ --opt muon --muon_lr 0.02 \ --cosine --lr_min_ratio 0.1 \ --data fineweb_edu \ --seed "${SEED}" \ --save_every 5000 --log 100 \ --wandb "${WAND_PROJECT}" \ --wandb_run "${TAG}"