MachineSex/hpc/llm_compose.pbs
Giorgio Gilestro 84124de143 Manuscript revision and pending experiment work, snapshot before restructuring
Clarity pass over the main text (36-item audit), Discussion rewrite and cut,
acknowledgements, Souly et al. as ref 62, lettered SI panels, model section
moved under Results; plus the untracked curriculum/society/compose/smol
configs, runners, figures, stats and tests that the SI already cites.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
2026-09-13 16:54:09 +01:00

43 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
# The composition campaign (prereg tasks/prereg-llm-compose-v3.md): one (seed, arm) per array
# element. Seed 1 runs locally on the A4000 as the hedge; this array covers seeds 2-3 x 3 arms.
# Each element trains its own founders (cached per seed under models/, first writer wins via the
# adapter_config.json check) and checkpoints every generation, so a requeued element resumes.
# submit: qsub hpc/llm_compose.pbs status: qstat -u $USER -t
# index -> seed = 2 + (i-1)/3, arm = (dry grounded dry_cat)[(i-1)%3]
#PBS -l select=1:ncpus=8:mem=64gb:ngpus=1:gpu_type=L40S
#PBS -l walltime=08:00:00
#PBS -N lam_compose
#PBS -J 1-6
cd "$PBS_O_WORKDIR"
export HF_HOME="$EPHEMERAL/hf_cache"
export HF_DATASETS_CACHE="$EPHEMERAL/hf_cache/datasets"
export TOKENIZERS_PARALLELISM=false
export UV_CACHE_DIR="$EPHEMERAL/uvcache"
ARMS=(dry grounded dry_cat)
I=$((PBS_ARRAY_INDEX - 1))
SEED=$((2 + I / 3))
ARM=${ARMS[$((I % 3))]}
source .venv/bin/activate
nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader
echo "seed=$SEED arm=$ARM start=$(date)"
CFG="configs/llm/_gen/compose_s${SEED}_${ARM}.yaml"
mkdir -p configs/llm/_gen
python - "$SEED" "$ARM" "$CFG" <<'EOF'
import sys, yaml
seed, arm, out = int(sys.argv[1]), sys.argv[2], sys.argv[3]
cfg = yaml.safe_load(open("configs/llm/compose_s1.yaml"))
cfg["seed"] = seed
cfg["arms"] = [arm]
cfg["batch_size"] = 32 # L40S has 46 GB; the A4000 setting is 16
cfg["score_batch_size"] = 8
cfg["output"] = {"dir": f"results/llm_compose/s{seed}_{arm}"}
yaml.safe_dump(cfg, open(out, "w"), sort_keys=False)
EOF
python -m llm.experiment "$CFG"
echo "done: $(date)"