This repository was archived by the owner on Jul 17, 2026. It is now read-only.
feat(deep-linear): frozen-identity toy domain — the chunkwise-recon testbed#981
Open
claude-spd1 wants to merge 3 commits into
Open
feat(deep-linear): frozen-identity toy domain — the chunkwise-recon testbed#981claude-spd1 wants to merge 3 commits into
claude-spd1 wants to merge 3 commits into
Conversation
…estbed New toy domain: n_layers frozen eye(n_features) sites (layers.*), uniform one-hot data, KL-on-final-logits recon — the smallest end-to-end ChunkwiseSubsetReconLoss target. pd-deep-linear CLI mirrors pd-tms minus pretraining. Persistent-PGD is rejected loudly (engine pins persistent sources to a sequence axis). Also fixes pd-tms / pd-resid-mlp probe calls broken by the ci_fn remat kwarg (nothing in CI exercises the toy CLIs; the deep_linear tests now pin the pattern). Crew-Address: task/deep-linear-identity-decomposition Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ended, additive)
Two new routing configs for the subset recon terms:
- fixed_k_subset: per position, a uniform subset of exactly k live sites
(vs uniform_k's k ~ U{1..n}).
- scheduled_probability: static_probability with p evaluated per step from
a ScheduleConfig (increasing ramps use final_val_frac > 1; both endpoints
validated as probabilities).
SAMPLE_ROUTING gains the traced step: RoutingSampler is now
(key, leading_shape, step_f32) -> draws; only scheduled samplers read the
step (all others ignore it), and build_loss_terms/make_plan thread
total_steps down so the scheduled sampler can evaluate its schedule with
scheduled_value_traced. SPEC S11 + the SAMPLE_ROUTING binding-seam row
amended additively; R1 independence unchanged (draws stay independent
across sites, positions, forwards, steps — the schedule only moves p).
Motivation (board task run-some-random-architecture-ideas): test whether
the subset recon term wants more base-model supervision early — low
routing p ramped up over training — vs the static uniform-k baseline.
Crew-Address: task/run-some-random-architecture-ideas
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ting to all subset types target.logit_scale multiplies the final output only (softmax temperature for the KL recon; layers stay exact identities, ground truth unchanged). target.recon picks kl|mse. The ChunkwiseSubsetReconLoss uniform_k routing pin in build_loss_terms is lifted — the sampler dispatch already handles every SubsetRoutingType (incl. the cherry-picked fixed_k/scheduled_probability). Crew-Address: task/deep-linear-identity-decomposition Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collaborator
Author
|
Scope addition for the follow-up experiments (braun's 1-chunk-at-depth ask on the bridge task): cherry-picked feature/routing-schedules-fixed-k (5a18ff7, additive routing types — will dedupe if that branch merges first), lifted the ChunkwiseSubsetReconLoss uniform_k routing pin (the sampler dispatch already handles every SubsetRoutingType), and added target.logit_scale (softmax temperature; layers stay exact identities) + target.recon: kl|mse to the deep_linear toy. make check + toy/routing suites green. Crew-Address: task/deep-linear-identity-decomposition |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
New toy domain
param_decomp_lab/experiments/deep_linear/(pd-deep-linear): one-hot inputs →n_layerslinear layers hardcoded toeye(n_features)→ softmax, decomposed through the generic core engine. The recon comparison is the LM'skl_per_positionon the final logits, which makes this the smallest target that exercisesChunkwiseSubsetReconLossend-to-end — the ground truth at every site isn_featureslive rank-1 componentse_i e_iᵀwith one-hot per-feature CI, checked in-loop via the TMSidentity_ci_error.layers.*wildcard site expansion (a 200-layer stack is one config stanza)PersistentPGDReconLossis rejected loudly at build time (the engine pins persistent sources to a sequence axis; positionless targets have none)n_layers/sites_per_chunk)Also
pd-tms/pd-resid-mlpprobe calls were broken at tip by theci_fn(..., remat=)kwarg (the toy CLIs have no CI coverage — same failure class as PR #903's). Fixed both; the deep_linear tests pin the calling pattern.Tests
sites_per_chunk ∈ {1,2,4}, train-step finiteness, config parse+build for both repo yamls, PPGD rejection, and an end-to-end d=6 L=2 decomposition that recovers the identity (zeroidentity_ci_error).make checkclean; full toy-domain suite (58 tests) green.Context: bridge task
deep-linear-identity-decomposition(chunk-count sweep for the deep identity model, d ∈ {30,128} × L ∈ {5,50,200}).Crew-Address: task/deep-linear-identity-decomposition
🤖 Generated with Claude Code