| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -euo pipefail |
|
|
| METHOD=${1:-} |
| BUNDLE=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) |
|
|
| case "$METHOD" in |
| ftb|opd|guided_opd|tcod_b2f|tcod_f2b) ;; |
| *) echo "usage: $0 <ftb|opd|guided_opd|tcod_b2f|tcod_f2b>" >&2; exit 2 ;; |
| esac |
| CFG="$BUNDLE/configs/$METHOD.yaml" |
|
|
| |
| |
| cd "$BUNDLE" |
|
|
| |
| for p in tcod/trinity models/Qwen3-1.7B/config.json models/Qwen3-32B/config.json \ |
| data/scienceworld/train.jsonl data/scienceworld/test.jsonl "$CFG"; do |
| [ -e "$p" ] || { echo "[run] missing $p -- run 'bash scripts/setup.sh' first" >&2; exit 1; } |
| done |
| command -v trinity >/dev/null 2>&1 \ |
| || { echo "[run] 'trinity' CLI not on PATH -- activate the environment used in setup" >&2; exit 1; } |
| command -v java >/dev/null 2>&1 \ |
| || { echo "[run] no 'java' on PATH -- ScienceWorld needs Java 17+" >&2; exit 1; } |
|
|
| |
| |
| cp -R overlay/trinity/. tcod/trinity/ |
|
|
| mkdir -p outputs/tmp outputs/ray_tmp outputs/buffers outputs/checkpoints outputs/logs |
|
|
| |
| |
| |
| |
| if [ "$METHOD" = "ftb" ] && grep -q 'monitor_type: wandb' "$CFG" \ |
| && [ -z "${WANDB_API_KEY:-}" ] && [ ! -f "$HOME/.netrc" ]; then |
| echo "[run] WARNING: configs/ftb.yaml uses wandb but no WANDB_API_KEY / ~/.netrc found." >&2 |
| echo "[run] Run 'wandb login', or change its monitor_type to tensorboard." >&2 |
| fi |
|
|
| |
| if ! ray status >/dev/null 2>&1; then |
| echo "[run] starting a local ray head" |
| ray start --head |
| fi |
|
|
| |
| LOG="outputs/logs/${METHOD}_$(date +%Y%m%d_%H%M%S).log" |
| echo "[run] method=$METHOD" |
| echo "[run] config=$CFG" |
| echo "[run] cwd=$PWD" |
| echo "[run] log=$LOG" |
| trinity run --config "$CFG" 2>&1 | tee "$LOG" |
|
|