213 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 4219592f17 Install PDF text extraction tooling before host verification 2026-11-05 06:09:06 +01:00
Vijay Janapa Reddi faef3f2c0a Preserve PDF typography and verify authoritative LaTeX diagnostics 2026-11-05 05:06:18 +01:00
Vijay Janapa Reddi 6d78bcdc16 Export publisher figure metadata from current AUX labels 2026-11-05 04:05:42 +01:00
Vijay Janapa Reddi 40dd715ae6 Verify PDF artifacts and preserve content during compression 2026-11-05 03:24:19 +01:00
Vijay Janapa Reddi e69b52addd Preserve include paths and provenance in generated volume entry points 2026-11-05 01:50:30 +01:00
Vijay Janapa Reddi 82757cc8d4 Merge dev into taxonomy branch for integration 2026-11-04 22:03:35 +01:00
Vijay Janapa Reddi 649d2954bb Refine taxonomy editorial workflow, presentation, and documentation 2026-11-04 22:03:03 +01:00
Vijay Janapa Reddi 6625fbf6c2 Harden taxonomy governance validators, CI checks, and Bucket A receipts 2026-11-04 01:21:46 +02:00
Vijay Janapa Reddi 32b31f27cf Harden taxonomy 1.0 governance, Path A staging, and Bucket A provenance receipts 2026-11-03 21:23:46 +02:00
Vijay Janapa Reddi fedbb4c8f0 Complete taxonomy provenance replay, Seatbelt R2 refresh, and v3 burn ledger 2026-11-03 15:31:46 +02:00
Vijay Janapa Reddi 6682e03742 Harden taxonomy provenance replay, execution receipts, and governance charter 2026-11-03 09:08:21 +02:00
Vijay Janapa Reddi 5d51744cf9 Harden taxonomy refresh provenance gates and align study receipts 2026-11-03 04:19:52 +02:00
Vijay Janapa Reddi 49574db8eb Harden taxonomy refresh provenance, workspace isolation, and Phase 7 audit receipts 2026-11-03 01:42:41 +02:00
Vijay Janapa Reddi 7a548c0f1e vol2/ch15: add audited frontier compute and pretraining energy figures with series provenance
Add reproducible Epoch AI frontier training compute (@fig-ai-compute-growth) and single-run pretraining energy (@fig-frontier-training-energy) figures to Volume II, Chapter 15, paired with builder-reported anchors at declared measurement boundaries, deterministic CSV extraction and manifest receipts, and structured provenance enforcement across book CSV series and figure cells.
2026-11-03 00:49:25 +02:00
Vijay Janapa Reddi 284b2964a2 taxonomy: adopt Z39.19 and SKOS as the stated construction and representation standards
METHOD.md marks each applicable clause met, partial, or open, including the
departures: no expert committee, no human indexing trial, and model-assisted
decisions the standard assumes people make.

- Two audits applied the all-and-some test to 127 specializes edges; the 27
  both failed are retyped or removed, and specializes now exports as
  skos:broader while part-of stays associative under Z39.19 8.3.3.2
- Compiler enforces SKOS S27; tests validate the export
- Concepts record added_in and computed warrant counts
- Release adds an OWL relations vocabulary, DCAT metadata, CITATION.cff,
  scope notes, and redirect pages for identifiers
- Agreement reports Hooper and Rolling consistency
2026-11-02 14:21:39 +02:00
Vijay Janapa Reddi f713ec7b5c taxonomy: 0.4-draft, the second periodic review with an audit prune
878 concepts (+71 net), 2,020 relationships (+326, -25, 25 reworded), 27
redefinitions, 67 alias sets, 33 background tags, 6 moves; guides 16 roles,
24 symptoms, 7 paths; gaps: attention-FFN disaggregation closed, verifiable
ML computation and reasoning-trace monitoring declared. Coverage judgments
updated for the new concepts and a blind held-out checklist added
(OSDI/NSDI/EuroSys/ASPLOS 2026, 202 papers, 22.3% covered, 96.5% homed).

Symptoms now declare the quantity they are measured by (`quantities`), so a
symptom's own metric no longer poses as a cause; the compiler, the StaffML
loader, and the explorer accept a check or lever that touches a cause or the
quantity and reject a quantity listed in another bucket.

README and CHANGELOG record the method, the numbers, and the open author
decisions.
2026-11-02 12:23:35 +02:00
Vijay Janapa Reddi cec2230543 Add taxonomy usage dropdown and deduplicate taxonomy compiler and frontend 2026-11-01 10:15:51 +02:00
Vijay Janapa Reddi 532e793fb2 fix(taxonomy): resolve red-team and anti-reward-hack audit findings across schema, CI, and consumers 2026-10-31 23:16:49 +02:00
Vijay Janapa Reddi ae25ccccbd feat(taxonomy): enforce end-to-end LinkML single source of truth across Binder, StaffML, and site 2026-10-30 19:05:39 +02:00
Vijay Janapa Reddi 6d91373366 refactor(taxonomy): remove legacy split-file fallbacks and document single source of truth 2026-10-30 15:15:19 +02:00
Vijay Janapa Reddi 2288cf53bb feat(taxonomy): unify authored taxonomy into single canonical ml-systems-taxonomy.yml 2026-10-30 14:42:49 +02:00
Vijay Janapa Reddi 52178b6939 build(taxonomy): harden LinkML single source of truth, StaffML labels sync, and CI gates 2026-10-30 13:42:40 +02:00
Vijay Janapa Reddi 0de606c2c4 fix(taxonomy): enforce anti-reward-hacking rules and validate release JSON against LinkML schema 2026-10-30 08:42:57 +01:00
Vijay Janapa Reddi 68ea73f4c8 feat(taxonomy): port metamodel validation to LinkML and show Concept map first 2026-10-29 19:10:10 +01:00
Vijay Janapa Reddi 983e7649e2 Consolidate ML Systems Taxonomy into root taxonomy/ directory 2026-10-28 08:02:35 +01:00
Vijay Janapa Reddi 6a6d8f7851 Taxonomy release: license CC BY 4.0 and ship the guides
The release (identifiers, definitions, relationships, guides, and every
download) moves from CC BY-NC-SA to CC BY 4.0 so courses and companies
can reuse it; the book prose keeps its own license.
2026-10-28 07:38:27 +01:00
Vijay Janapa Reddi 856324d69c Taxonomy compiler: reader guides, validated against the graph
Roles, production symptoms, and learning paths load from
shared/concepts/ml-systems-guides.yml. Every subject and concept must
exist, and every symptom check and lever must share a relationship with
one of the symptom's causes.
2026-10-28 07:38:22 +01:00
Vijay Janapa Reddi be6b71577f binder: skip _build directories when scanning .bib files 2026-10-27 23:08:54 +01:00
Vijay Janapa Reddi 50edc4d1d1 Merge branch 'fix/staffml-hardware-from-mlsysim' into dev
# Conflicts:
#	staffml/app/src/data/mlsys-taxonomy.json
2026-10-27 22:58:37 +01:00
Vijay Janapa Reddi 40d58ce0cf Taxonomy compiler: reject comma-split keys, enforce graph invariants, and sync coverage subjects
- Repair 16 unquoted YAML flow-mapping comma splits (key: null) across 6 sources and 9 relationships in ml-systems-field.yml and 1 source in ml-systems-framework.yml that truncated published scope, predicate, conditions, and role strings.
- Remove 2 case-insensitive duplicate aliases within the same concept (mlsys.matrix-unit and mlsys.kv-cache-eviction).
- Update 13 covered topics in courses-and-standards-2026.yml and mlsys-papers-2025-2026.yml whose subject field disagreed with the home of their cited concepts.
- Harden field_graph.py, framework.py, taxonomy_coverage.py, and taxonomy_agreement.py (with regression tests) to reject unknown keys, within-concept duplicate aliases, concepts with fewer than two relationships, disconnected concept graphs, and covered checklist topics whose subject disagrees with their concept homes.
2026-10-27 22:35:42 +01:00
Vijay Janapa Reddi 35c656cb15 Taxonomy 0.3-draft: 63 concepts from a three-model completeness review
Three independent reviewers (gpt-6.1-sol, gemini-4-argon-high,
claude-opus-5-5) reviewed 0.2 through different lenses; the merged set
was cross-checked item by item by all three before acceptance, and ten
more concepts came from StaffML questions that could not be tagged.

- 63 concepts and 148 relationships (798 concepts, 1,679 relationships)
- 15 definitions revised against their existing relationships; aliases
  added to 9 more; TPOT and inter-token latency separated
- PII de-identification moved to Q3.3, inference compute estimate to F1.2
- Gaps: four closed, emerging substrates narrowed to photonic compute,
  attention-FFN disaggregation added
- Coverage judgments name the covered mechanism (GRPO, 1F1B, denial of
  wallet); AccelOpt out of scope like TritorX
2026-10-27 22:15:05 +01:00
Vijay Janapa Reddi 6e135fe487 Taxonomy release: publish declared gaps and concept book passages
The JSON download omitted the declared gaps shown on the page, and
concept records carried no pointer into the books, so a researcher or
instructor working from the download could not see either. JSON now
includes gaps (with subject code) and each concept's book_passages; the
concepts CSV gains a taught_in column.
2026-10-27 21:28:41 +01:00
Vijay Janapa Reddi ce5aa5fc3a Taxonomy: a label or alias must name exactly one concept
Five names each resolved to two concepts, so a glossary lookup or a
tagger could land on either. The dedicated concept keeps the name:
Pareto frontier, SIL (safety integrity level), model export, data
loader (host-side loading), app memory limit (on-device budget). The
compiler now rejects a label or alias, case- and space-insensitive,
shared by two concepts.
2026-10-27 21:17:51 +01:00
Vijay Janapa Reddi f76817c904 Taxonomy: resolve chapter pointers only to folders that hold their QMD
A leftover build-output folder (books/vol1/02_ml_systems/, untracked HTML)
beside the renamed 02_system_paradigms/ made v1/02 ambiguous, so
concepts build and check failed in the main checkout. Count a folder as a
chapter only when it contains <folder>.qmd, and add a regression test.
2026-10-27 21:06:54 +01:00
Vijay Janapa Reddi 96587aaded binder: write framework figures to the shared taxonomy folder
framework_figures.py spelled the old site/explore path on its own, so a
render still dropped three SVGs there. It now uses concept_graph.SITE_DIR
like the other taxonomy builders, and the stray copies are removed.
2026-10-27 05:50:40 +01:00
Vijay Janapa Reddi 3a158cacbc site: serve the ML Systems Taxonomy at /taxonomy/ and retire /explore/
The page moves from site/explore/ to site/taxonomy/, matching its title,
its nav label, and the identifier namespace the taxonomy already used.
/explore/ keeps unlisted noindex redirect stubs, with relative targets
so they resolve on both the live site and the dev preview subpath.

The binder now holds the folder and the public address in one place
(concept_graph.SITE_DIR and PAGE_URL), and the generated page data carries
the address so the on-page citation reads it instead of repeating it.
The dev preview rewrites links inside taxonomy/ like the other subsites.
2026-10-27 05:45:54 +01:00
Vijay Janapa Reddi afce08afe7 Taxonomy: write the framework without YAML aliases and refuse them
A merge script that reused list objects emitted 30 anchors into
ml-systems-framework.yml, which StaffML's hardened loader rejects. Rewrite
the file in full (same data) and make the concepts build fail on aliases.
2026-10-22 14:26:49 +02:00
Vijay Janapa Reddi 314db150aa Record tagging agreement and recompute it with binder concepts agreement
Subject agreement 78.7% (kappa 0.78) under the first rules and 83.7%
(kappa 0.83) after revising them on the same sample, which the record
marks as no longer held out.
2026-10-22 13:55:35 +02:00
Vijay Janapa Reddi 7c679bb222 Explorer: show the home rule and placement examples; ship them in JSON
Update docs and changelog for the second review round.
2026-10-22 13:27:40 +02:00
Vijay Janapa Reddi 4de6fe2410 Explorer: show tagging rules; ship them, retired ids, and home ids in JSON
Update docs and changelog for the review round and the P codes.
2026-10-22 13:04:29 +02:00
Vijay Janapa Reddi 821ae599d3 Compile the ML systems taxonomy: codes, relations, releases, coverage
The framework compiler now accepts a groups tier and nested readable codes
(L4.4), resolves chapter pointers to titles and clean published URLs, and
rejects scope notes that cite a row or area that does not exist. The field
compiler enforces a controlled relation vocabulary, rejects duplicate concept
pairs, and keeps retired concept identities pointing at a replacement.

Each build writes public downloads (CSV, JSON, SKOS Turtle, GraphML, BibTeX)
to site/explore/downloads. `binder concepts coverage` scores recorded
checklists and fails when a judgment cites a concept that no longer exists.

Chapter URLs now use the flattened published form (/volN/<chapter>/...).
2026-10-22 12:30:40 +02:00
Vijay Janapa Reddi 1f9af17810 Add cross-volume concept explorer and coverage audit pipeline 2026-10-21 15:50:05 +02:00
Vijay Janapa Reddi 27d4f8114b binder: fix repo-root, build, doctor and info bugs; clearer errors; dedup
Bug fixes
- Build lock is keyed on books/ so builds started from different
  directories block each other (fixes two tests broken by 89b828efa3).
- ConfigManager resolves the repo root when binder runs from books/ or
  binder/, so bib, newsletter, doctor and render paths are right.
- `build <word> --all` treats intro/scaling/agentic/physical as chapter
  names (it built every volume), and Ctrl-C stops a --all loop.
- doctor checked chapter names that no longer exist and failed on the
  generated _quarto.yml; info defaulted to a deleted books/contents.
- `headings apply --path <typo>` no longer rewrites the whole book;
  `bib clean` stops on unreadable chapters instead of dropping entries.
- Discovery falls back to a line scan on invalid YAML instead of crashing.
- Volume III/IV were labeled Volume II in layout and release output.

Output
- Unexpected errors print the command, exception type, and raising
  file:line (new cli/core/errors.py), with the traceback on stderr.
- Chapter-not-found suggests the closest names and the list command.
- Silent except blocks in bib lookups, info, headings, layout,
  maintenance, preview and debug now say what went wrong.

Cleanup
- Shared qmd_files_under/display_path, file-rewrite loop, doctor result
  helper, preview server, clean helpers, volume display names.
- Removed legacy import fallbacks, dead config attributes, legacy backup
  restore logic, and unused imports.
2026-10-19 19:28:49 +02:00
Vijay Janapa Reddi 7c3aecc6b2 binder check: fix silent skips and passes, unify reporting, remove duplication
Bug fixes
- Single-file --path now scans in nine scopes that treated a file as a
  directory and passed having checked nothing.
- Citations: vol3/vol4 chapters were skipped since the bib unification;
  every volume now falls back to the shared references.bib, and a missing
  bib is reported. Line numbers match the exact key.
- Table caption scopes resume correctly after fences; pdf-entry-numbering
  reads the index files it exists to check; python-dollar-collision no
  longer stops at a one-line $$...$$; rendered-python-leak line offsets;
  float-flow handles :::: openers; pdf-verify no longer passes a failed
  edge-overflow row; checklist labels vol3/vol4 correctly.
- --check-scope reports check_scope_retired instead of crashing.

Output
- Checks that cannot run (missing PDF, EPUB, pdfplumber, PyMuPDF, aspell,
  unparsable YAML, a crashing checker) report an error with the command
  that fixes it instead of passing.
- Book-relative paths everywhere; index/registry findings carry file:line.
- Issues without a suggestion take the fix from check_catalog.yaml.
- Failures end with the command to rerun each failing scope; a clean run
  prints one summary line (suppressed by --quiet).

Cleanup
- One helper each for the index, LEGO/registry, and repo registry
  wrappers; merged audit-check runners and shared violation conversion.
- Removed dead helpers, aliases, constants, and unused imports.

Check counts on the books are unchanged for every pre-commit invocation.
2026-10-19 19:28:45 +02:00
Vijay Janapa Reddi 6218c52866 binder: clean up build worktrees when a parallel run is killed
Parallel and debug builds removed their worktrees only on normal exit or
Ctrl-C. SIGTERM (timeouts, agent harnesses) and SIGHUP (closed terminal)
killed the process before cleanup, and nothing ever swept the leftovers,
so detached worktrees piled up in $TMPDIR/binder-workspaces (28 GB today).

- run_jobs and the debug bisection now turn SIGTERM/SIGHUP into
  KeyboardInterrupt, so their existing cleanup runs.
- run_jobs first removes runs whose binder process has exited (the pid is
  in the run directory name) and prunes their worktree registrations.
- --keep-workspaces runs are marked and skipped by the automatic sweep.
- New `binder clean workspaces` removes leftovers on demand, kept runs
  included.
2026-10-19 18:52:14 +02:00
Vijay Janapa Reddi 89b828efa3 binder build: refuse a second concurrent build in the same checkout
Two builds in one worktree overwrite each other's generated _quarto.yml, index.qmd
and freeze files and fail with unrelated-looking errors. Hold an flock on
.binder-build.lock for the serial build path; the OS drops it when the holder dies,
so a killed build never leaves a stale lock. Separate worktrees do not contend.
2026-10-18 15:09:01 +02:00
Vijay Janapa Reddi 6eb08beb60 fix(notation): retire unused registry macros, zero out .qmd raw-symbol baseline, and enforce notation-local coverage 2026-10-17 17:57:22 +02:00
Vijay Janapa Reddi aaa7266ecc binder check: accept options and files in any order (Python 3.11 argparse rejected --scope before a file) 2026-10-16 21:28:09 +02:00
Vijay Janapa Reddi 6e5490be4a Merge fix/lbnl-2025-update: vol2 ch15 on the LBNL 2025 Update; binder fetch user-agent fallback 2026-10-13 20:51:27 +02:00
Vijay Janapa Reddi b97c623c65 Merge dev into fix/lbnl-2025-update 2026-10-13 20:50:35 +02:00