File size: 1,542 Bytes
1c9c214 | 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 | #!/bin/bash
# Phase 1 - the bound, measured rather than asserted.
#
# Four graph families spanning total correlation from 0.11 to 8.44 bits, where
# the one-pass ceiling V* is known in closed form (V* >= 2^-TC, with equality
# for fixed-edge-count families). The question each run answers: does a trained
# masked diffusion model REACH that ceiling at one pass?
#
# reaches it -> the residual gap is mode (ii), provably not trainable
# falls short -> the shortfall is mode (i), and budget conditioning should
# close it, which the anybudget arm tests directly
#
# Runs on a 5GB MIG slice: these are 15-token sequences and sub-3M-parameter
# models, and that partition bills at 9/min against the H100's 144 - a 16x
# saving that makes the whole phase cost well under one H100-hour.
#SBATCH -J gr1
#SBATCH -p gpu-a100_1g.5gb
#SBATCH --gres=gpu:a100_1g.5gb:1
#SBATCH -c 4
#SBATCH --mem=16g
#SBATCH -t 4:00:00
#SBATCH -o logs/gr1-%A_%a.out
#SBATCH --array=0-15%8
source /etc/profile
SCR=/scratch/zt1/project/msml612/user/$USER
module load python/3.10.10
export PYTHONPATH=
cd $SCR/pcmd/src
FAMS=(matching 2regular tree bipartite); MODES=(mdlm anybudget); SEEDS=(0 1)
I=$SLURM_ARRAY_TASK_ID
F=${FAMS[$((I / 4))]}; M=${MODES[$(((I % 4) / 2))]}; S=${SEEDS[$((I % 2))]}
NAME="gr1-$F-$M-s$S"
echo "=== $NAME ==="
$SCR/hf_env/bin/python -u train_graph.py --family $F --n 6 --mode $M --seed $S \
--d 256 --layers 6 --heads 8 --bs 256 --steps 30000 --lr 1e-4 --warmup 1000 \
--n_gen 4096 --gen_bs 512 --out $SCR/pcmd/runs/$NAME
|