gollem-v5-ckpts / launch_r3.sh
Maggio33's picture
RB4 runda 3: blend_rb4/extract/launch_r3 + build_v2_blend fix (eot z tokenizera, brak klucza synth = stop); skan egress GREEN
c91c9ec verified
Raw History Blame
2.08 kB
#!/bin/bash
# launch_r3.sh — RB4 runda 3: fork z ckpt 320k, config 1:1 jak control, rozni sie TYLKO danymi.
# Czeka az obecny trening na podzie sie skonczy (WAITPID) i az dane beda kompletne (manifest),
# weryfikuje krok bazy (ck["step"] == 320000), dopiero wtedy startuje trener + autopush + pusher.
#
# Uzycie: bash launch_r3.sh WORK DATA OUT BASE HFSUB NAME WAITPID
set -euo pipefail
WORK="$1"; DATA="$2"; OUT="$3"; BASE="$4"; HFSUB="$5"; NAME="$6"; WAITPID="$7"
cd "$WORK"
echo "[$(date -u +%H:%M:%SZ)] launch_r3: czekam na pid $WAITPID i $DATA/train.bin.json"
while kill -0 "$WAITPID" 2>/dev/null; do sleep 20; done
while [ ! -f "$DATA/train.bin.json" ]; do sleep 20; done
[ -e "$DATA/val.bin" ] || { echo "!! brak $DATA/val.bin"; exit 1; }
STEP=$(python3 -c "import torch,sys; print(int(torch.load(sys.argv[1], map_location='cpu')['step']))" "$BASE")
[ "$STEP" = "320000" ] || { echo "!! baza $BASE ma step $STEP, oczekiwano 320000"; exit 1; }
mkdir -p "$OUT"
[ -e "$OUT/ckpt.pt" ] && { echo "!! $OUT/ckpt.pt juz istnieje, nie nadpisuje"; exit 1; }
cp "$BASE" "$OUT/ckpt.pt"
echo "[$(date -u +%H:%M:%SZ)] baza OK (step $STEP), start treningu $NAME"
nohup python -u train_gpt_ref.py --data-dir "$DATA" --out-dir "$OUT" \
--n-layer 14 --n-embd 576 --n-head 9 --block 1024 --vocab 12288 --norm rmsnorm --pos rope \
--rope-theta 100000.0 --ffn swiglu --ffn-mult 2.667 --value-residual --qk-norm \
--batch 32 --steps 400000 --lr 6e-4 --min-lr 6e-5 --warmup 2000 --wd 0.1 \
--optimizer muon --muon-lr 0.02 --dtype uint16 --seed 1337 \
--ckpt-every 20000 --eval-every 999999 --log-every 200 \
--events-jsonl "$OUT/events.jsonl" --compile --resume > "$OUT/train.log" 2>&1 &
echo "TRAIN-PID=$!"
sleep 5
nohup python -u ckpt_autopush.py "$OUT/train.log" "$OUT/ckpt.pt" "$HFSUB" > "$OUT/autopush.log" 2>&1 &
echo "AUTOPUSH-PID=$!"
set -a; . /root/.fabryka.env; set +a
nohup python -u fabryka_push.py "$OUT/events.jsonl" "$NAME" gollem-v5 13107200000 > "$OUT/fabryka_push.log" 2>&1 &
echo "PUSHER-PID=$!"
echo "[$(date -u +%H:%M:%SZ)] launch_r3: wszystko uruchomione"