laya-browser / code /finetune /run_ctr.sh
cklxx's picture
v19s: WebChain real-site trajectories, format v5, webgym x7 + DAgger, harness fixes; replaces v17s
454b3e6 verified
Raw History Blame Contribute Delete
1.8 kB
#!/bin/bash
# x6c = x6 continued on 30k replayed x6 items + goal-contrast twins (x3); then suite C x2. Runs after the v6 experiment.
cd /home/ckl/projects/S/laya && source env.sh
O=finetune/out; P=.venv/bin/python
until grep -q "V6_DONE\|training interrupted" $O/v6.log; do sleep 60; done
export LAYA_FMT=v5 LAYA_MAXLEN=1024 LAYA_HEAD=768 MAX_TARGETS=40 FINAL_P=0.2 NOUL=1 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True COMPILE=0 CKPT=1
mkdir -p $O/items_ctr $O/items_x6c
LAYA_BASE=$PWD/$O/laya-browser-x6 $P finetune/build_items.py $O/pages.jsonl /dev/null $O/items_ctr/ $O/contrast_cases.jsonl 2>&1 | grep -v Warn | tail -2
$P - <<'PY'
import torch, random
a = torch.load("finetune/out/items_x6/train_items.pt", weights_only=False); b = torch.load("finetune/out/items_ctr/train_items.pt", weights_only=False)
random.Random(7).shuffle(a); items = a[:30000] + b * 3; random.Random(0).shuffle(items)
torch.save(items, "finetune/out/items_x6c/train_items.pt"); print("x6c items: 30000 replay +", len(b), "x3 contrast =", len(items))
PY
echo "== train x6c"
LAYA_BASE=$PWD/$O/laya-browser-x6 $P finetune/train.py $O/items_x6c/train_items.pt $O/laya-browser-x6c 1 2>&1 | grep --line-buffered -E "=== epoch|saved|Error|Traceback"
[ -f $O/laya-browser-x6c/model.safetensors ] || { echo "training interrupted"; exit 0; }
cp $O/laya-browser-x6/rl_agent_config.json /tmp/x6cfg.json; $P - <<'PY'
import json; a=json.load(open("finetune/out/laya-browser-x6c/rl_agent_config.json")); b=json.load(open("/tmp/x6cfg.json"))
a["temperature"]=b.get("temperature", a["temperature"]); json.dump(a, open("finetune/out/laya-browser-x6c/rl_agent_config.json","w"), indent=2)
PY
REPEATS=2 finetune/isolated.sh bash finetune/run_suiteC.sh $PWD/$O/laya-browser-x6c $PWD/$O/laya-browser-x6 2>&1 | grep -E "^=="
echo CTR_DONE