Download launch_r3.sh from SlayerLab/gollem-v5-ckpts: direct link, hf CLI and curl.
- Browser
- Download file 2.08 kB
-
https://huggingface.co/SlayerLab/gollem-v5-ckpts/resolve/38bcf33e5f96c6f01efeea4bea008ecbdeb0a83a/launch_r3.sh
- Command line
-
hf download hf://SlayerLab/gollem-v5-ckpts@38bcf33e5f96c6f01efeea4bea008ecbdeb0a83a/launch_r3.sh
-
curl -L -o launch_r3.sh https://huggingface.co/SlayerLab/gollem-v5-ckpts/resolve/38bcf33e5f96c6f01efeea4bea008ecbdeb0a83a/launch_r3.sh
2.08 kB
| # 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" | |