51 lines
2.6 KiB
Markdown
51 lines
2.6 KiB
Markdown
# Arena
|
|
|
|
RL environments from Lumbridge. Apache-2.0, built to the [`verifiers`](https://github.com/PrimeIntellect-ai/verifiers)
|
|
v1 spec so they install and run on the Prime Intellect Environments Hub unchanged.
|
|
|
|
An environment here is an eval you take the gradient of. That is not a rename — it changes
|
|
what the artifact has to carry. A benchmark's score is its output, so a benchmark can be a
|
|
number in a table. An environment's score is the input to the next weight update, so it has
|
|
to be reproducible, gameable-proof, and traceable back to the code that produced it, or the
|
|
model that trained on it inherits whatever was wrong with it silently.
|
|
|
|
Three rules follow, and every environment in this repository is held to them:
|
|
|
|
1. **Graded on what the model did not see.** Rules, plans and policies fitted to visible
|
|
examples pass on visible examples. If a held-out slice cannot be generated, the
|
|
environment does not measure generalisation and does not ship.
|
|
2. **No single-sided reward.** Every reward has a counterweight in the same episode. A
|
|
reward you can max by doing the crude thing is a reward that teaches the crude thing.
|
|
3. **A reachable ceiling and a zero floor, demonstrated.** Each environment ships the check
|
|
that shows an oracle scores 1.0 and inaction scores 0.0. An unreachable component is
|
|
dead weight in the gradient; a floor above zero pays for doing nothing.
|
|
|
|
## Environments
|
|
|
|
| | |
|
|
|---|---|
|
|
| [`redaction-pressure`](environments/redaction_pressure) | Write redaction rules for a ticket corpus. Source-character provenance makes partial edits residual secrets, while the clean gate requires character-for-character preservation of all non-secret source content. Hostile regexes share one episode budget. |
|
|
|
|
## Running one
|
|
|
|
```bash
|
|
uv run --project environments/redaction_pressure eval @ configs/redaction_pressure.toml --model <model-id>
|
|
```
|
|
|
|
Run its release gate from the repository root:
|
|
|
|
```bash
|
|
uv lock --project environments/redaction_pressure --check
|
|
uv sync --project environments/redaction_pressure --frozen
|
|
uv run --project environments/redaction_pressure \
|
|
python -m unittest discover -s environments/redaction_pressure/tests -v
|
|
```
|
|
|
|
## Why these, and not benchmark reimplementations
|
|
|
|
The Hub is filling with reimplementations, which are worth doing and are not what we have.
|
|
What Lumbridge has is a set of tools aimed at verifiable work. Those gates make good
|
|
rewards only after their ceiling, floor, adversarial cases, and replay identity are
|
|
committed beside the environment. `redaction-pressure` is the first small contract for
|
|
that path; Bench/Forge integration remains future work rather than an implied dependency.
|