| #!/bin/bash |
| |
| |
|
|
| set -euo pipefail |
|
|
| EMBEDDINGS_FILE="/scratch/$USER/dovla/experiments/instruction_embeddings.pkl" |
| MAX_WAIT=3600 |
|
|
| echo "======================================" |
| echo "AUTO-LAUNCH: Language Training" |
| echo "======================================" |
| echo "" |
| echo "Monitoring: $EMBEDDINGS_FILE" |
| echo "Max wait: ${MAX_WAIT}s (1 hour)" |
| echo "" |
|
|
| |
| elapsed=0 |
| while [ $elapsed -lt $MAX_WAIT ]; do |
| if [ -f "$EMBEDDINGS_FILE" ]; then |
| |
| if python3 -c " |
| import pickle |
| try: |
| emb = pickle.load(open('$EMBEDDINGS_FILE', 'rb')) |
| print(f'β
Embeddings ready: {len(emb)} groups') |
| exit(0 if len(emb) >= 3000 else 1) |
| except: |
| exit(1) |
| " 2>/dev/null; then |
| echo "" |
| echo "β
Embeddings verified!" |
| echo "" |
|
|
| |
| echo "π Launching language training (3 seeds)..." |
| JOB_ID=$(sbatch scripts/slurm/train_transformer_lang.sbatch 2>&1 | grep -oP '\d+') |
|
|
| echo "β
Submitted: Job $JOB_ID" |
| echo "" |
| echo "Expected completion: 2-3 hours" |
| echo "Expected result: 50-55% selected success" |
| echo "" |
|
|
| exit 0 |
| fi |
| fi |
|
|
| sleep 30 |
| elapsed=$((elapsed + 30)) |
|
|
| if [ $((elapsed % 300)) -eq 0 ]; then |
| echo "Still waiting... (${elapsed}s elapsed)" |
| fi |
| done |
|
|
| echo "" |
| echo "β° Timeout after ${MAX_WAIT}s" |
| echo "Manual launch required: sbatch scripts/slurm/train_transformer_lang.sbatch" |
| exit 1 |
|
|