| # Phase-1 pilot chain for ONE trait: gen responses -> judge -> capture -> direction. | |
| # Uses soyuz server (30007) for gen, local Qwen3-8B (30008) for judge. | |
| set -uo pipefail | |
| cd "$(dirname "$0")/.." | |
| TRAIT=${TRAIT:-persistence-after-error} | |
| NP=${NP:-10} | |
| NQ=${NQ:-12} | |
| PY=.venv/bin/python | |
| LOG() { echo "[$(date -u +%H:%M:%S)] $*"; } | |
| LOG "=== PILOT trait=$TRAIT (${NP}x${NQ}) ===" | |
| LOG "1/4 gen_responses (soyuz self-generation)" | |
| $PY scripts/11_responses/gen_responses.py --trait "$TRAIT" --n-pairs "$NP" --n-questions "$NQ" --parallel 4 || { LOG "gen FAILED"; exit 1; } | |
| LOG "2/4 judge_responses (local Qwen3-8B)" | |
| $PY scripts/12_judge/judge_responses.py --trait "$TRAIT" --local || { LOG "judge FAILED"; exit 1; } | |
| LOG "3/4 stop soyuz server to free VRAM, then capture activations" | |
| pkill -f steered_server; sleep 5 | |
| $PY scripts/13_capture/capture_response_acts.py --trait "$TRAIT" || { LOG "capture FAILED"; exit 1; } | |
| LOG "4/4 compute_trait_dir (5-fold CV AUC)" | |
| $PY scripts/14_direction/compute_trait_dir.py --trait "$TRAIT" --topk 3 || { LOG "direction FAILED"; exit 1; } | |
| LOG "restart soyuz server for steering validation" | |
| setsid bash -c 'STEER_PORT=30007 exec .venv/bin/python scripts/20_serve/steered_server.py > results/server.log 2>&1' & disown | |
| LOG "=== PILOT DONE — see vectors/${TRAIT}_L*.pt ===" | |