# q3s-box queue (2026-10-25): short-prompt (q3s) student, same recipe as q3-box-2b-390 -> 4 short evals + long-prompt # robustness eval -> student_report -> comparison with runs\q3-box-report.json $env:HF_HOME='' $env:HF_HUB_OFFLINE='1' $env:PYTHONIOENCODING='utf-8' Set-Location $py='\Scripts\python.exe' $s='data\style-v1' $g='data\gallery-v1\full-v1' $mix='data\mix-q3-v1\train.q3.clef.short.jsonl' $ck='checkpoints\q3s-box-2b-390' $steps=3687 $st='runs\q3s-box.status.txt' function Log($m) { "$m $(Get-Date -Format s)" | Out-File -Append -Encoding ascii $st } function Gate($what) { Log "$what exit $LASTEXITCODE"; if ($LASTEXITCODE -ne 0) { Log "ABORT after $what"; exit 1 } } Log "queue pid $PID" if (Test-Path $ck) { Log "ABORT: $ck exists"; exit 1 } Log "start train steps=$steps" & $py train.py --data $mix --out $ck --steps $steps --log-every 25 *> runs\train-q3s-box-2b-390.log Gate 'train' $p='runs\q3sbox-pred' Log 'start eval gallery_eval' & $py scripts\eval_student.py --ckpt $ck --data "$g\eval.q3.clef.short.jsonl" --out "$p-gallery-eval.jsonl" --stats "$p-gallery-eval.stats.json" *> "$p-gallery-eval.log" Log "eval gallery_eval exit $LASTEXITCODE" Log 'start eval style_eval' & $py scripts\eval_student.py --ckpt $ck --data "$s\eval.q3.clef.short.jsonl" --out "$p-style-eval.jsonl" --stats "$p-style-eval.stats.json" *> "$p-style-eval.log" Log "eval style_eval exit $LASTEXITCODE" Log 'start eval style_train' & $py scripts\eval_student.py --ckpt $ck --data "$s\train.q3.clef.short.jsonl" --out "$p-style-train.jsonl" --stats "$p-style-train.stats.json" *> "$p-style-train.log" Log "eval style_train exit $LASTEXITCODE" Log 'start eval gallery_train300' & $py scripts\eval_student.py --ckpt $ck --data "$g\train.q3.clef.short.jsonl" --sample 300 --seed 0 --out "$p-gallery-train300.jsonl" --stats "$p-gallery-train300.stats.json" *> "$p-gallery-train300.log" Log "eval gallery_train300 exit $LASTEXITCODE" Log 'start eval style_eval_longprompt' & $py scripts\eval_student.py --ckpt $ck --data "$s\eval.q3.clef.jsonl" --out "$p-style-eval-longprompt.jsonl" --stats "$p-style-eval-longprompt.stats.json" *> "$p-style-eval-longprompt.log" Log "eval style_eval_longprompt exit $LASTEXITCODE" & $py scripts\student_report.py --set "gallery_eval=$p-gallery-eval.jsonl" --set "style_eval=$p-style-eval.jsonl" --set "gallery_train300=$p-gallery-train300.jsonl" --set "style_train=$p-style-train.jsonl" --gap 'gallery_train_vs_eval=gallery_train300,gallery_eval' --gap 'style_train_vs_eval=style_train,style_eval' --gap 'gallery_vs_style_eval=gallery_eval,style_eval' --json runs\q3s-box-report.json *> runs\q3s-box-report.log Log "report exit $LASTEXITCODE" & $py scripts\student_report.py --set "style_eval_longprompt=$p-style-eval-longprompt.jsonl" --json runs\q3s-box-longprompt-report.json *> runs\q3s-box-longprompt-report.log Log "report longprompt exit $LASTEXITCODE" & $py scripts\compare_reports.py --report 'q3_long=runs\q3-box-report.json' --report 'q3s_short=runs\q3s-box-report.json' --extra 'q3s_ckpt_on_long_style_eval=runs\q3s-box-longprompt-report.json:style_eval_longprompt' --json runs\q3s-vs-q3-compare.json --md runs\q3s-vs-q3-compare.md *> runs\q3s-vs-q3-compare.log Log "compare exit $LASTEXITCODE" Log 'done'