plan(dqn-v2): mark Task 7 LANDED

This commit is contained in:
jgrusewski
2026-04-25 02:26:39 +02:00
parent 673eb66124
commit 0c48dc7192

View File

@@ -1061,6 +1061,10 @@ git commit -m "feat(dqn-v2): D.4a persistence credit — shaping×conviction×|m
- Modify: `experience_kernels.cu` — consume STATE_KL_AMPLIFICATION for reward scaling
- Test: `state_kl_fires_on_distribution_shift`
### ✅ LANDED `673eb6612`
> **Actual outcome.** ISV slots [78] STATE_KL_TRAIN_VAL_EMA + [79] STATE_KL_AMPLIFICATION; fingerprint shifted [76,77] → [80,81]; ISV_TOTAL_DIM 78 → 82. New kernel `state_kl_divergence_kernel.cu` does single-block per-dim Gaussian moment-match KL on the OFI block (32 dims), kernel-internal trailing-EMA-of-self for the amp ratio (no extra threshold slot). Val-side launch via `GpuBacktestEvaluator::val_state_sample()` (returns `chunked_states_buf` device pointer + sample count). Consumer wires kl_amp ∈ [1,2] into B.1 opp_cost and B.2 bonus via `fmaxf(1.0, …)` guard against cold-start 0. Smoke 3-fold convergence: best at ep5/ep2/ep3 — *diverse* epoch positions, addressing the earlier "always ep1" concern. Per-fold best Sharpe 105.13 / 83.28 / 103.49.
**Reality reconciliation.** Original slot numbers 58/63/64 collide with Plan 2 Q-quantile [50..58) and Plan 3 Task 1 reward-component EMAs [63..69). Original fire-trigger used a tuned `2.0× threshold` multiplier and amplification-decay constants `0.02f`, `2.0f`, `1.0f` that violate `feedback_adaptive_not_tuned.md`. This revision tail-appends after Task 6 and makes the amplification formula ISV-derived.
Post-revision slot layout (assumes Tasks 4+6a+6b+6c land first — actual ISV_TOTAL_DIM ≥ 78 at Task 7 start):