Repository navigation
Serving-load PR2/3: GLM rows out of serving_load_probe; admission and frontier per subject - #12842
Conversation
…r, GLM bound onto it One runner for every served model, parameterized by a ServingLoadSubject (host, LAN address, fabric group, container, base URL, served alias, subject standing, principal, receipt) and a list of load steps. Per step: scrape before -> vllm bench serve -> scrape after -> serving_load_observation, reusing gunbc.spark.serving_load_probe's vocabulary unchanged. The access bracket stays at each model's entry, which hands the runner its context. glm_native_serving_load_wet is now GLM's subject plus its one step (c=2 smoke) on the runner. A witness pins the runner's step text byte-equal to the pre-runner inline composition; mutating GLM's principal reds it (executed locally, rc=0 clean / rc=1 mutated). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…frontier become per-subject serving_load_observation hard-coded glm_native_workload_admission and glm_native_qualification_frontier, so every model's receipt would carry GLM's admission standing. Both are now parameters, carried per model on ServingLoadSubject. Every GLM row (qualification frontier, workload admission, engine tokenizer path, sweep dataset, bench seed, base URL, smoke protocol, live subject and standing, protected subject) moves into gunbc.spark.glm_serving_load, which also holds GLM's runner binding and glm_native_serving_load_wet. gunbc.spark.serving_load_probe_cli is deleted: it held only that binding. Its consumers were enumerated by name first (two witness modules) because serving_load_probe is outside the required lanes' resolution. New witness the_receipt_carries_the_subjects_admission_not_glms; executed locally with 3 serving_load_probe witnesses and the PR1 witnesses: clean rc=0, mutation (probe ignores the admission parameter) rc=1 subject_admission. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Roster: not edited, deliberately. docs/rung-drops/required_lanes_do_not_resolve_product_layer_modules_2026-09-20.txt is a snapshot receipt of ONE run: its header pins tree 3dff8c5 + binary sha256 b7d9ecf8, and the drop's own population field (gunbc.rung_drop.required_lanes_do_not_resolve_product_layer_modules) says it is 'a receipt of one run and not the authority'. The population is enumerated by identity by gunbc test //gunbc/instruments:required-lane-resolution-census, which re-derives it from the live tree. Deleting serving_load_probe_cli / adding glm_serving_load + serving_load_runner changes the census output, not the drop. Hand-editing the receipt would make it claim a run that never happened (§6: name the instrument, never transcribe its output). Old entry path: git grep finds no workflow, doc or .dag invoking serving_load_probe_cli. The one hit is a witness comment describing the pre-runner composition, which is historical by design. — sent from fierce-carp-324 |
…24-pr2 # Conflicts: # dag/gunbc/spark/serving_load_probe_cli.dag # dag/gunbc/spark/serving_load_runner.dag # dag/test/claim/spark/serving_load_runner_witness_test.dag
PR2 of 3 for the shared serving-load runner. Stacked on #12838: this branch contains its commit. Review only the second commit (the diff shrinks once #12838 lands). The base is main so CI runs.
The defect this moves out.
serving_load_observationreadglm_native_workload_admissionandglm_native_qualification_frontierdirectly. Every model's receipt, V4.1's included, would therefore have printed GLM's admission standing and GLM's Group B frontier. Both are now parameters ofserving_load_observation, carried per model onServingLoadSubject. Per-model numbers stay per model (DESIGN §3); the shared module holds none.What moved. Every GLM row now lives in the new
gunbc.spark.glm_serving_load. That module also holds GLM's runner binding andglm_native_serving_load_wet. The rows are:ClientRateQualificationFrontierstayssole_constructorand gains theclient_rate_qualification_frontierconstructor. The imports only GLM needed are gone fromserving_load_probe.Deleted.
gunbc.spark.serving_load_probe_cli: it held only GLM's binding. The run command is now--entry dag/gunbc/spark/glm_serving_load.dag --function glm_native_serving_load_wet.serving_load_probeand its CLI are among the modules no required lane resolves (rung droprequired_lanes_do_not_resolve_product_layer_modules). So, per DESIGN §3 replacement migration, I enumerated consumers by name before deleting: the two witness modules, both updated. The same drop means green CI on this PR (and on #12838) does not execute these modules. The executed evidence is local:Evidence.
gunbc runthrough a scratch driver covered 7 witnesses:serving_load_probe_witness:the_receipt_persists_raw_evidence_for_replay,the_live_subject_receipt_carries_the_nccl_announcement_obligation,receipts_differing_only_in_the_settling_obligation_differResults:
the_receipt_carries_the_subjects_admission_not_glms, with the mutation "the probe ignores its admission parameter and prints GLM's cause": rc=1,subject_admissionThe rest of
serving_load_probe_witnesswas not executed locally; it was typechecked by the same run.Next. PR3 binds V4.1: Group A, srv6:30000,
deepseek-v4.1-flash,gunbc-v41-tp4. Its own admission and frontier, its staircase feedingv41_capacity_measurement, and a fleet-converge mode row. The wet run is a named frontier until V4.1 serves on main's path.🤖 Generated with Claude Code