unparallelled commited on
Commit
d8b2d3d
·
verified ·
1 Parent(s): 9d83205

Upload scripts/GO.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. scripts/GO.sh +60 -0
scripts/GO.sh ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # =============================================================================
3
+ # ONE COMMAND: 131k extension -> NIAH eval -> upload verified -> teardown verdict.
4
+ # Run this when the GPUs are free. Everything before it is already staged.
5
+ #
6
+ # Refuses to start if another process holds GPU memory -- this box is shared.
7
+ # =============================================================================
8
+ set -uo pipefail
9
+ cd "$(dirname "$0")"
10
+ export PATH=/root/Adhi/BluTrain/envv/bin:$PATH
11
+ L=go_logs; mkdir -p "$L"; M="$L/master.log"
12
+ say(){ echo "[$(date -u +%H:%M:%S)] $*" | tee -a "$M" >&2; }
13
+
14
+ USED=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits | awk '{s+=$1} END{print s}')
15
+ if [ "${USED:-0}" -gt 4000 ]; then
16
+ say "REFUSING TO START: ${USED} MiB of GPU memory is in use by someone else."
17
+ say " per-GPU: $(nvidia-smi --query-gpu=index,memory.used --format=csv,noheader | tr '\n' ' ')"
18
+ say " re-run this script once they finish."
19
+ exit 1
20
+ fi
21
+ say "GPUs free (${USED} MiB in use) -- starting"
22
+
23
+ say "=== STAGE 1/3: 131k training ==="
24
+ ./t128_train.sh || { say "training did not complete -- see t128_logs/master.log"; exit 1; }
25
+
26
+ say "=== STAGE 2/3: NIAH eval, 3 models x 6 lengths, all 8 GPUs ==="
27
+ RN=$(cat t128_logs/runnum 2>/dev/null || echo "")
28
+ FIN=""
29
+ [ -n "$RN" ] && FIN=$(ls -t checkpoints_bluscriptcp/rank_0/blumodelcp_run${RN}_step_*.ckpt 2>/dev/null | head -1)
30
+ [ -z "$FIN" ] && FIN=$(ls -t checkpoints_bluscriptcp/rank_0/blumodelcp_run*_step_*.ckpt 2>/dev/null | head -1)
31
+ [ -z "$FIN" ] && { say "no 131k checkpoint -- cannot evaluate"; exit 1; }
32
+ say "t128 = $(basename "$FIN") $(stat -c%s "$FIN") B"
33
+ EXTRA="t128=$(basename "$FIN") t64=t64.ckpt base680=varybatch.ckpt" \
34
+ MODELS="t128 t64 base680" LENS="4096 8192 16384 32744 65512 131000" N=100 \
35
+ RULER_TASKS="niah_single" GPUS=0,1,2,3,4,5,6,7 \
36
+ ./run_ruler.sh || say "eval reported problems -- see ruler_logs/master.log"
37
+
38
+ say "=== STAGE 3/3: upload + verify ==="
39
+ up(){ [ -f "$1" ] || { say " MISSING $1"; return 1; }
40
+ hf upload unparallelled/BluScriptCP "$1" "$2" >>"$L/upload.log" 2>&1
41
+ python - "$1" "$2" <<'V'
42
+ import sys,os
43
+ from huggingface_hub import HfApi
44
+ w=os.path.getsize(sys.argv[1])
45
+ g={f.rfilename:(f.size or 0) for f in HfApi().repo_info("unparallelled/BluScriptCP",files_metadata=True).siblings}.get(sys.argv[2])
46
+ ok=(g==w); print((" VERIFIED " if ok else " *** FAILED ")+f"{sys.argv[2]} local={w:,} remote={g}")
47
+ sys.exit(0 if ok else 1)
48
+ V
49
+ }
50
+ D=$(date -u +%Y-%m-%d); BAD=0
51
+ up "$FIN" "checkpoints/t128_680m_$(basename "$FIN" .ckpt).ckpt" || BAD=$((BAD+1))
52
+ up Data_Loader/Data/mix128/MANIFEST.txt data/mix128_MANIFEST.txt || BAD=$((BAD+1))
53
+ for f in t128_train.sh GO.sh dl128.sh run_ruler.sh; do up "$f" "scripts/$f" || BAD=$((BAD+1)); done
54
+ for g in t128_logs/master.log t128_logs/train.log ruler_logs/master.log; do
55
+ [ -f "$g" ] && { cp -f "$g" "${g}.snap"; up "${g}.snap" "logs/128k_$(basename $g)" || BAD=$((BAD+1)); }; done
56
+ for d in ruler_len*; do [ -f "$d/summary.csv" ] || continue
57
+ up "$d/summary.csv" "evals/$D/${d}_summary.csv" || BAD=$((BAD+1))
58
+ [ -f "$d/depth_summary.csv" ] && { up "$d/depth_summary.csv" "evals/$D/${d}_depth.csv" || BAD=$((BAD+1)); }; done
59
+ say "=== TEARDOWN VERDICT ==="
60
+ [ "$BAD" -eq 0 ] && say "ALL VERIFIED -- SAFE TO TEAR DOWN" || say "*** $BAD failure(s) -- DO NOT TEAR DOWN ***"