#!/usr/bin/env bash # Second experiment batch — maps the distributed-evidence effect along two axes. # Launch only after run_queue.sh has finished (never edit a running bash script: # bash re-reads from a byte offset and can resume mid-command). # # Baselines to compare against, all D=64, same protocol: # solo, full evidence ............. 13.6% # solo, half evidence ............. 0.0% # colony K=4, half evidence each .. 9.8% (member ablation: 3 units 1.8%, 1 unit 0.0%) set -uo pipefail cd "$(dirname "$0")/.." QUEUE=( # Does the effect need a crowd? Two units, same halves-each setup. "colony-d64-k2-evihalf|64|2|arch.blackboard=latent arch.standpoints=none arch.aggregate=mean arch.halt_rule=quorum arch.view_fraction=0.5" # Push the members further into blindness: a quarter of the grid each, so the # colony still covers everything but no member comes close. "colony-d64-k4-evi25|64|4|arch.blackboard=latent arch.standpoints=none arch.aggregate=mean arch.halt_rule=quorum arch.view_fraction=0.25" # Same colony, but a decision rule that lets a confident minority prevail # instead of being averaged into the mean. "colony-d64-k4-evihalf-conf|64|4|arch.blackboard=latent arch.standpoints=none arch.aggregate=confidence arch.halt_rule=quorum arch.view_fraction=0.5" ) 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) queue2 complete ==="