#!/usr/bin/env bash # Batch 3 — decision rules and self-government, built on K=2 (best performer, cheapest). # Config-only; no new code, so no new bug surface. # # Baselines (D=64, half evidence each unless noted): # K=2 mean/quorum ......... 10.9% <- the configuration these vary from # K=4 mean/quorum ......... 9.8% # K=4 confidence/quorum ... 4.7% <- unequal influence halves performance # solo, half evidence ..... 0.0% set -uo pipefail cd "$(dirname "$0")/.." QUEUE=( # Discrete equal-weight rule: does one-unit-one-vote beat averaging logits? "colony-d64-k2-evihalf-vote|64|2|arch.blackboard=latent arch.standpoints=none arch.aggregate=vote arch.halt_rule=quorum arch.view_fraction=0.5" # Self-government: one member decides when the group stops deliberating. # Quorum halting already costs ~2 points; does concentrating that authority cost more? "colony-d64-k2-evihalf-boss|64|2|arch.blackboard=latent arch.standpoints=none arch.aggregate=mean arch.halt_rule=boss arch.view_fraction=0.5" # Completes the 2x2: two units, quarter evidence each (union no longer covers # the grid comfortably, so this is the most information-starved colony yet). "colony-d64-k2-evi25|64|2|arch.blackboard=latent arch.standpoints=none arch.aggregate=mean arch.halt_rule=quorum arch.view_fraction=0.25" ) for entry in "${QUEUE[@]}"; do IFS='|' read -r name width k overrides <<< "$entry" echo "=== $(date -Is) starting ${name} ===" # shellcheck disable=SC2086 PYTHONUNBUFFERED=1 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \ .venv/bin/python -m dsem.pretrain \ arch=colony \ data_paths="[data/sudoku-extreme-1k-aug-1000]" \ data_paths_test="[data/sudoku-testsub-12k]" \ evaluators="[]" \ epochs=50000 eval_interval=5000 \ global_batch_size=768 \ lr=1e-4 puzzle_emb_lr=1e-4 weight_decay=1.0 puzzle_emb_weight_decay=1.0 \ arch.mlp_t=True arch.pos_encodings=none \ arch.L_layers=2 arch.H_cycles=3 arch.L_cycles=6 \ "arch.hidden_size=${width}" "arch.num_agents=${k}" \ ema=True "+run_name=${name}" \ $overrides > "runs/${name}.out" 2>&1 < /dev/null echo "=== $(date -Is) finished ${name} ===" done echo "=== $(date -Is) queue3 complete ==="