Skip to content

readme: condense to an overview - #9

Merged
alacour merged 7 commits into
mainfrom
chore/readme-condense
Aug 28, 2026
Merged

alacour merged 7 commits into
mainfrom
chore/readme-condense

Conversation

@alacour

@alacour alacour commented Aug 28, 2026 •

Copy link
Copy Markdown
Collaborator

Trims the README from 562 to ~310 lines. It had grown design-log-level detail (FiLM option tables + symmetry derivations, MP envelope measurements, LES initialization/DDP internals, DDP batching mechanics); feature sections now say what each option does and how to use it, deferring the reasoning to the docstrings where it already lives.

Preserved: layout, install, quickstart (SPICE/torchrun + calculator usage promoted out of the batching section), LES install + IP/licensing note verbatim, calculator refusal semantics, the double-backward-safety distinction between the fused kernels, and the full test index.

Second commit: element_film is now on by default (model + all four trainers), and the README's FiLM section shrinks to a one-liner accordingly. Old checkpoints are unaffected (hparams have always recorded the flag; from_checkpoint rebuilds from them). The gate is identity at init, so default-built models start numerically unchanged. Two test-assumption fixes ride along: the ignored-flags warning test now sets element_film=False explicitly, and a bitwise LES path-equality assertion is relaxed to 1e-14 (two independent implementations; exact agreement was luck of the old RNG stream).

🤖 Generated with Claude Code

alacour and others added 7 commits August 28, 2026 10:22
562 → ~310 lines. The README had accumulated design-log-level detail
(FiLM option tables and symmetry derivations, MP envelope measurements,
LES init/DDP internals, batching alignment mechanics). Feature sections
now state what each option does and how to invoke it, and point to the
class/trainer docstrings — where all of that detail already lives — for
the reasoning.

Kept intact: layout, install, quickstart (now includes the SPICE/torchrun
and calculator examples that were buried in the batching section), the
LES install + IP/licensing note, the calculator refusal semantics, the
force-training safety split between the two fused kernels, and the test
index.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The FiLM gate becomes part of the default architecture: element_film=True
in ECENet and all four trainers. Old checkpoints are unaffected —
from_checkpoint rebuilds from stored hparams, which have always recorded
element_film. The gate is identity at init (zero-init MLP), so a
default-built model's initial energies are unchanged; parameter counts
and state-dict keys grow by the gate.

Test fallout, both assumption fixes rather than breaks:
- test_ignored_flags_warn now passes element_film=False explicitly (with
  the gate on by default, the flags it sets are genuinely used — no
  warning is correct behavior).
- test_les's cell=None vs explicit-zero-cell check asserted bitwise
  equality between two independent implementations; they only agreed
  exactly by luck of the old seeded values (the gate's parameters shift
  the RNG stream). Now asserts < 1e-14 with the reason documented.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Layout block already points at tests/ (runnable scripts, repo root);
the file-by-file list belongs in the files' own docstrings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…detail

'sum' — the raw signed score times the cutoff envelope, extensive in
coordination and an exact no-op at init — becomes the default aggregation
in ECENet and all four trainers. Old checkpoints are unaffected (mp_type
is in hparams). Consequence of the default pairing: a default model's
msg_envelope flag is now False, since 'sum' is enveloped structurally and
never sets it.

Tests updated to the new default: test_default_is_softmax becomes
test_default_is_sum, and test_msg_envelope_defaults_and_flag pins
mp_type='softmax' explicitly where it exercises the softmax-only flag.

README: the mp_type comparison table and the nonlinearity paragraph go;
message passing is now one short paragraph deferring to the docstring.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 'not vendored' jargon goes; the IP note below still carries the
load-bearing statement that none of the les package's code is included.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
LR schedules, size-aware batching, precompute_topology, and tf32 are all
documented in the trainer docstrings the Quickstart already points at.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…dout table

The trainers' les_readout now defaults to None, resolved at run start to
'edge_basis' when use_les=True and 'sum' otherwise. LES runs get the
per-edge charge head (the readout behind the dipole/BEC results) by
default, while short-range runs keep the parameter-free 'sum' read-out —
a bare-model or SR run must not carry an unused charge head, which under
DDP's find_unused_parameters=False would hang the gradient reduction (the
existing spice/mptrj guards for explicit misconfigurations stay). The
bare-model default stays 'sum' for the same reason, documented in the
readout comment block.

Explicit les_readout settings and old checkpoints are unaffected (the
resolved value is what lands in hparams).

Tests: the xyz/rmd17 LES smokes pin les_readout='sum' — they specifically
exercise upstream's lazy atomwise head and resume against 'sum'
checkpoints, and a resume must match the checkpoint's readout like any
other architecture hparam (the strict load rejects the mismatch loudly).

README: the les_readout table and the knobs paragraph collapse to two
sentences deferring to the model docstring.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@alacour
alacour merged commit 55306f2 into main Aug 28, 2026
1 check passed
@alacour
alacour deleted the chore/readme-condense branch August 28, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant