File size: 2,877 Bytes
2bc1c6b 3e04895 9bd7482 3e04895 9bd7482 78bc8da 3e04895 9bd7482 78bc8da 9bd7482 78bc8da 3e04895 78bc8da 3e04895 9bd7482 78bc8da 3e04895 78bc8da 812d15a 78bc8da 3e04895 9bd7482 78bc8da 3e04895 2bc1c6b 3e04895 78bc8da 3e04895 78bc8da 3e04895 9bd7482 78bc8da 3e04895 78bc8da | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | .PHONY: setup smoke collect build-data distill train-s1 calibrate eval eval-v2 eval-25 eval-cpu fetch-games agent-local push-hf test clean
PY ?= python3.13
setup: ## create venv and install deps (Python 3.12+ required)
$(PY) -m venv .venv
.venv/bin/pip install -U pip
.venv/bin/pip install -r requirements.txt
@echo ">> done. activate with: source .venv/bin/activate"
smoke: ## FULL local bring-up on the built-in mock game (no GPU, no downloads)
$(PY) data/collect_selfplay.py --config configs/collect.yaml
$(PY) data/build_dataset.py --in data/traces --out data/dataset
$(PY) train/distill_alignment.py --config configs/train.yaml
$(PY) train/train_system1.py --config configs/train.yaml
$(PY) train/calibrate_rlcd.py --config configs/train.yaml
$(PY) train/evaluate_local.py --config configs/train.yaml --games mock-pushbox
collect: ## self-play trace collection (mock game or public games)
$(PY) data/collect_selfplay.py --config configs/collect.yaml
build-data: ## traces -> decision-question training samples
$(PY) data/build_dataset.py --in data/traces --out data/dataset
distill: ## stage A: align student (image+text) states with the frozen teacher's vision tower
$(PY) train/distill_alignment.py --config configs/train.yaml
train-s1: ## stage B: train System-1 decision heads (choice CE, NanoJev recipe)
$(PY) train/train_system1.py --config configs/train.yaml
calibrate: ## stage C: RLCD calibration + temperature fitting (absorbed from Laya)
$(PY) train/calibrate_rlcd.py --config configs/train.yaml
eval: ## evaluate the hybrid agent (mock game by default)
$(PY) train/evaluate_local.py --config configs/train.yaml --games mock-pushbox
eval-v2: ## one-command eval of the released v2 checkpoint (auto backend; see ops/run_eval.py)
$(PY) ops/run_eval.py --checkpoint hf:tchbcb/qwenjev@t4_assets_v2/checkpoints --games mock
eval-25: ## evaluate on the 25 public games (needs arc-agi + environment_files, see train.md §4.1)
$(PY) ops/run_eval.py --checkpoint hf:tchbcb/qwenjev@t4_assets_v2/checkpoints --games all25
eval-cpu: ## CPU harness test (tiny backend, no checkpoint, 60 actions)
$(PY) ops/run_eval.py --backend tiny --no-checkpoint --games mock --max-actions 60
fetch-games: ## cache all 25 public games locally (anonymous arcade key, ~3MB, no Kaggle account)
$(PY) ops/fetch_games.py
agent-local: ## run the hybrid agent locally via the ARC-AGI-3-Agents runner
$(PY) ../ARC-AGI-3-Agents/main.py --agent=qwenjevagent --game=ls20
push-hf: ## push this repo to HuggingFace (HF_TOKEN from env or .secrets)
$(PY) scripts/push_hf.py
test: ## unit tests (CPU-only, no downloads)
$(PY) -m pytest tests -q
clean:
rm -rf __pycache__ .pytest_cache build data/traces data/dataset eval_report.json
|