jgrusewski
fb24614f07
feat(sp16-p0): Q-by-action HEALTH_DIAG diagnostic for Hold-bias observation
...
Per train-multi-seed-pfh9n post-mortem: structural-Q-bias hypothesis
(Adam's m/sqrt(v) prefers low-variance Hold over noisy direction
Q-targets) needs direct per-action Q observations to verify or refute.
WR plateaued at ~0.46 across both folds while Hold% climbed 15% → 52%
and Q-mean climbed 0.19 → 0.41 — but per-action Q was unobservable.
Adds HEALTH_DIAG emit each epoch:
HEALTH_DIAG[N]: q_by_action [hold=X long=Y short=Z flat=W]
Reads via host-side averaging of `q_out_buf [B, total_actions]`
direction-branch columns [0..b0=4]. No new kernel needed — q_out_buf
is already populated row-major by compute_expected_q. Modeled directly
on the existing Task 0.3 magnitude-bucket diagnostic (same dtoh-and-
average cold path).
Action-index ordering canonical, see state_layout.cuh:123-126:
DIR_SHORT=0, DIR_HOLD=1, DIR_LONG=2, DIR_FLAT=3.
Emit slot order is [hold, long, short, flat] (Hold first because the
hypothesis is about Hold's ascent dominating direction Q-magnitudes).
New surface:
- gpu_dqn_trainer.rs: q_dir_means_cached field + update_q_dir_means_cached
method + q_direction_action_means accessor + free static helper
compute_q_dir_means_from_host_buf (factored for testability).
- fused_training.rs: FusedTrainingCtx wrappers parallel to q_mag pair.
- training_loop.rs: emit block adjacent to q_var_per_branch.
Behavioral test: sp16_phase0_q_by_action_diagnostic_reads_four_action_means
seeds known per-column constants, asserts canonical-dir-idx → emit-slot
mapping at 1e-3 tolerance, and includes sentinel-leak guard (non-direction
columns at 99.0 fail any wrong index→slot mapping with margin >12).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 14:34:59 +02:00
..
2026-05-06 15:05:34 +02:00
2026-03-02 15:41:23 +01:00
2026-03-15 12:00:13 +01:00
2026-02-25 11:56:00 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-04-11 11:54:09 +02:00
2026-03-29 21:32:04 +02:00
2026-03-15 12:00:13 +01:00
2026-05-08 03:30:44 +02:00
2026-03-13 10:30:51 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-15 12:00:13 +01:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-04-11 11:54:09 +02:00
2026-02-25 11:56:00 +01:00
2026-04-11 11:54:09 +02:00
2026-03-19 10:02:26 +01:00
2026-04-28 18:54:00 +02:00
2026-04-27 17:52:23 +02:00
2026-03-13 10:18:35 +01:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-03-19 08:55:55 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-04-24 01:55:14 +02:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-04-01 01:13:19 +02:00
2026-03-25 09:45:54 +01:00
2026-04-28 18:54:00 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-03-31 01:30:33 +02:00
2026-03-31 01:30:33 +02:00
2026-04-24 01:55:14 +02:00
2026-04-28 18:54:00 +02:00
2026-04-11 11:54:09 +02:00
2026-03-19 10:02:26 +01:00
2026-04-28 18:54:00 +02:00
2026-04-11 11:54:09 +02:00
2026-03-16 21:01:28 +01:00
2026-03-16 21:01:28 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-04-11 15:21:21 +02:00
2026-03-31 10:56:20 +02:00
2026-04-28 18:54:00 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-25 09:45:54 +01:00
2026-03-29 21:32:04 +02:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-31 01:30:33 +02:00
2026-04-20 15:29:05 +02:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-04-23 11:36:34 +02:00
2026-05-06 23:39:45 +02:00
2026-05-05 10:46:20 +02:00
2026-03-25 09:45:54 +01:00
2026-03-19 10:02:26 +01:00
2026-03-31 10:56:20 +02:00
2026-03-13 10:18:35 +01:00
2026-03-31 01:30:33 +02:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 08:59:52 +01:00
2026-03-20 15:41:42 +01:00
2026-03-19 10:02:26 +01:00
2026-03-18 00:53:47 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-04-01 01:13:19 +02:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-04-28 09:10:31 +02:00
2026-03-15 12:00:13 +01:00
2026-04-28 09:23:32 +02:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-04-20 15:29:05 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-19 10:02:26 +01:00
2026-03-19 08:59:52 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-04-11 15:21:21 +02:00
2026-03-19 10:02:26 +01:00
2026-03-19 10:02:26 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-04-23 08:44:05 +02:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-04-23 08:44:05 +02:00
2026-04-02 14:21:45 +02:00
2026-03-13 10:18:35 +01:00
2026-04-11 11:54:09 +02:00
2026-03-19 08:59:52 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-03-19 10:02:26 +01:00
2026-03-19 10:02:26 +01:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-04-28 18:54:00 +02:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 08:55:55 +01:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00
2026-05-03 09:52:33 +02:00
2026-03-19 10:02:26 +01:00
2026-05-05 10:52:13 +02:00
2026-05-03 11:34:21 +02:00
2026-05-04 11:51:30 +02:00
2026-05-04 19:32:18 +02:00
2026-05-05 14:45:47 +02:00
2026-05-05 14:09:48 +02:00
2026-05-08 14:34:59 +02:00
2026-05-07 23:36:07 +02:00
2026-03-19 10:02:26 +01:00
2026-03-21 09:14:53 +01:00
2026-04-10 18:52:21 +02:00
2026-03-19 08:59:52 +01:00
2026-03-19 10:02:26 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 08:44:50 +01:00
2026-03-19 10:02:26 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 08:44:50 +01:00
2026-03-15 12:00:13 +01:00
2026-03-19 10:02:26 +01:00
2026-03-19 10:02:26 +01:00
2026-03-19 08:44:50 +01:00
2026-03-19 08:59:52 +01:00
2026-03-16 16:11:48 +01:00
2026-03-14 11:35:15 +01:00
2026-04-11 15:21:21 +02:00
2026-04-11 11:54:09 +02:00
2026-03-13 10:18:35 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-04-04 10:02:37 +02:00
2026-04-11 11:54:09 +02:00
2026-04-11 11:54:09 +02:00
2026-03-15 12:00:13 +01:00
2026-03-15 12:00:13 +01:00
2026-03-13 10:18:35 +01:00
2026-03-19 10:02:26 +01:00