Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Contributing to PostTrain Arena

<!-- markdownlint-disable MD013 MD060 -->

PostTrain Arena is a proposed NeurIPS 2026 competition: teams
contribute containerized RL environments, the organizers run a managed
SFT→GRPO post-training pipeline on **each team's corpus**, and entries
Expand Down Expand Up @@ -82,12 +84,13 @@ baseline trained with the identical recipe, with paired bootstrap
confidence intervals. Track 1 packages are evaluated by pass@1 of a
frozen reference agent — no training, no internet.

Qwen3.5-9B is the checked-in organizer recipe. The current
eight-train/three-eval Data Agent canary completed the orchestration path with
held-out pass rate unchanged at `1/3`, but a post-run audit invalidated its old
GRPO prompt reconstruction. A corrected matched-domain rerun and full-scale
validation remain the current targets while the final competition compute
budget is frozen. See
Qwen3.5-9B is the checked-in organizer recipe. The corrected 16-train/14-eval
Data Agent canary completed strict teacher coverage, one-epoch LoRA SFT,
128 OpenCode GRPO rollouts, and healthy held-out evaluation. Pass rate improved
from `8/14` to `11/14` with zero regressions. This validates the executable
recipe and records exploratory same-domain uplift; it does not establish
generalization. The participant-scale run and sealed private suite remain
organizer-only competition stages. See
[`docs/training-pipeline.md`](./docs/training-pipeline.md) for exact executable
behavior and evidence boundaries.

Expand Down Expand Up @@ -116,9 +119,11 @@ part of the contract.
### Step-by-step

1. **Copy the template** into your team entry:

```bash
cp -R starting-kit/template submissions/your-team/envs/your-env-name
```

Pick a name following `<env-or-domain>-<short-description>` — for
example `gmail-workflow-delegation`. Category, modality, and any
safety qualifier belong in the frontmatter, not the directory name.
Expand All @@ -128,6 +133,7 @@ part of the contract.
layouts.
3. **Validate locally** — everything runs with just python3 and
docker, no benchflow install:

```bash
# Structural — fast, no Docker required
python3 scripts/check_task.py submissions/your-team/envs
Expand All @@ -139,6 +145,7 @@ part of the contract.
# Empty trial — prove the verifier rejects a do-nothing run
scripts/run_local.sh submissions/your-team/envs/your-env-name --skip-oracle
```

Get all four green before opening a PR: the oracle replay must
score 1.0 and the empty trial must not.
4. **Open a pull request** adding or updating your team entry. In the
Expand Down
50 changes: 30 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ The open arena for post-training: contribute agentic RL environments, then measu
**[Website](https://posttrain.com)** · **[Authoring spec](https://posttrain.com/docs/spec)** · **[Training pipeline](./docs/training-pipeline.md)** · **[Architecture status](./docs/architecture-status.md)** · **[Contributing](./CONTRIBUTING.md)** · **[Discord](https://discord.gg/mZ9Rc8q8W3)**

> [!IMPORTANT]
> PostTrain Arena is a proposed NeurIPS 2026 competition. The checked-in organizer recipe now targets `Qwen/Qwen3.5-9B`, uses `Qwen/Qwen3.5-397B-A17B` teacher rollouts, and runs one-epoch LoRA SFT followed by LoRA GRPO. Both the older Qwen3-4B path and a Qwen3.5 Data Agent canary have end-to-end execution evidence; neither has yet demonstrated held-out model-quality lift.
> PostTrain Arena is a proposed NeurIPS 2026 competition. The checked-in
> organizer recipe targets `Qwen/Qwen3.5-9B`, uses
> `Qwen/Qwen3.5-397B-A17B` teacher rollouts, and runs one-epoch LoRA SFT
> followed by LoRA GRPO through OpenCode. An exploratory same-domain public
> canary observed a pass-rate increase from `8/14` to `11/14`;
> competition-scale generalization and sealed-suite claims still require the
> private organizer run.

## How it works

Expand Down Expand Up @@ -38,9 +44,13 @@ The headline track rewards environments that teach capabilities which transfer b

## Public implementation status

The checked-in implementation now includes the full public-data organizer
recipe plus a live Qwen3.5 eight-train/three-eval canary. Competition-scale
execution, measured lift, and the sealed evaluation remain pending.
The checked-in implementation now includes the full public-data reference
recipe plus an exploratory Qwen3.5 16-train/14-eval canary. The same pipeline
is used for competition entries by replacing the training dataset/task list
with the participant corpus and the public eval dataset/task list with the
organizer's sealed internal set. Competition-scale execution and sealed
evaluation remain pending; the public canary records a same-domain pass-rate
increase, not a generalization result.

| Surface | Current public status |
| --- | --- |
Expand All @@ -49,24 +59,23 @@ execution, measured lift, and the sealed evaluation remain pending.
| OpenCode agent harness | **Implemented end to end** — teacher collection, baseline/gate/final eval, benchmark matrices, and TRL custom GRPO rollouts use OpenCode; TRL synchronizes the pinned base and each trained policy to the shared vLLM endpoint |
| Public data | **Available** — [2,238 training tasks](https://huggingface.co/datasets/benchflow/data_agent_rl_environment_train) and [366 held-out evaluation tasks](https://huggingface.co/datasets/benchflow/data_agent_rl_environment_eval) in native `task.md` format |
| OpenEnv protocol path | **Implemented** — served adapter, typed client, lifecycle tests, Docker parity validation, and a native-dataset end-to-end smoke |
| HF Jobs execution | **Implemented** — portable UV job bundles, pinned code refs, named-secret boundaries, status inspection, and Hub publishing; live scheduler allocation currently awaits HF credits |
| HF Jobs handoff | **Implemented; current topology not scheduler-validated** — portable UV job bundles, pinned code refs, named-secret boundaries, status inspection, and Hub publishing are implemented; July 11 scheduler attempts were credit-blocked, and the Qwen3.5/OpenCode topology still needs a paid HF Jobs run |
| Continuous leaderboard | **Implemented** — atomic Hub dataset records and a deployable Gradio Space |
| Multi-benchmark evaluation | **Implemented** — one base/final checkpoint pair can be scored across pinned Data Agent and SkillsBench suites |
| Qwen3.5-9B organizer recipe | **Implemented; corrected live rerun in progress** — full 2,238-train/366-eval config is checked in; the 8x3 run proved orchestration but exposed a GRPO prompt-ID mismatch that this branch fixes |
| Demonstrated model-quality lift | **Not yet** — completed smokes validated system mechanics, not learning gains |
| Qwen3.5-9B organizer recipe | **Implemented and live canary validated** — full 2,238-train/366-eval public config is checked in; the corrected exact-ID 16x14 run completed SFT, 128 GRPO rollouts, final synchronization, and evaluation |
| Observed canary uplift | **Exploratory same-domain evidence** — `8/14 → 11/14` (`+21.4` percentage points), with zero task regressions; the slice was diagnostic rather than pre-registered and the paired 95% interval includes zero |

> [!NOTE]
> On July 10, 2026, a real one-train/one-held-out run completed snapshotting, baseline evaluation, verifier-approved teacher collection, LoRA SFT, a forced GRPO step, final evaluation, and artifact publication through the earlier OpenEnv/TRL evaluation path. Scores remained `0.0 → 0.0`, so this is evidence of end-to-end operability—not quality improvement and not validation of the newer OpenCode evaluation path. See the [native-dataset OpenEnv smoke report](https://github.com/benchflow-ai/posttrainarena/blob/main/docs/native-dataset-openenv-smoke.md).
> On July 10, 2026, a real one-train/one-held-out run completed snapshotting, baseline evaluation, verifier-approved teacher collection, LoRA SFT, a forced GRPO step, final evaluation, and artifact publication through the earlier OpenEnv/TRL evaluation path. Scores remained `0.0 → 0.0`, so this is evidence of end-to-end operability—not quality improvement and not validation of the newer OpenCode evaluation path. See the [native-dataset OpenEnv smoke report](./docs/native-dataset-openenv-smoke.md).
>
> On July 14, 2026, an eight-training-task/three-held-out-task Qwen3.5-9B
> canary completed the current Docker + OpenCode path, including four verified
> teacher trajectories, one-epoch LoRA SFT, 16 OpenCode GRPO rollouts,
> checkpoint synchronization, and final held-out evaluation. Baseline, SFT,
> and final held-out pass rate each measured `1/3`, so delta remained `0.0`.
> A post-run audit found that the historical GRPO parser retokenized prompts
> differently from the serving endpoint, so this run is not valid GRPO
> learning evidence. The corrected path uses exact served IDs and policy
> attestation.
> On July 15, 2026, the corrected Qwen3.5-9B Docker + OpenCode run used 16
> training task IDs and 14 disjoint evaluation task IDs from the same red-wine
> source dataset. It completed strict `16/16` teacher coverage, 63 SFT rows,
> one LoRA SFT epoch, 128 OpenCode GRPO rollouts, finite nonzero LoRA updates,
> and a healthy final evaluation. Pass rate increased `8/14 → 11/14`, with zero
> regressions. This diagnostic slice validates the update path but is not
> evidence of broad generalization. The earlier July 14 soccer canary is
> retained in the evidence report as historical orchestration-only data.
> See the
> [Qwen3.5 Data Agent canary](./docs/qwen35-data-agent-e2e-canary.md).

Expand All @@ -79,7 +88,7 @@ For compatibility details and evidence boundaries, use [Architecture and impleme
| [`starting-kit/`](./starting-kit) | Task template and organizer-authored examples |
| [`submissions/`](./submissions) | Team entries and `submission.yaml` contract |
| [`scripts/`](./scripts) | Self-contained structural checks and local Docker harness |
| [`pipelines/benchflow-task-posttrain/`](./pipelines/benchflow-task-posttrain) | Public BenchFlow + OpenEnv + TRL training implementation |
| [`pipelines/benchflow-task-posttrain/`](./pipelines/benchflow-task-posttrain) | Public BenchFlow + OpenCode + TRL training implementation and standalone OpenEnv adapter |
| [`docs/`](./docs) | Architecture, operator guide, and validation evidence |

The examples under `starting-kit/` are reference material, not competition entries.
Expand Down Expand Up @@ -110,17 +119,18 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) for the submission workflow, validation

## Documentation

- [Documentation map](./docs/README.md)
- [Task authoring specification](https://posttrain.com/docs/spec)
- [Architecture and implementation status](./docs/architecture-status.md)
- [Training pipeline operator guide](./docs/training-pipeline.md)
- [OpenCode GRPO rollout contract](./docs/opencode-grpo.md)
- [OpenCode SFT-to-GRPO smoke](./docs/opencode-grpo-smoke.md)
- [Qwen3.5 OpenCode teacher canary](./docs/qwen35-opencode-teacher-canary.md)
- [Qwen3.5 Data Agent SFT-to-GRPO canary](./docs/qwen35-data-agent-e2e-canary.md)
- [Qwen3.5 Data Agent SFT-to-GRPO validation](./docs/qwen35-data-agent-e2e-canary.md)
- [OpenCode evaluation canary](./docs/opencode-evaluation-canary.md)
- [Hugging Face Jobs and leaderboard handoff](./docs/hf-jobs.md)
- [HF handoff validation report](./docs/hf-jobs-validation.md)
- [Native-dataset OpenEnv smoke report](https://github.com/benchflow-ai/posttrainarena/blob/main/docs/native-dataset-openenv-smoke.md)
- [Native-dataset OpenEnv smoke report](./docs/native-dataset-openenv-smoke.md)
- [Starting-kit guide](./starting-kit/README.md)
- [Team submission guide](./submissions/README.md)
- [Security](./SECURITY.md) · [Support](./SUPPORT.md) · [Code of conduct](./CODE_OF_CONDUCT.md)
Expand Down
14 changes: 9 additions & 5 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,20 @@ Security-sensitive surfaces include:
- provider and Hugging Face credentials
- private held-out evaluation data
- generated trajectories, checkpoints, and model artifacts
- future protocol adapters, including any OpenEnv server/client boundary
- protocol adapters, including the implemented OpenEnv server/client boundary

Never commit secrets, raw provider responses containing secrets, checkpoints,
private eval tasks, or unreviewed job dumps. Use environment variables or a
secret manager, pin external revisions, and keep generated runs in ignored
directories.

The current repository has no OpenEnv server. Any future adapter must preserve
sandbox isolation across resets, avoid exposing verifier secrets or private
evaluation data through observations/state, and include an end-to-end security
test before compatibility is claimed.
The repository includes `posttrainarena-train openenv-serve`, which wraps
BenchFlow-backed tasks behind the OpenEnv client/server protocol. Operators
must keep private task snapshots and verifier credentials server-side, bind the
raw service to loopback or a private network, and place any remote access behind
encrypted authenticated ingress plus network allowlisting. The command has no
built-in authentication and must never be exposed directly to the public
internet. Preserve sandbox isolation across resets and run the lifecycle plus
Docker-parity tests before changing this boundary.

The competition is a proposal and does not currently provide a production SLA.
16 changes: 10 additions & 6 deletions SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@ Use the channel that matches the request:

- **Environment authoring and task-contract questions:** open a GitHub issue
with a minimal task-package example, or ask in the project Discord.
- **Training-pipeline bugs:** open a GitHub issue with the recipe revision, task
IDs, command, sanitized logs, and whether the failure reproduces with
`--dry-run`.
- **Training-pipeline bugs:** open a GitHub issue with the recipe revision,
redacted or public task IDs, command, sanitized logs, and whether the failure
reproduces with `--dry-run`. Never include sealed-eval IDs or private task
contents.
- **OpenEnv integration:** first check
[`docs/architecture-status.md`](docs/architecture-status.md). Compatibility is
not currently implemented; proposals should include a real OpenEnv
client/server lifecycle and isolation test rather than only format conversion.
[`docs/architecture-status.md`](docs/architecture-status.md). The served
adapter, typed client, lifecycle tests, and Docker parity path are
implemented. Public bug reports may include the sanitized `openenv-serve`
command and environment backend, but must redact private task IDs, state
contents, credentials, and artifact paths. Report any possible private-data
exposure through the security channel below.
- **Competition rules or private submission questions:** email
`labs@benchflow.ai`.
- **Security, leaked credentials, sandbox escapes, or private eval exposure:**
Expand Down
27 changes: 19 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,34 @@
# Documentation map

<!-- markdownlint-disable MD013 MD060 -->

| Document | Audience | Purpose |
|---|---|---|
| [`../README.md`](../README.md) | Everyone | Competition overview, repository map, and implementation status |
| [`architecture-status.md`](architecture-status.md) | Everyone | Canonical architecture, ownership boundaries, compatibility matrix, and roadmap |
| [`../CONTRIBUTING.md`](../CONTRIBUTING.md) | Contributors | Submission rules, environment authoring, reviews, and pipeline contributions |
| [`training-pipeline.md`](training-pipeline.md) | Organizers and researchers | Canonical BenchFlow + TRL operator guide, configuration, execution, artifacts, and evidence limits |
| [`hf-jobs.md`](hf-jobs.md) | Organizers and Hugging Face collaborators | Submission-to-recipe bridge, HF UV Jobs, artifact publication, multi-benchmark evaluation, and leaderboard hosting |
| [`hf-jobs-validation.md`](hf-jobs-validation.md) | Reviewers and operators | H100 wrapper evidence, Hub outputs, live Space, and the current HF Jobs credit blocker |
| [`qwen35-opencode-teacher-canary.md`](qwen35-opencode-teacher-canary.md) | Reviewers and operators | Real Qwen3.5-397B OpenCode rollout, trajectory, and TRL conversion evidence |
| [`qwen35-data-agent-e2e-canary.md`](qwen35-data-agent-e2e-canary.md) | Reviewers and operators | Real Qwen3.5-9B LoRA SFT, OpenCode GRPO, synchronization, and held-out score evidence |
| [`hf-jobs-validation.md`](hf-jobs-validation.md) | Reviewers and operators | Historical H100 wrapper evidence, Hub outputs, live Space, and the July 11 HF Jobs credit blocker |
| [`opencode-grpo.md`](opencode-grpo.md) | Operators and trainer authors | Current OpenCode rollout, bridge, exact-token, synchronization, and GRPO update contract |
| [`opencode-evaluation-canary.md`](opencode-evaluation-canary.md) | Reviewers and operators | Historical single-task OpenCode evaluator evidence |
| [`opencode-grpo-smoke.md`](opencode-grpo-smoke.md) | Reviewers and operators | Historical Qwen3-4B OpenCode SFT-to-GRPO plumbing smoke |
| [`native-dataset-openenv-smoke.md`](native-dataset-openenv-smoke.md) | Reviewers and operators | Historical native-dataset OpenEnv execution evidence |
| [`qwen35-opencode-teacher-canary.md`](qwen35-opencode-teacher-canary.md) | Reviewers and operators | Historical single-task Qwen3.5-397B-A17B OpenCode rollout, trajectory, and TRL conversion evidence |
| [`qwen35-data-agent-e2e-canary.md`](qwen35-data-agent-e2e-canary.md) | Reviewers and operators | Qwen3.5-9B LoRA SFT, OpenCode GRPO, synchronization, and exploratory same-domain score evidence |
| [`../starting-kit/README.md`](../starting-kit/README.md) | Environment authors | Task package template and worked examples |
| [`../submissions/README.md`](../submissions/README.md) | Teams | Team-entry layout and submission manifest |
| [`../SECURITY.md`](../SECURITY.md) | Security reporters | Private vulnerability reporting and secret-handling expectations |
| [`../SUPPORT.md`](../SUPPORT.md) | Users | Where to ask usage, competition, and incident questions |
| [`../CODE_OF_CONDUCT.md`](../CODE_OF_CONDUCT.md) | Contributors | Community participation and enforcement expectations |

The final competition budget and sealed evaluation remain draft. The
Qwen3.5-9B implementation under `pipelines/benchflow-task-posttrain/` defines
executable behavior, while
The final competition budget and sealed evaluation remain draft. The public
reference recipe uses the pinned 2,238-task train and 366-task eval datasets;
competition recipes replace those with a participant training corpus and the
organizer's internal evaluation tasks. The Qwen3.5-9B implementation under
`pipelines/benchflow-task-posttrain/` defines executable behavior, while
[`architecture-status.md`](architecture-status.md) defines compatibility and
roadmap status. OpenEnv and HF Jobs are implemented by the public pipeline;
competition-scale recipes and private final evaluation remain draft.
roadmap status. OpenEnv and HF Jobs are implemented by the public pipeline. An
exploratory 16-train/14-eval same-domain run observed `8/14 → 11/14`; full
public-reference execution, competition generalization, and private-final
evidence remain pending.
Loading