Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f8a4bed
Add the chi-square L2 basis and a softmax mass parametrization to Ada…
MaxGhenis Sep 28, 2026
7599cd1
Test the chi-square L2 basis and softmax mass parametrization
MaxGhenis Sep 28, 2026
fa8df5d
Plumb --l2-basis and --mass-parametrization through the ACS local tool
MaxGhenis Sep 28, 2026
949599a
Add the ACS local L2-basis sweep harness, optimizer reference and doc…
MaxGhenis Sep 30, 2026
da7f465
Seed the ACS local sweep's prior from --acs-share; add seeding option…
MaxGhenis Sep 30, 2026
35ad665
Make the sweep launcher importable inside its Modal container; add th…
MaxGhenis Sep 30, 2026
5e7203f
Address review round 1: truthful provenance, derived test bounds, sof…
MaxGhenis Sep 30, 2026
1ba923c
State the projection stall's conditions and measure the gradient scal…
MaxGhenis Sep 30, 2026
9ef71ed
Extend the sweep grid with holdout at the knee and intermediate priors
MaxGhenis Sep 30, 2026
30706e3
Merge origin/main (#1053 sparse ACS local tool) and fold the penalty …
MaxGhenis Sep 30, 2026
bc763cb
Add a second holdout fold and projection at the held-out optimum to t…
MaxGhenis Sep 30, 2026
5888b65
Write up the ACS local L2-basis frontier: seeding, penalty, holdout, …
MaxGhenis Oct 1, 2026
a471113
Add projection at lambda 0.03 to the ACS local frontier
MaxGhenis Oct 1, 2026
d9ea709
Keep uv.lock at main's approved digest
MaxGhenis Oct 1, 2026
2e4d443
Address review round 2: state the training-fit cost, the prior as a l…
MaxGhenis Oct 1, 2026
d82ff85
Add head-equivalence reruns to the sweep grid
MaxGhenis Oct 1, 2026
8ebf901
Address review round 3: recommend projection, state the softmax cap-l…
MaxGhenis Oct 1, 2026
51cef49
Merge remote-tracking branch 'origin/main' into l2-design-basis
MaxGhenis Oct 1, 2026
412c8f7
Re-pin the spec-engine digests solve.py moves; compare path problems …
MaxGhenis Oct 1, 2026
ab65596
Measure run-to-run variation; hold the held-out claim to "no worse"
MaxGhenis Oct 1, 2026
3dfe38d
Address review round 4: pin every penalty flag in the recipe, receipt…
MaxGhenis Oct 1, 2026
f8e48b2
Address review round 5 nits: exact district minimum, frontier wording…
MaxGhenis Oct 1, 2026
b115745
Re-pin the H1 calibrate parity case solve.py's edits move
MaxGhenis Oct 1, 2026
b7b4c29
Re-pin the loader golden vector solve.py's edits move
MaxGhenis Oct 2, 2026
9bca3f3
Project the softmax parametrization's log-weights exactly onto the ca…
MaxGhenis Oct 2, 2026
4bddde6
Record the in-loop cap ratio in the ACS tool and sweep; add the full-…
MaxGhenis Oct 2, 2026
1949e4b
Merge remote-tracking branch 'origin/l2-design-basis' into softmax-ex…
MaxGhenis Oct 2, 2026
493eacf
Measure the softmax cap step at full scale before and after the exact…
MaxGhenis Oct 2, 2026
c4bf1d4
Run the float32 cap-step measurement on Modal; record why the 32-roun…
MaxGhenis Oct 2, 2026
16ff6eb
Document the exact cap projection and its measurement; re-pin the dig…
MaxGhenis Oct 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,11 @@ calibrates to the SOI `state` surface by default, the 4,459-target contract of
Build O and Build P; `--soi-mode totals` and `--soi-mode full` are explicit
opt-ins. See
[the ACS local-area SOI target surface](docs/us-acs-local-soi-target-surface.md)
for what each mode contains and where the build records it.
for what each mode contains and where the build records it. Its
`--l2-basis chi_square` and `--mass-parametrization softmax` options (defaults:
the historical `record` and `projection`) penalize distance from the design
weights; see [penalized calibration toward the design weights](docs/calibration-l2-basis.md)
for the algebra, the evidence and the measured frontier.

National and ACS local-area builds now use the same typed schema-8 calibration
diagnostics writer. The local builder adds its Census population marginals to a
Expand Down
1 change: 1 addition & 0 deletions changelog.d/calibrate-chi-square-l2-basis.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add two opt-in options to Adam calibration and the ACS local-area tool. `l2_basis="chi_square"` (`--l2-basis chi_square`) makes the `l2_lambda` penalty GREG's design-weighted chi-square distance `sum(d * (w / d - 1) ** 2) / sum(d)`, which pulls toward the design weights themselves; the historical record-weighted `mean((w / d) ** 2)`, whose mass-conserved optimum is `w ∝ d ** 2`, stays the default. `mass_parametrization="softmax"` (`--mass-parametrization softmax`) conserves mass through `w = total * softmax(log_w)`; the historical per-step uniform shift, still the default, can stall away from the constrained optimum when every record's gradient shares a sign (on the ACS local release it does not). Defaults reproduce the previous solver's bytes. Results record both settings and `CalibrationResult.chi_square_distance`; the tool records them in its calibration summary and build manifest, names all three penalty flags in the manifest's refresh recipe, and refuses to resume a checkpoint solved under other settings. See docs/calibration-l2-basis.md.
1 change: 1 addition & 0 deletions changelog.d/calibrate-softmax-exact-cap.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`mass_parametrization="softmax"` now projects the log-weights exactly onto the capped simplex after every Adam step: one common shift, then a clamp to each cap, with the shift found in float64 by active-set rounds that a sort finishes if they run long. It replaces a renormalize/clamp loop of at most 32 rounds, which ran out on most epochs of the ACS local release because of float32 rounding (the overshoot it left was float32-sized, measured in `experiments/us-acs-local-l2-basis-20260928/results/exact_cap.md`). Softmax solves record `options["iterate_selection_receipt"]["softmax_in_loop_max_cap_ratio"]`, the largest in-loop weight over its cap, in place of the exhaustion count, and the ACS local-area tool carries it in its calibration summary and build manifest. The default `"projection"` parametrization is unchanged.
281 changes: 281 additions & 0 deletions docs/calibration-l2-basis.md

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions docs/evidence/spec-engine/us-f0-coverage.json
Original file line number Diff line number Diff line change
Expand Up @@ -1656,13 +1656,13 @@
"compiler_ir.node_slices"
],
"expected": {
"map_sha256": "3cf10a524310ea0ada18ddc65cfa585d1d0652d23e7d7a180c050ac686224e28",
"protocol_sha256": "91989ed5e366e19598f86335b2e66723dcb2b6481a78d0dbeb83183a1aa09bd4"
"map_sha256": "292ad19c691876eecd8d4b36458b2b7e6f0ec14a51a2e3ab3fdf0d2e6986a98f",
"protocol_sha256": "5795dc072b958dcafb6ba5c37e6124181ce37479f96cd4ca2dec3755d4e476f8"
},
"failures": [],
"observed": {
"map_sha256": "3cf10a524310ea0ada18ddc65cfa585d1d0652d23e7d7a180c050ac686224e28",
"protocol_sha256": "91989ed5e366e19598f86335b2e66723dcb2b6481a78d0dbeb83183a1aa09bd4"
"map_sha256": "292ad19c691876eecd8d4b36458b2b7e6f0ec14a51a2e3ab3fdf0d2e6986a98f",
"protocol_sha256": "5795dc072b958dcafb6ba5c37e6124181ce37479f96cd4ca2dec3755d4e476f8"
},
"status": "covered"
},
Expand All @@ -1677,7 +1677,7 @@
"compiler_ir.seed_stream_map"
],
"expected": {
"implementation_sha256": "91989ed5e366e19598f86335b2e66723dcb2b6481a78d0dbeb83183a1aa09bd4",
"implementation_sha256": "5795dc072b958dcafb6ba5c37e6124181ce37479f96cd4ca2dec3755d4e476f8",
"protocol": "legacy-v1",
"streams": [
"build_model",
Expand All @@ -1698,7 +1698,7 @@
},
"failures": [],
"observed": {
"implementation_sha256": "91989ed5e366e19598f86335b2e66723dcb2b6481a78d0dbeb83183a1aa09bd4",
"implementation_sha256": "5795dc072b958dcafb6ba5c37e6124181ce37479f96cd4ca2dec3755d4e476f8",
"protocol": "legacy-v1",
"streams": [
"build_model",
Expand Down Expand Up @@ -2599,7 +2599,7 @@
"country": "us",
"schema_id": "country_spec",
"schema_version": 1,
"spec_sha256": "ffbb93ed5ae22a95536ae475d6912a42628568609b442360dc1cd3bcf26772cd"
"spec_sha256": "edcd647524b51dd2fbcb417576a7421d2429ed7b51beb6756579ef3911e86d52"
}
},
"report_schema_version": 3,
Expand All @@ -2609,7 +2609,7 @@
"country": "us",
"schema_id": "country_spec",
"schema_version": 1,
"spec_sha256": "ffbb93ed5ae22a95536ae475d6912a42628568609b442360dc1cd3bcf26772cd"
"spec_sha256": "edcd647524b51dd2fbcb417576a7421d2429ed7b51beb6756579ef3911e86d52"
},
"status": "pass"
}
Loading
Loading