123 Commits
Author SHA1 Message Date
Vijay Janapa Reddi e5eaffb217 fix(staffml): keep responsive navigation and filters accessible 2026-11-06 18:47:04 +00:00
Vijay Janapa Reddi e88448eaa7 Merge pull request #2187 from Nishitha-Rajesh/staffml-a17pro-bandwidth-followup 2026-11-06 17:38:58 +00:00
github-actions[bot] d96ac23279 chore(staffml): bump vault release to 0.1.4 2026-11-06 16:13:44 +00:00
Vijay Janapa Reddi b86c4a6d21 Restore SocratiQ reading and study workflows across four volumes 2026-11-06 10:00:40 +00:00
Claude c99f48d5e3 StaffML: use the A17 Pro's 51.2 GB/s in five more questions
Follow-up to #2180 for the questions listed in the closing comment. The
mlsysim registry (hardware/data/mobile/iPhone15Pro.yaml) gives the A17 Pro
51.2 GB/s (LPDDR5); every figure derived from the old value is recomputed.

- mobile-0109 (68 GB/s): weight load 0.05 -> 0.07 ms; the ~3.8 ms
  overhead-bound total is unchanged.
- mobile-0998 (68 GB/s): A17 Pro TPOT bound 7.4 -> 9.8 ms. Snapdragon still
  wins both concurrency and TPOT, and Tensor G3 (10.0 ms) is still slower.
- mobile-1001 (68 GB/s): the scenario said iPhone 16 Pro but the title and
  analysis are A17 Pro, so it now says iPhone 15 Pro. The 7.4 ms baseline is
  faster than 500 MB / 51.2 GB/s allows, so TPOT is rescaled 7.4 -> 9.8 ms
  and 14 -> 18.6 ms; the implied sustained bandwidth is 26.9 GB/s, keeping
  the 52.5% ratio and the "roughly halved" conclusion.
- mobile-1021 (68 GB/s): the A17 Pro is an LPDDR5 design, so it now
  illustrates the LPDDR5 case that misses 30 ms. The LPDDR5 TPOT is
  1.5 GB / (51.2 - 2.6) GB/s = 30.9 ms; the old 51.2/50*30 = 30.7 ms had the
  ratio inverted. Tensor G3 (registry 60 GB/s, not 51.2) is dropped from that
  sentence.
- mobile-1060 (~100 GB/s): A17 Pro decode 66.7 -> 34.1 tok/s. Tensor G3
  uses the registry's 60 GB/s instead of 68 (45.3 -> 40.0 tok/s). The
  ranking becomes Snapdragon > Tensor G3 > A17 Pro; the lesson (decode
  follows bandwidth, not TOPS) is kept: Tensor G3 has the lowest TOPS but
  beats the A17 Pro.

Only text fields change. Refs #2180.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxFzWDUc3UeWQ1QBGjw6UM
2026-11-06 08:27:11 +00:00
github-actions[bot] 146a2750e5 docs: add @Nishitha-Rajesh as contributor for bug (staffml) 2026-11-06 08:12:46 +00:00
github-actions[bot] 58b208b68b docs: add @Nishitha-Rajesh as contributor for code, doc, test (staffml) 2026-11-06 07:57:08 +00:00
Vijay Janapa ReddiandGitHub 2ee332ce58 Merge pull request #2183 from Nishitha-Rajesh/staffml-four-calc-spec-fixes
StaffML: fix the stem roofline in edge-1138 and Orin NX specs in edge-2138 (#2180)
2026-11-06 08:53:13 +01:00
Vijay Janapa ReddiandGitHub 3036baa1a5 Merge pull request #2182 from Nishitha-Rajesh/staffml-a17-pro-bandwidth
StaffML: use the A17 Pro's 51.2 GB/s memory bandwidth in 28 questions (#2180)
2026-11-06 08:53:08 +01:00
Nishitha RandClaude Opus 5.5 eccb990f19 StaffML: use the A17 Pro's 51.2 GB/s memory bandwidth in 28 questions
The mlsysim registry (hardware/data/mobile/iPhone15Pro.yaml) gives the
A17 Pro 51.2 GB/s (LPDDR5-6400, 64-bit), as do 29 other A17 Pro questions.
These 28 used 60, 68, 85, 100 or 120 GB/s; 68.25 GB/s is the M1's LPDDR4X
figure. Every number derived from the bandwidth is recomputed:

- 68 GB/s (23 questions): decode, ridge-point and load-time figures
  rescaled by 68/51.2; e.g. mobile-0978 INT8 TPOT 14.7 -> 19.5 ms,
  mobile-1010 ridge 514 -> 684 ops/byte, mobile-1783 contended decode
  10 -> 5.2 tok/s.
- Where a scenario's measured number exceeded the hardware limit, the
  scenario is rescaled so the question still teaches the same point:
  mobile-1005 TPOT 7.4 -> 9.8 ms baseline (was faster than 500 MB /
  51.2 GB/s allows), mobile-1013 TPOT 88 -> 117 ms with the target scaled
  30 -> 40 ms, mobile-1786 measured 15/12 -> 11/9 tok/s (15 tok/s of a
  4.3 GB model needs 65 GB/s).
- mobile-0724 (120 GB/s): a 7B INT4 model cannot reach the scenario's
  25 tok/s at 51.2 GB/s (ceiling 14.6 tok/s), so the model is now 3B INT4
  (1.5 GB), which keeps the 25 -> 5 tok/s contention story.
- mobile-1422 (100 GB/s effective): the layout-copy traffic is now 80 MB
  per transpose at ~40 GB/s effective, keeping the 16 ms copy estimate.
- mobile-1027, mobile-1036, mobile-1597: LPDDR5X -> LPDDR5.

mobile-1775 from the issue is already status: deleted and is left alone.
Only text fields change. Refs #2180.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxFzWDUc3UeWQ1QBGjw6UM
2026-11-05 05:08:57 +00:00
Nishitha RandClaude Opus 5.5 d03119524b StaffML: fix the stem roofline in edge-1138 and Orin NX specs in edge-2138
- edge-1138: the stem used 54.6M FLOPs "under the benchmark's convention",
  but every other layer counts 2 ops per MAC. On that basis the stem is
  2 * 112*112*32 * 27 = 21.7M FLOPs, AI = 39 FLOPs/byte over the question's
  552 KB, below the 55 FLOPs/byte ridge: memory-bound at ~71% roofline MFU,
  not compute-bound. Conclusion and realistic_solution updated to match.
- edge-2138: Orin NX ships as 8 GB or 16 GB at 102.4 GB/s (mlsysim
  JetsonOrinNX.yaml: 16 GiB, 102 GB/s); "32GB at 68 GB/s" matches no Orin.
  Spill traffic is now ~4% of the bandwidth ceiling; the conclusion holds.
- edge-0586: the unfused itemization now includes the conv's 12 MB
  input+weight read, so it sums to the stated 62 MB.

Refs #2180.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxFzWDUc3UeWQ1QBGjw6UM
2026-11-05 05:03:41 +00:00
Nishitha RandClaude Opus 5.5 7352342887 StaffML: count the per-token weight read in six batch-1 decode questions
At batch 1 every decode step streams all weights from DRAM/HBM once;
"resident" means resident in DRAM, not on-chip. These six questions
counted only KV traffic, which flips three answers and understates two
latencies by about 20x:

- edge-1186: INT8 takes 3.78 s and misses the 2 s SLO; INT4 takes 1.93 s
  and meets it only at peak bandwidth (was: both meet it in 72 ms).
- edge-0918: (1 GB + 0.128 GB) per token at 25 GB/s gives 22.2 tok/s, the
  measured rate; weights are 89% of the bytes, so speculative decoding or
  lower-bit weights beat GQA (which caps out near 25 tok/s).
- mobile-1054: the 1.9 GB weight stream alone takes 24.7 ms > 20 ms TPOT,
  so no context length meets the SLO (was: ~4K context fits).
- edge-1430: TPOT 105 ms, decode 10.5 s, E2E ~10.65 s (was 575 ms);
  prefill is floored at 100 ms by its weight read.
- edge-1194: decode ~7.3 s, 96% of it weight traffic (was ~320 ms); the
  64 GB/s figure is now labelled as effective (Orin NX peak 102.4 GB/s).
- cloud-3015: the 4.3 ms weight-plus-KV figure is the batch-1 floor, not a
  pessimistic bound; the conclusion (KV cache wins) holds at 3-11x.

Only text fields change; ids, taxonomy tags and audit stamps are untouched.
Refs #2178.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SxFzWDUc3UeWQ1QBGjw6UM
2026-11-05 05:02:14 +00:00
Vijay Janapa Reddi 713fa75c91 Report duplicate-command usage errors without a Rich exception 2026-11-05 01:24:40 +01:00
Vijay Janapa Reddi 769241d0c0 Fix vault authoring commands to use current question and review fields 2026-11-05 01:23:00 +01:00
Vijay Janapa Reddi 0b6c2e6086 Refresh vault model checksum after taxonomy path comment correction 2026-11-05 01:07:44 +01:00
Vijay Janapa Reddi 649d2954bb Refine taxonomy editorial workflow, presentation, and documentation 2026-11-04 22:03:03 +01:00
Vijay Janapa Reddi 793df10a70 staffml: follow taxonomy 0.4-draft moves and offer new concepts
10 of 23 questions tagged with a moved concept change subject to the new
home; 44 of 185 subject-only questions gain the concepts two independent
taggers both chose (80.5% tag-or-not agreement). vault check --strict passes.
2026-11-02 12:23:51 +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 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 c78a2d09cb fix(taxonomy): harden 0.3-draft graph relations, guides, coverage, alignment, and visualizations 2026-10-29 18:06:28 +01:00
Vijay Janapa Reddi a200c096bb Merge dev into feat/taxonomy-two-source-gaps for retire 2026-10-28 16:46:22 +01:00
github-actions[bot] e616d48941 chore(staffml): bump vault release to 0.1.3 2026-10-28 15:45:50 +00:00
Vijay Janapa Reddi d5ae83a5b7 Taxonomy changelog and StaffML labels for 807 concepts 2026-10-28 16:32:51 +01:00
Vijay Janapa Reddi 1f6c0ed095 Update vault-cli codegen hash for models.py taxonomy comment 2026-10-28 08:17:04 +01:00
Vijay Janapa Reddi 983e7649e2 Consolidate ML Systems Taxonomy into root taxonomy/ directory 2026-10-28 08:02:35 +01:00
github-actions[bot] 9ab2572401 chore(staffml): bump vault release to 0.1.2 2026-10-27 22:31:32 +00:00
Vijay Janapa Reddi 40f4cbdf4a Merge dev into feat/taxonomy-heldout-gaps for retire 2026-10-27 23:07:31 +01:00
Vijay Janapa Reddi 7e812a974c StaffML: labels for 805 concepts; tag six MoE questions with expert offloading
Both independent taggers chose expert offloading for the same six
questions and none of the other new concepts for any subject-only
question. vault check --strict passes.
2026-10-27 23:07:22 +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 e99014d0a6 StaffML: tag 106 subject-only questions with taxonomy concepts
Two independent taggers (gpt-6.1-sol, claude-opus-5-5) offered each of
the 445 subject-only questions its subject's concepts plus the 63 new
ones; they agreed on tag-or-not for 76.6%. A concept is written only
where both chose it. 339 questions remain subject-only.
2026-10-27 22:44:19 +01:00
Vijay Janapa Reddi 42da3ac916 StaffML: re-review questions tagged with the two moved concepts
Of 25 questions, 7 had taken their subject from the concept's old home:
three PII questions move to privacy-dp, four FLOP-accounting questions to
workload-characterization. The other 18 are tagged by what they test and
keep their subject. vault check --strict passes.
2026-10-27 22:18:47 +01:00
Vijay Janapa Reddi ba7e352520 StaffML: refresh taxonomy labels for 0.3-draft
Regenerated with emit_taxonomy_labels: 63 new concepts, the renamed
diffusion or flow-matching policy, and the two moved concepts. vault
check --strict passes on all 10,716 questions.
2026-10-27 22:15:14 +01:00
Vijay Janapa Reddi 5644e5ca10 fix(staffml): keep hardware reference rows readable
Latency comparisons such as "4.5 minutes" wrapped onto two lines in the
narrow column, raw latencies showed noise digits (272.82 ns), and the
ESP32-S3's 80 MB/s bandwidth rounded to "0 GB/s".
2026-10-27 20:27:25 +01:00
Vijay Janapa Reddi 96e4bd9b09 feat(staffml): take hardware, network, and model numbers from MLSysIM
StaffML is a static site and cannot run MLSysIM, so its numbers lived in a
hand-copied table that cited a deleted mlsysim/core/constants.py. Five
devices had drifted: Jetson Orin NX showed its FP16 rate under an INT8
label, the A17 Pro listed 100 GB/s against 51.2 GB/s, B200 memory was 192
against 180, TPU v5p had the wrong year, and every ESP32-S3 field was off.

scripts/export_mlsysim_data.py now reads the MLSysIM registries straight
from the repo and writes src/data/mlsysim.json, which hardware.ts serves.
Each row records the registry entry it came from. Interconnect and latency
values move to MLSysIM's measured or sourced figures (NVLink B200 0.5 us,
InfiniBand XDR 5 us, 100GbE 50 us, Hopper HBM 273 ns). The cross-US fiber
row stays local because MLSysIM has no route distance. The simulator's
flops_per_token is 6 x parameters, now labeled as training cost.
2026-10-27 20:27:16 +01:00
Vijay Janapa Reddi 48dc404e52 Revert "fix(staffml): keep hardware reference rows readable"
This reverts commit 1214365a67.
2026-10-27 20:27:07 +01:00
Vijay Janapa Reddi 1214365a67 fix(staffml): keep hardware reference rows readable
Latency comparisons such as "4.5 minutes" wrapped onto two lines in the
narrow column, raw latencies showed noise digits (272.82 ns), and the
ESP32-S3's 80 MB/s bandwidth rounded to "0 GB/s".
2026-10-27 20:26:35 +01:00
Vijay Janapa Reddi 5288fd2314 test(staffml): pin the interviewer's napkin-math grounding
Covers the scenario-plus-question context, the Assumptions-only cut used
in interview mode, and the site and worker copies of the delimiter
pattern and the cut, which must stay identical.
2026-10-27 17:19:09 +01:00
Vijay Janapa Reddi 7c01038fd8 docs(staffml): bring the interviewer worker docs up to date
Groq is the production provider with Workers AI as the floor, the /ask
body has mode, canonicalAnswer, and napkinMath, /interview is documented,
the default models match the code, and the Groq free tier's per-minute
limit is explained.
2026-10-27 17:19:06 +01:00
Vijay Janapa Reddi c88d68a357 fix(staffml): replace the interviewer's retired Anthropic and Gemini defaults
claude-3-5-haiku-latest and gemini-1.5-flash no longer exist, so adding
either key would have failed every request into the fallback. Haiku 5.5
rejects a non-default temperature and thinks by default, so the Anthropic
call drops temperature and turns thinking off to keep the short reply
budget for text. Neither key is set in production, so live traffic is
unchanged.
2026-10-27 17:19:02 +01:00
Vijay Janapa Reddi 89009f63a4 fix(staffml): patch undici, vite, and vitest advisories in both workers
The vulnerable undici is pinned inside wrangler's miniflare, so wrangler
moves to 4.153 in both workers. These are build and test tools only; the
interviewer worker's deploy bundle is unchanged. Typecheck, the vault
worker's tests, and both dry-run deploys pass.
2026-10-27 17:14:48 +01:00
Vijay Janapa Reddi 091c72b067 fix(staffml): patch next, vite, undici, zod, and vitest security advisories
Resolves the open Dependabot alerts on staffml/app, including the critical
next advisory (fixed in 16.4.1). Every bump stays inside the declared major
version. Typecheck, unit tests, the production build, and the headless
E2E smoke all pass.
2026-10-27 17:13:59 +01:00
Vijay Janapa Reddi 584175910b fix(staffml): tell interviewer users when the daily limit is the one they hit
The daily per-IP limit returned the hourly message, so a student told to
try again later would keep failing until midnight UTC.
2026-10-27 17:01:05 +01:00
Vijay Janapa Reddi ed3fa354c6 chore(staffml): turn off version preview URLs for the interviewer worker
An uploaded test version stays publicly reachable through its preview URL
with whatever vars it was uploaded with, spending the production provider
keys.
2026-10-27 16:39:12 +01:00
Vijay Janapa Reddi 94cea73e47 fix(staffml): send the question and its napkin math to the interviewer
The interviewer only received the scenario, which often leaves out the
actual question. It now gets the scenario plus the question, and the
question's napkin math so the worker can ground both modes. Copy-as-prompt
carries the same blocks.
2026-10-27 16:04:28 +01:00