Skip to content

Commit 023c166

Browse files
docs: WW-PGD telemetry field read guide (scheduled vs applied)
Class B: document how to read projection CSV event/dose/pin-related fields; note #131/#132 predicate SoT without re-implementing closed designs.
1 parent e5065f6 commit 023c166

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ These commands make the repository capable of testing whether WW-PGD improves ge
9797

9898
## WW-PGD installation policy
9999

100+
How to read projection / dose / event columns: [`docs/WWPGD_TELEMETRY_FIELDS.md`](docs/WWPGD_TELEMETRY_FIELDS.md).
101+
102+
100103
`python -m pip install -e .` installs WW-PGD through pip from the current default branch of `CalculatedContent/WW_PGD`. The dependency has no commit, tag, or branch pin. Each run records the package version and, when pip supplies PEP 610 VCS provenance, the commit that happened to be installed. That recorded commit is runtime metadata, not an installation requirement.
101104

102105
The nanoGPT adapter targets the public `ww_pgd` API. When the installed package exposes a native `diagnostic_logs` sink, those internal rows are retained. When it exposes only its established `ww_logs` output, the repository installs a compatibility wrapper that preserves normal WW-PGD execution and records the available pre-projection WeightWatcher fields plus adapter-observed candidate movement. Exact internal midpoint, Cayley-ratio, and TraceLog-retraction fields remain explicitly unsupported in that case; they are never invented and their absence does not prevent the experiment from running.

docs/WWPGD_TELEMETRY_FIELDS.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# WW-PGD telemetry fields (how to read projection CSVs)
2+
3+
**Class B documentation.** Helps readers interpret WW-PGD projection / dose /
4+
event fields without inventing missing quantities. It does not change training
5+
code or defaults.
6+
7+
For density α vs derived rank exponent vocabulary, see
8+
[`SPECTRAL_DUAL_LABEL.md`](SPECTRAL_DUAL_LABEL.md).
9+
10+
---
11+
12+
## 1. Why this page exists
13+
14+
CSV rows look like science tables. Misreading them recreates confounds we already
15+
know from experiment design:
16+
17+
| Misread | Better read |
18+
|---|---|
19+
| Projection **event index** = dose | Event index is a **schedule clock**; dose is a **strength** |
20+
| First scheduled event = first real apply | Warmup, gates, trust region, or zero hardness can skip applies |
21+
| Requested pin = verified pin | Runtime check and install pin are different facts |
22+
23+
---
24+
25+
## 2. Fields commonly present on `main` (scientific runner)
26+
27+
Exact headers evolve; always trust the CSV header of the run you analyze. Typical
28+
projection / adapter-related columns include:
29+
30+
| Field (examples) | Role |
31+
|---|---|
32+
| `projection_event` | Schedule / event index for the projection cadence |
33+
| `optimizer_step` / `actual_step` | Base optimizer step when the row was written |
34+
| `layer_name` | Which matrix the row refers to |
35+
| `target_alpha` | Public density spectral target |
36+
| `derived_external_rank_exponent` | Derived rank-order exponent \(1/(α-1)\) at the adapter boundary |
37+
| `relative_frobenius_change_applied` | Realized relative Frobenius movement of the applied update (when present) |
38+
| `relative_frobenius_change_requested` | Requested movement before trust-region / scaling (when present) |
39+
| `projected` / skip reasons | Whether an apply happened and why not |
40+
41+
**Rule:** if a column is missing, treat it as missing — never invent midpoint /
42+
Cayley / TraceLog internals when the installed WW-PGD build does not expose them
43+
(see root README adapter policy).
44+
45+
---
46+
47+
## 3. Conflict log and SoT (predicates)
48+
49+
| Intent | Earlier risk | Canonical direction |
50+
|---|---|---|
51+
| First-event / first-apply flags | Treating `event == 1` (or 1-based index) as first real apply | Split **first scheduled event** vs **first actual apply per layer** (positive realized dose that changes the layer). Upstream work: open PR discussion **#131** (resume-safe dose telemetry) — prefer that design over ad-hoc first-event booleans. |
52+
| Optional WW_PGD commit pin | Check only in one runner; soft prefix match; stale import provenance | Verify at **every shared adapter boundary**; distinguish requested vs verified vs dependency-pinned. Upstream work: open PR **#132**. |
53+
| Dual-label α / rank | Single column named “alpha” | Density target + derived rank exponent as separate fields (#128 logging + [`SPECTRAL_DUAL_LABEL.md`](SPECTRAL_DUAL_LABEL.md)). |
54+
55+
If #131 / #132 are not yet merged when you read this, treat their **predicate
56+
design** as the intended SoT and mark any not-yet-on-main columns as pending.
57+
58+
---
59+
60+
## 4. Read rules (always)
61+
62+
1. **Scheduled ≠ applied.** A projection event can be scheduled and still apply
63+
zero dose (or skip a layer).
64+
2. **Dose is applied strength**, preferably relative Frobenius of the **applied**
65+
update after trust-region / scaling — not hardness alone.
66+
3. **Per-layer first apply** is not the same as global event zero.
67+
4. **Pin provenance** has three facts: what is installed, what was requested, whether
68+
runtime verification passed.
69+
5. **No efficacy claim** follows from a field being present.
70+
71+
---
72+
73+
## 5. Related
74+
75+
- Root README — WW-PGD installation policy; public `target_alpha` only.
76+
- `docs/SPECTRAL_DUAL_LABEL.md` — density α vs μ_rank.
77+
- `docs/SCIENTIFIC_INTEGRITY_POLICY.md` — no fabricated spectral fields.
78+
- `docs/CONTROL_ARMS.md` — measurement-only / sham arms when comparing dose.

0 commit comments

Comments
 (0)