| #!/bin/bash |
| |
| WS=/mnt/pvc/users/simon/agentptb/runs/a-opus-max/workspace |
| cd "$WS" || exit 1 |
| echo "=== time ===" |
| date -u '+%Y-%m-%dT%H:%M:%SZ now' |
| if [ -f DEADLINE ]; then |
| END=$(cut -d. -f1 < DEADLINE) |
| printf 'deadline %s remaining %s h\n' "$(date -u -d "@$END" '+%Y-%m-%dT%H:%M:%SZ')" \ |
| "$(python3 -c "print(round(($END - $(date +%s))/3600, 1))")" |
| fi |
|
|
| echo; echo "=== processes ===" |
| pgrep -af "PRIME-RL|vllm serve|bin/eval|bin/rl|pool_probe.sh" 2>/dev/null \ |
| | grep -v "bash -c" | sed 's/\(.\{110\}\).*/\1…/' | head -12 |
| [ -z "$(pgrep -f 'PRIME-RL|vllm serve|bin/eval')" ] && echo "(no training/eval/serving running)" |
|
|
| echo; echo "=== gpus (used vs my processes — a gap means a neighbour holds the card) ===" |
| nvidia-smi --query-gpu=index,memory.used,utilization.gpu --format=csv,noheader | head -6 |
| nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader | head -6 |
|
|
| echo; echo "=== training ===" |
| for f in logs/sft_*.log logs/rl_*.log; do |
| [ -f "$f" ] || continue |
| last=$(grep -oE "Step [0-9]+ \|[^|]*\| Loss [0-9.]+" "$f" | tail -1) |
| [ -n "$last" ] && echo "$f: $last" |
| done |
| echo "checkpoints:"; ls -d ckpt/*/weights/step_* 2>/dev/null | tail -6 |
|
|
| echo; echo "=== sandbox pool ===" |
| tail -2 logs/pool_probe.log 2>/dev/null |
|
|
| echo; echo "=== scored runs ===" |
| for d in runs/*/; do |
| [ -f "$d/traces.jsonl" ] || continue |
| python3 scripts/score.py "$d" 2>/dev/null | sed -n '1,2p' | paste -sd' ' - |
| done |
|
|