Upload scripts/GO.sh with huggingface_hub
Browse files- 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 ***"
|