File size: 1,376 Bytes
7fa1b76 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/bash
# Grid 2 — the method vs its ablations vs the baseline, on all three probes.
#
# Objectives
# mdlm ELBO only (standard masked diffusion)
# selfcorrupt ELBO + self-conditioning (component 1)
# coord ELBO + coordination (component 2, the core)
# cmd ELBO + both (full method)
#
# The probes make the claim falsifiable: `copy` has independent answer
# positions, so the method must NOT hurt there; `agree` and `parity` have
# jointly-dependent positions, which is where it must win.
#SBATCH -J g2
#SBATCH -p gpu-h100
#SBATCH --gpus=h100:1
#SBATCH -c 8
#SBATCH --mem=64g
#SBATCH -t 08:00:00
#SBATCH -o logs/g2-%A_%a.out
#SBATCH --array=0-23%12
source /etc/profile
SCR=/scratch/zt1/project/msml612/user/$USER
module load python/3.10.10
export PYTHONPATH=
PY=$SCR/hf_env/bin/python
cd $SCR/pcmd/src
I=$SLURM_ARRAY_TASK_ID
TASKS=(copy agree parity); OBJ=(mdlm selfcorrupt coord cmd); SEEDS=(0 1)
T=${TASKS[$((I / 8))]}
O=${OBJ[$(((I % 8) / 2))]}
S=${SEEDS[$((I % 2))]}
NAME="g2-$T-$O-s$S"
echo "=== $NAME ==="
$PY train.py --task $T --objective $O --coupling 4 --seed $S \
--seq_len 128 --n_train 200000 --n_eval 500 --eval_bs 100 \
--d 384 --layers 6 --heads 6 --bs 64 --steps 20000 --lr 3e-4 \
--alpha 0.5 --beta 1.0 --group 4 --coord_every 4 --ramp_frac 0.3 \
--out $SCR/pcmd/runs/$NAME
|