ADR-0025: RLVR + "dreaming" continual weight updates, double-gated
- Status: Accepted — approved by Alex Place, 2026-07-07 (explicit operator directive in-session: "approve ADR-0025"). Drafted Proposed per the ADR approval gate; flipped only on that directive.
- Loop stage: Verify (the update gate) + Reason (the updated policy) + Remember (verified-memory replay buffer)
- Relates to: ADR-0010 (continual-learning rules — this ADR is the mechanism for 0010's verify-gated last-resort path), ADR-0015 (verified distillation — extended, not replaced), ADR-0024 (frontier program — this is the continual-update halfexplicitly excludes), ADR-0017 (surprise canary), ADR-0021
- Research backing:
data/research/reports/20260707T180737-rlvr-continual-learning-dreaming-stability-cert-weight-updates.md - Theory backing: SIGMA0-COLLAPSE-CERTIFICATE.md §8 (Part II — the Model-Update Acceptance Gate Σ_θ) — merged into the unified Convergence Certificate; adversarially bounded twice. Key consequence for Gate A (as corrected by the second review): repeatedly selecting checkpoints against an ordinary feedback-rich fixed holdout overfits it (PROVEN), and no tight safe-reuse budget is known for model-level gating (
B_maxOPEN — measured in the Phase-1 harness); so Gate A uses fresh evaluation data, once-per-release promotion sets, or a formal reusable-holdout mechanism (Thresholdout-class) rather than assuming a fixed suite stays valid.
Reconciliation with Accepted ADRs (read first)
- ADR-0010 Rulekeeps frozen-base + retrieval as the default; Rulemakes adapter-only the
sole weight path. This ADR does not override either — it specifies the mechanism by which 0010's "verify-gated continual learning, last resort" path actually decides to ship a LoRA delta, and adds a second, load-bearing gateleft unspecified.
- ADR-0024 proposes a pretraining program and explicitly states it is "not continual weight
modification of the deployed model." This ADR covers precisely that excluded case: bounded, double-gated continual updates to the serving adapter. The two are complementary —trains the base artifact;governs online improvement of the deployed one.
- North Star principle 5 ("learning is retrieval + experience, NOT weight modification") governs
the running loop; accepting this ADR scopes a rare, certified exception — the update is the exception, retrieval remains the rule.
Context
Research this cycle (report) established three load-bearing facts:
- RLVR is the right update rule because on-policy sampling keeps updates in a low reverse-KL
region near the base, making RL structurally forgetting-robust vs SFT — and the KL penalty is not what does it (RL's Razor arXiv:2509.04259; RFT-mitigates-forgetting arXiv:2507.05386; mechanistic arXiv:2605.28860 — MEASURED; robustness is relative, not absolute: arXiv:2607.04364). But RLVR has intra-task forgetting — "correct-set turnover" (arXiv:2606.03087, MEASURED).
- "Dreaming" is generative replay in an offline phase, not a separate engine: replay the
verified JSONL/CSF buffer (+ generic anchor data) during the update (Dream2Learn arXiv:2603.01935; Sleep-time Compute arXiv:2504.13171; replay-generic arXiv:2603.04964 — all MEASURED). This satisfies the North Star's "dream = reasoning strategy, not subsystem" constraint.
- The stability cert cannot gate the failure mode. It certifies local hidden-state contraction
(max Re λ(A)<0), not reward-boundary integrity; its trigger is a late detector (precision 1.0, recall ≈0.08, #1990) and is subject to instrument↔actuator decoupling (#766). Reward hacking and correct-set turnover live in the held-out task distribution, not hidden-state dynamics — confirmed by an independent adversarial cross-check (grok-4) that landed on the repo's own documented caveat.
Small-scale feasibility is real but requires the efficiency literature, not naive GRPO: sample-efficient reward estimation (arXiv:2603.18444), adaptive rollout skipping zero-advantage groups (arXiv:2602.14338), inference-for-training trades (arXiv:2606.08854), and Hybrid-LoRA for RLVR post-training (arXiv:2605.18822).
Decision (accepted 2026-07-07)
Adopt a double-gated continual-update mechanism for the serving adapter, ordered cheapest/safest first:
- Ruleunchanged: frozen base + retrieval is default; no weight delta ships unless it beats
retrieval on the frozen holdout.
- Verified distillation is the primary spend (extends ADR-0015): cloud teacher proposes,
execution is teacher-of-record, train LoRA (rank ≤16) on passing traces only.
- "Dreaming" = offline replay of VERIFIED traces only — the JSONL/CSF buffer (passing patches,
successful tool trajectories, source-checked research, human-approved drafts) + generic anchor data, replayed in a sleep phase on cloud L4, never the local box ([local-pc-freezes-ram-exhaustion]). Guardrail (convergent grok+GPT synthesis): never train on the model's unverified self-generated opinions/"thoughts" — internally-generated examples are untrusted until a compiler/test/source-check/human verifies them, or the replay buffer becomes a model-collapse feeder. (Dream2Learn [2603.01935] is a vision method — framing inspiration, not license to self-train on synthetic thoughts.)
- RLVR/GRPO last and small (on-policy, execution-graded, sample-efficient variants), and every
candidate checkpoint must pass BOTH gates to ship:
- Gate A — exec holdout (load-bearing): a frozen held-out execution suite with a **hard
no-regression bar** (rejects reward hacking + correct-set turnover). This is the authority.
- Gate B — stability cert (cheap early-abort): the Σ₀ collapse certificate on the decode
Jacobian rejects degenerate hidden-state dynamics before wasting an eval. Necessary, not sufficient; never the sole authority. The RL loop stays disabled until Gate A's holdout is flat-or-up over a sustained window.
Program invariants (inherited from ADR-0024): evidence-classed claims with artifacts; every update is cheap to reject; honesty/quality bound to external checks the model does not control; one loop, no sprawl; operator authority over every gate.
First-100-GPU-hour allocation (operating recommendation, NOT a literature result)
Convergent synthesis skeleton for the Phase-1 spike — a decision input, not a finding:
| Budget | Spend | Why |
|---|---|---|
| ~15h | Baselines + sealed eval sets | else every later "gain" may be leakage/overfit |
| ~40h | Verified teacher→adapter distillation | highest expected gain/hour; passing traces only |
| ~25h | Offline replay ("sleep") ablations | does replay prevent regression + aid new-task learning? |
| ~15h | Small RLVR pilot | only code/reasoning with hard execution rewards |
| ~5h | Red-team + rollback tests | plant reward hacks, retention regressions, format exploits |
First falsifiable experiment (the Phase-1 gate)
Three adapters from the same frozen Ouro checkpoint, equal compute: A = distillation only; B = distillation + verified replay; C = distillation + replay + narrow RLVR. Evaluate all on new execution-graded tasks, old mastered tasks, fresh hidden tasks, tool-call correctness, source-grounded research, latency/memory, and Gate-B monitor events. Promotion rule: C wins only if it beats B on new tasks without worse retention, more reward/eval divergence, or instability. Decision tree: B wins → "dreaming" = replay+verification, RLVR waits; A wins → the replay recipe needs work; none win → stop updating weights, improve retrieval/tools instead. This is the cheapest test of whether weight updates earn their keep at all.
Harness spec (2026-07-07): the concrete cloud-L4 runbook is docs/SIGMA-THETA-ABC-HARNESS-SPEC.md. The Σ_θ release gate (§8.1.2,conditions) and the A/B/C decision tree are implemented and self-tested with no GPU in
experiments/sigma_theta_abc/harness.py --self-test(CI:tests/test_sigma_theta_gate.py) — a planted reward-hack, forgetting regression, instability, and over-budget drift are each rejected. The only remaining new training code is a narrow GRPO trainer for arm C; arms A/B reusetrain-qlora-ouro.py. Training runs L4-only (KEYSTONE_L4=1); the local box is refused.
Consequences
- Positive: turns 0010's abstract "verify-gated last resort" into a concrete, safe mechanism; the
stability cert gets a real, honest role (cheap early-abort) instead of an overclaimed one; RLVR's built-in forgetting-robustness is exploited; reuses existing verified-memory + exec-verify machinery.
- Negative / risks: RLVR at 1.4B/8GB is a trickle even with efficiency variants — expect single-digit
verifiable problems/GPU-hour; Gate A requires a curated, frozen, non-leaking exec holdout (build cost); the stability cert must not be trusted beyond "degeneration screen" or it re-introduces the honesty theater §7.2 warns about; feasibility latency numbers are unmeasured (spike required, see Open questions).
Alternatives considered
- SFT continual updates: rejected — forward-KL mode-covering drifts far from base, erasing capability
(the exact forgetting RLVR avoids).
- Stability cert as the sole gate: rejected — cannot detect reward hacking / forgetting (§3); this is
the central research finding.
- Naive fixed-budget GRPO: rejected at this scale — rollout cost dominates; use difficulty-adaptive,
sample-efficient variants.
- Full-weight finetune: rejected — optimizer states won't fit 8GB; adapter carries capability (#2178).
- A separate "dream engine" subsystem: rejected by North Star — dreaming is replay-as-strategy.
Open questions (to resolve before Phase-1 GPU commit)
- Measured RLVR throughput at Ouro-1.4B on cloud L4 (problems/GPU-hour) — currently unmeasured.
- Exec-holdout construction: size, refresh policy, leakage guard, the exact no-regression bar.
- Whether FuRA-style spectral preconditioning (arXiv:2605.22869) — acting before the update — is a
better use of the certificate machinery than post-hoc Gate B alone.
Evidence
| Claim | Evidence | Confidence | Source |
|---|---|---|---|
| RL/RLVR forgetting-robust vs SFT via on-policy KL-minimal updates; KL penalty not the cause | arXiv:2509.04259 (RL's Razor), 2507.05386, 2605.28860 (mechanistic); counterpoint 2607.04364 (not absolute); synthesis: Wolfe 2026 | High (MEASURED, multiple independent papers) | external |
| RLVR intra-task forgetting (correct-set turnover) | arXiv:2606.03087 | High (MEASURED) | external |
| Dreaming = generative replay / sleep-time consolidation | arXiv:2603.01935, 2606.03979, 2504.13171, 2603.04964 | High (MEASURED) | external |
| Stability cert = hidden-state contraction only; late detector; instrument↔actuator gap | SIGMA0-COLLAPSE-CERTIFICATE.md §1/§2 (#1990, #766) | High (repo doc) | in-repo |
| Reward hacking is the RLVR pathology the cert can't see | arXiv:2507.17746 + grok-4 adversarial cross-check | Medium-High | external + red-team |
| Small-scale RLVR feasible via efficiency variants | arXiv:2603.18444, 2602.14338, 2606.08854, 2605.08441, 2605.21266 | Medium-High (MEASURED) | external |
| LoRA (not full) for RLVR at 8GB; adapter carries capability | arXiv:2605.18822, 2606.25700; in-repo #2178 | High | external + in-repo |
| Naïve holdout reuse overfits → rotating-tier + fresh-flow required | arXiv:1506.02629 (Dwork et al.) | High (PROVEN, external) | external |
| Release-gate additions (fresh-task gain, provenance, rollback), GPU-hour skeleton, A/B/C first experiment, verified-only dreaming guardrail | grok + GPT syntheses, 2026-07-07 | Medium (convergent but correlated — overlapping corpus, not independent) | model synthesis |
| RLVR throughput at Ouro-1.4B | not measured this cycle | Open | — |