Download scripts/cut400.sh from unparallelled/BluScriptCP: direct link, hf CLI and curl.
- Browser
- Download file 1.52 kB
-
https://huggingface.co/unparallelled/BluScriptCP/resolve/main/scripts/cut400.sh
- Command line
-
hf download hf://unparallelled/BluScriptCP/scripts/cut400.sh
-
curl -L -o cut400.sh https://huggingface.co/unparallelled/BluScriptCP/resolve/main/scripts/cut400.sh
1.52 kB
| # Stop the AdamW control arm cleanly once step 400 is checkpointed. | |
| set -uo pipefail; cd "$(dirname "$0")" | |
| say(){ echo "[$(date -u +%H:%M:%S)] $*"; } | |
| LOG=p1_const_adamw_logs/train.log | |
| CK=checkpoints_const_adamw/rank_0/blumodelcp_run2_step_400.ckpt | |
| SCRIPT_PID=30792 | |
| say "waiting for step 400 checkpoint to be written safely..." | |
| for i in $(seq 1 360); do | |
| grep -qa 'Saved: .*step_400\.ckpt (safely)' "$LOG" && { say "step 400 checkpoint confirmed safe"; break; } | |
| kill -0 "$SCRIPT_PID" 2>/dev/null || { say "chain already exited"; break; } | |
| sleep 10 | |
| done | |
| grep -qa 'Saved: .*step_400\.ckpt (safely)' "$LOG" || { say "ABORT: no safe step-400 ckpt, leaving run alone"; exit 1; } | |
| sleep 5 # let the .zero_g1 shard flush | |
| say "sizes: $(stat -Lc%s "$CK" 2>/dev/null) + $(stat -Lc%s "${CK%.ckpt}.zero_g1" 2>/dev/null)" | |
| # parent script first so it cannot advance to the next stage, then the trainer | |
| kill "$SCRIPT_PID" 2>/dev/null && say "stopped abl_phase1.sh ($SCRIPT_PID)" | |
| for p in $(nvidia-smi --query-compute-apps=pid --format=csv,noheader); do | |
| kill "$p" 2>/dev/null && say "TERM trainer $p" | |
| done | |
| for i in $(seq 1 30); do | |
| [ -z "$(nvidia-smi --query-compute-apps=pid --format=csv,noheader)" ] && break; sleep 2; done | |
| for p in $(nvidia-smi --query-compute-apps=pid --format=csv,noheader); do | |
| kill -9 "$p" 2>/dev/null && say "KILL -9 $p"; done | |
| sleep 3 | |
| say "GPU now: $(nvidia-smi --query-gpu=memory.used --format=csv,noheader)" | |
| say "last step: $(grep '^step' "$LOG" | tail -1)" | |
| say "CUT_DONE" | |