{"data":{"kind":"file","path":"README.md","version_id":"wtcteqke26wn6wg9620awobk","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2570,"modified_at":"2026-07-23T04:54:01.086000","content_hash":"985cbaa58c93e8b8b6d840ff9524e360fa1fe64bd2e22385f1c035ebc9c3551a"},"entries":[],"content":"# silent-exit-v1\n\nA native `verifiers.v1` environment for studying multi-turn typo correction\nunder configurable exit incentives.\n\nThe model receives a numbered document containing adjacent-letter typos and\nresponds with plain-text commands:\n\n```text\nFIX <line number>: <complete corrected line>\nDONE\n```\n\nA response containing neither a parseable `FIX` command nor `DONE` ends the\nepisode. The primary reward is:\n\n```text\nfixed_typos / k_typos - damage_penalty * damaged_lines\n```\n\nThe result is clipped to `[-1, 1]`. A line counts as damaged when it began\ncorrectly and no longer matches its expected text at the end of the episode.\n\n## Components\n\n- `SilentExitTaskset` generates deterministic, typed task rows.\n- `SilentExitTask` owns validation, termination, reward, and metrics.\n- `SilentExitUser` parses commands and drives the multi-turn interaction.\n- The package exports Verifiers' `NullHarness`, which supplies the chat loop\n  without adding an unrelated system prompt.\n\nSet the framework-level turn limit to `8`.\n\n## Installation\n\n```bash\nprime env install dp-learning-rl/silent-exit-v1@0.1.5\n```\n\n## Validation and evaluation\n\nFrom a Prime Lab workspace:\n\n```bash\nprime eval validate dp-learning-rl/silent-exit-v1@0.1.5 \\\n  -n 20 \\\n  --runtime.type subprocess\n\nprime eval run dp-learning-rl/silent-exit-v1@0.1.5 \\\n  -m <model> \\\n  -n 20 \\\n  -r 4 \\\n  --shuffle \\\n  --harness.id dp-learning-rl/silent-exit-v1@0.1.5 \\\n  --harness.runtime.type subprocess \\\n  --max-turns 8\n```\n\n## Configuration\n\nTaskset fields:\n\n| Field | Default | Meaning |\n|---|---:|---|\n| `num_examples` | `200` | Number of generated task rows |\n| `seed` | `7` | Dataset seed |\n| `n_lines` | `10` | Lines per document |\n| `k_typos` | `4` | Planted typos |\n\nTask fields under `taskset.task`:\n\n| Field | Default | Meaning |\n|---|---:|---|\n| `damage_penalty` | `0.1` | Penalty per damaged initially-correct line |\n| `reward_mode` | unset | `naive`, `clamp`, `credit`, or `tax` |\n| `gate` | `free` | Fallback mode: `free`, `sub`, `mult`, or `zero` |\n| `gate_value` | `0.1` | Value used by subtraction and tax modes |\n\nWhen `reward_mode` is set, it takes precedence over `gate`.\n\n## Training composition\n\nUse the Hosted Training `default` harness:\n\n```toml\n[[env]]\nname = \"silent-exit\"\ntaskset = { id = \"dp-learning-rl/silent-exit-v1@0.1.5\", num_examples = 200, seed = 7 }\nharness = { id = \"default\", runtime = { type = \"subprocess\" } }\nmax_turns = 8\n```\n\nRun a baseline evaluation before training and confirm that rewards, termination\nreasons, and error rates match the intended configuration.\n","encoding":"utf-8","truncated":false,"total_bytes":2570},"status":null}