pactbench / README.md
BBoran's picture
Publish current portable PACTBench release
f1fc3a0 verified
|
Raw
History Blame Contribute Delete
4.9 kB
# PACTBench
PACTBench evaluates a layered boss-control system across **V Rising**,
**Hollow Knight**, and **The Binding of Isaac**:
- **L1** converts causal RGB history into a compact, decision-facing belief.
- **L2** selects among anonymous skill options from the belief and the visible
skill-mechanics descriptions.
This directory is the release unit for code, checkpoints, published metrics,
and reproducibility metadata. Machine-readable publication state lives in
[`registry/registry.json`](registry/registry.json); prose never overrides the
registry or the referenced metric files.
## Current release
The published snapshot uses fight-disjoint splits, the compact belief
interface, balanced-v3 L2 sampling, HP-free-v6 prompts, anonymous option IDs,
Gemma-4-E2B-it at temperature zero, and deterministic sample seed 0.
### L1 official evaluation
| Game | Test rows | Distance MAE | Angle MAE | Distance-bin accuracy | Angle-bin accuracy |
|---|---:|---:|---:|---:|---:|
| V Rising | 8,075 | 0.2620 | 11.7599Β° | 0.8320 | 0.7201 |
| Hollow Knight | 8,360 | 0.4680 | 3.6527Β° | 0.7261 | 0.9646 |
| Isaac | 1,784 | 9.0263 px | 29.6388Β° | 0.9036 | 0.8352 |
Isaac distance is measured in pixels and is not directly comparable to the
engine-unit distance used by the other two games.
### L2 natural-ready semantic intervention
| Game | Valid paired states | Mean menu size | Menu-aware chance | Description-follow |
|---|---:|---:|---:|---:|
| V Rising | 200 | 4.875 | 21.93% | 67.0% |
| Hollow Knight | 200 | 5.370 | 18.78% | 79.5% |
| Isaac | 122 | 2.238 | 46.04% | 83.6% |
The 200 source states are fixed before L2 outputs are read. Isaac has 122
valid semantic-swap pairs because the predefined intervention requires at
least two tracker-ready options; singleton menus are excluded before outcome
aggregation. The fixed two-choice controls are reported separately in
[`docs/EXPERIMENTS.md`](docs/EXPERIMENTS.md).
The L1 visual comparison is a comparison of complete training schemes:
PACT-L1 is task-trained end to end, whereas DINOv2-S and VideoMAE-B are frozen
pretrained backbones with trained probes. It is not an isolated backbone claim.
V Rising also includes a separate accepted L1 comparison experiment that trains
DINOv2-S end to end on the same ordered 18,068/8,075 rows and the matched PACT
two-stage recipe. In this configuration it remains less accurate and 48.79%
slower at batch 1 than PACT-L1; the evidence and claim scope are recorded in
[`docs/EXPERIMENTS.md`](docs/EXPERIMENTS.md#v-rising-end-to-end-dinov2-s-l1-comparison-experiment).
## Quick start
```bash
cd pactbench
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 registry/status.py
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -v
python3 pact/validate_pactbench.py --require_v5
```
The full artifact gate should end with:
```text
PACTBench gate: PASS (7382 checks)
```
Large raw data and RGB caches are exposed through `data -> ../data` and
`out -> ../out`. See the reproducibility guide before rebuilding or moving
them.
## Documentation
| Document | Purpose |
|---|---|
| [`docs/DATA.md`](docs/DATA.md) | Data source, layout, schema, split, and audit rules |
| [`docs/EXPERIMENTS.md`](docs/EXPERIMENTS.md) | Exact protocols, published results, and claim scope |
| [`docs/REPRODUCE.md`](docs/REPRODUCE.md) | Environment, commands, expected artifacts, and release gate |
| [`docs/MAINTAINERS.md`](docs/MAINTAINERS.md) | Handoff, review isolation, registry update, and release procedure |
| [`games/vrising/README.md`](games/vrising/README.md) | V Rising entry points and artifacts |
| [`games/hk/README.md`](games/hk/README.md) | Hollow Knight entry points and artifacts |
| [`games/isaac/README.md`](games/isaac/README.md) | Isaac entry points and artifacts |
| [`pipelines/l2/llm_judge/README.md`](pipelines/l2/llm_judge/README.md) | External decision-quality judge protocol |
## Repository layout
```text
pactbench/
β”œβ”€β”€ games/{vrising,hk,isaac}/ # per-game configuration and thin entry points
β”œβ”€β”€ pipelines/ # shared shell pipelines
β”œβ”€β”€ pact/ # shared Python implementation
β”œβ”€β”€ ckpt/ # published L1 checkpoints
β”œβ”€β”€ results/ # published row-level and aggregate artifacts
β”œβ”€β”€ registry/ # machine-readable publication snapshot
β”œβ”€β”€ schemas/ # cross-game schemas
β”œβ”€β”€ tests/ # regression and provenance tests
β”œβ”€β”€ data -> ../data # large source/processed data
└── out -> ../out # rebuildable caches
```
The decision-quality LLM judge is intentionally run on a separate machine.
Its absence from the local deterministic gate does not change the publication
status of the local L1 and L2 intervention artifacts.