unparallelled commited on
Commit
b102ca2
·
verified ·
1 Parent(s): 2450c40

Upload scripts/ship_live.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. scripts/ship_live.sh +46 -0
scripts/ship_live.sh ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # Ship checkpoints AS THEY APPEAR, in parallel with training. Priority given the
3
+ # 2h deadline: rank_0 of every save (enough for eval + CP_INIT_FROM branching,
4
+ # since ZeRO replicates weights), then ALL 8 ranks of step 500 (a resume needs
5
+ # every rank's .ckpt + .zero_g1). Verifies byte size; deletes nothing.
6
+ set -uo pipefail; cd "$(dirname "$0")"
7
+ export PATH=/root/Adhi/BluTrain/envv/bin:$PATH
8
+ R=unparallelled/BluScriptCP; L=t128b_logs/ship.log; mkdir -p t128b_logs
9
+ say(){ echo "[$(date -u +%H:%M:%S)] $*" | tee -a "$L" >&2; }
10
+ up(){ # local remote
11
+ [ -f "$1" ] || return 1
12
+ hf upload "$R" "$1" "$2" >>"$L" 2>&1
13
+ python - "$R" "$1" "$2" <<'V'
14
+ import sys,os
15
+ from huggingface_hub import HfApi
16
+ w=os.path.getsize(sys.argv[2])
17
+ g={x.rfilename:(x.size or 0) for x in HfApi().repo_info(sys.argv[1],files_metadata=True).siblings}.get(sys.argv[3])
18
+ sys.exit(0 if g==w else 1)
19
+ V
20
+ }
21
+ say "live shipper armed"
22
+ while true; do
23
+ RN=$(cat t128b_logs/runnum 2>/dev/null || ls checkpoints_bluscriptcp/rank_0/ 2>/dev/null | grep -oE 'run[0-9]+' | sort -u | tail -1 | tr -d 'run')
24
+ for s in 100 200 300 400 500; do
25
+ f="checkpoints_bluscriptcp/rank_0/blumodelcp_run${RN}_step_${s}.ckpt"
26
+ [ -f "$f" ] || continue
27
+ [ -f "t128b_logs/.r0_${s}.ok" ] && continue
28
+ sleep 8 # let the write flush
29
+ if up "$f" "checkpoints/t128b_step${s}_rank0.ckpt"; then
30
+ touch "t128b_logs/.r0_${s}.ok"; say "VERIFIED step $s rank0"
31
+ else say "retry step $s rank0"; fi
32
+ done
33
+ # full resumable set for step 500 once it exists on all ranks
34
+ if [ ! -f t128b_logs/.full500.ok ] && \
35
+ [ "$(ls checkpoints_bluscriptcp/rank_*/blumodelcp_run${RN}_step_500.ckpt 2>/dev/null|wc -l)" -ge 8 ]; then
36
+ sleep 10; ok=1
37
+ for r in 0 1 2 3 4 5 6 7; do for e in ckpt zero_g1; do
38
+ up "checkpoints_bluscriptcp/rank_${r}/blumodelcp_run${RN}_step_500.${e}" \
39
+ "checkpoints/t128b_step500_rank${r}.${e}" || ok=0
40
+ done; done
41
+ [ "$ok" = 1 ] && { touch t128b_logs/.full500.ok; say "VERIFIED full resumable step 500 (8 ranks)"; }
42
+ fi
43
+ [ -f t128b_logs/.full500.ok ] && [ -f t128b_logs/.r0_500.ok ] && { say "SHIP COMPLETE"; break; }
44
+ grep -qa 'STOPPED AT 500' t128b_logs/master.log 2>/dev/null && [ -f t128b_logs/.full500.ok ] && break
45
+ sleep 45
46
+ done