Skip to content

Model-reception closeout: real-weight smoke, bilingual model flows, return supplement v3, handbooks and handover - #43

Merged
Jeffreyliu0131 merged 14 commits into
mainfrom
claude/150-model-acceptance
Oct 13, 2026
Merged

Jeffreyliu0131 merged 14 commits into
mainfrom
claude/150-model-acceptance

Conversation

@Jeffreyliu0131

Copy link
Copy Markdown
Collaborator

Closeout of the model-reception wave (task book 143, line 150): the returned-model path is exercised end to end with real pretrained weights, the bilingual model flows join the regression suite, the v3 return supplement is packaged for the data/model owner, and the repository documents how to take the work over.

What changes

  • Real-weight smoke (scripts/smoke/xlmr_base.py, SMOKE-01..03): FacebookAI/xlm-roberta-base pretrained weights with untrained heads are registered as a synthetic_fixture (weights_stage=pretrained_untrained_heads) and driven through loading, sentence splitting and abstention. Measured on this machine: load 2.3–4 s, 0.12–0.34 s per sentence (pair variant), first review 2.8–4.8 s, second 1.4–3.3 s; when a candidate is a whole document every sentence exceeds 512 tokens and abstains as designed. MAX_UNITS=24 is kept; a recommendation (12, or batched forward passes on slower hosts) is recorded, not applied.
  • Bilingual model flows (apps/web/tests/regression/model-flows.mjs, scripts.regression.browser --suite model-flows, FLOW-01..05): zh/en runs with a keyword-built linear return and a linear×linear fusion show the synthetic demo block, per-sentence results, evidence buttons opening the source, registration identity and training data, refresh without re-inference, drift after a registry file changes, the assistant generation label from the ASSISTANT slot and the evaluation model name from the JUDGE slot. The same business fact yields the same six sentence verdicts in both languages. Encoder, heterogeneous fusion and XLM-R run in the optional encoder suite.
  • Return supplement v3 (docs/data/return-v3/): README, the linear/encoder/fusion/dataset/prediction/test-opening specs, reference exporters, golden vectors and a standard-library self-check, bound by SHA256SUMS (13 files; removing, adding or altering any file fails the check).
  • Handbooks and handover: docs/data/expansion-v3-w07.md, expansion-v3-w08.md, docs/modules/expansion-v3/W08.md rewritten to the current commands (four model slots, multi-registration, v3 returns, one-time test opening, tolerance, selection rule); stale statements removed. README.md updated from its 2026-10-05 state; new docs/HANDOVER.md covers environment, scripts/check_fast.py (unit + contract + lint, about 1.5–2 minutes), the full gate, contract regeneration, generated files, a no-owner-artifacts demo path via model_flows.build("linear", …), the v3 package sending steps and the follow-up list.
  • Fusion selection and format check share one rule (models/v3/core.py::evidence_missing): a grid point whose own dev predictions contain evidence-less SUPPORTED/CONTRADICTED rows is computed but ineligible, so the recomputation and the return format check can no longer disagree.
  • Learner-sentence relation records (--relation-units on the authorised export, EXP-07): one relation record per learner sentence using the same r2-support-units-v1 splitter as inference; without the flag the export's structure and keys are unchanged.
  • Baseline and small follow-ups: 510 wave test IDs added to tests/regression/test-baseline.json; the two 2026-10-12 feedback-copy decisions (denominator line "适用项共 X 分,其中 Y 分适用性待确认"; coverage shown as item counts only); LIN-02 model.json > 64 MiB case; FSEL-01 fusion_selection_not_registered; criterion entries are skipped instead of failing the block; frontend-style.md exception for model identity in the advice block.

Review and verification

  • Independent review 080-review-150.md: first round sent back (default export wrote an extra key; selection and format check disagreed on evidence-less rows; HANDOVER assumed an owner artifact), fixed in 438fb37/fbe587b/b3423e5; the reviewer also took over the repository from scratch using only README and HANDOVER. Second round: see the review's re-check section.
  • Locked full gate on 91310f0 (before the three small fixes): lint 0 new; backend 3678 passed / 31 skipped; frontend 448 / 7; 72 state checks; build; per-ID "0 problems" against main 92aa0eb; browser 20 steps zh+en; MCP bilingual; model-flows 16 default + 12 optional steps; optional encoder suite 23. The fixes were verified with the targeted suites (384 passed, 22 new IDs, 0 missing / 0 regressed), model-flows 16/16, check-fast and lint; the full suite runs again in CI on main.

Not claimed / registered

Model quality is not verified; no owner artifact has arrived; no real test opening has happened (each one is confirmed by the user). Open product questions recorded for the next wave: R2.support candidates are whole materials, so a 512-token encoder abstains on them (candidate granularity is a product decision); heterogeneous fusion therefore shows no labels in the normal entry yet; model-flows is not chained into run --browser. Criterion-head reception, Judge SFT input export and GRPO stay in the handover list (§8). Receipt: 完成回执/claude-coordination/150-冒烟与中英收口.md.

…p criterion entries

Range line with undetermined applicability now reads 'applicable items X points, Y of
which are undetermined' (2026-10-12 item 2); the coverage line shows item counts only
(item 3). Criterion advice entries are skipped instead of failing the relation block
(149 review P3-4). Existing assertions on the old copy are updated to the decided text.
…rk sentences (EXP-07)

export --live --relation-units adds one relation record per R2.support sentence unit
(r2-support-units-v1, the product's own splitting), so each exported sentence has the
unit_hash the registered model judged. source-map entries carry relation_source
(work_unit / assistant_answer), unit_policy, unit_index and unit_hash; model inputs keep
their closed key set and carry no gold or rule bound. The default export is unchanged.
… the registered copy

145 review N1: model.json past 64 MiB is refused on its own (arrays small).
147 review P3: verify-return names fusion_selection_not_registered when the given
record differs from the copy registered with a 145 fusion registration.
scripts/smoke/xlmr_base.py exports the downloaded FacebookAI/xlm-roberta-base through
export_hf_return.py as pretrained_untrained_heads, seals, registers it synthetic_fixture,
then reviews the scenario's zh/en decision examples twice in the normal runtime and
reports load time, peak RSS, per-sentence token counts, over-limit abstentions and
per-sentence seconds, with a MAX_UNITS suggestion (advice only, nothing changed).
tests/optional_encoder/check_xlmr_smoke.py needs the encoder extra and the download.
scripts.regression.browser --suite model-flows serves one synthetic registration per
phase (keyword linear return; keyword linear x linear fusion at alpha 0.75; linear plus
loopback JUDGE and ASSISTANT slots) over real HTTP, a worker and vite preview, and runs
tests/regression/model-flows.mjs: submit -> feedback -> identity, training data,
per-sentence advice, evidence opening the source, synthetic mechanism title; reload
reads stored feedback without a model run; a changed registered file shows as model
files changed; the evaluation model line names the JUDGE slot and assistant generation
is labelled and served by the ASSISTANT slot (loopback call log checked). Keyword
weights contain no digits, so one business fact gives the same per-sentence results in
both languages. --optional-encoder adds tiny-encoder, heterogeneous and XLM-R phases.
published-flows runs exactly as before.
A sentence whose input passes the encoder's token limit is left unjudged, not cut; when
every sentence is, the block says the model judged no sentence (tiny encoder, limit 256,
on whole-material candidates). XLM-R (limit 512) judges these inputs.
144 (86), the five merged lines 145-149 (397 as listed by the 157 integration gate,
including 146's renamed IDs) and this line's new IDs (4 backend, 9 frontend), all
passed. One 149 frontend ID left the tree here: the 'criterion advice' rejection case
is replaced by the criterion-skip tests (149 review P3-4); it was never in the baseline.
…lf-check

docs/data/return-v3/README.md is the entry page for the responsible party; SHA256SUMS
covers all 13 published files and check_package.py (standard library only) verifies it,
refuses unlisted files such as .DS_Store, symlinks and unparsable JSON/JSONL.
encoder-return.md lists registry-internal and per-prediction abstention codes and asks
to delete hidden files before delivery (146 review P3); linear-return.md and
fusion-selection.md describe the merged 147 verifier as current (145 review N3).
tests/unit/test_return_v3_package.py (PKG-01..09) keeps the package and its sums in step.
README now describes the product after the model-receiving wave: how to run serve,
worker and the v4 front end, the two credential variables, the four model slots,
registration and verification entry points, and the gate layers. HANDOVER is one page
for a new agent or person: services, check-fast and the full gate, contract re-export
and re-signing, generated files, the v3 package and the follow-up list.
check_fast runs lint plus backend unit and contract tests in about 1.5 minutes.
frontend-style.md §2.1 records the model advice block as the one place that may show
model IDs, versions and the word training (2026-10-12 decision).
…run)

expansion-v3-w08.md: four registration kinds and the inference closure, linear return
and fusion registration, encoder return v3 with dependency lock, XLM-R smoke and the
MAX_UNITS suggestion, per-sentence consumption, cache and drift, model slots, feedback
display, model-flows, verify-return v3 and one-time sealed test opening. W07: the
--relation-units export and its source-map fields, sealed layout and v3 linear return
roles. modules/W08.md: the 149 display, counts-only coverage and range copy, port
override. Stale statements removed. Registration and switching commands were run as
written (DOC-01); five places that did not match behaviour were corrected in the text.
HANDOVER follow-ups gain candidate length, MAX_UNITS and the contract fix set.
…ck (158 P2-2)

models/v3/core.py::evidence_missing (a successful non-INSUFFICIENT result with no
selected evidence where evidence is evaluable) now decides both return_evidence_
selection_required in checked_prediction and grid eligibility in select_alpha: such
points are computed and reported (evidence_complete=false) but never selected, so the
147 recompute and the format check agree. FSEL-01 adds the grid/format agreement case
and the DOC-01 weights case (the only joint-positive point is incomplete, no choice).
fusion-selection.md §3 and W08 state the rule; the sklearn reference exporter warns on
SUPPORTED/CONTRADICTED rows without evidence (158 P3-1). SHA256SUMS recomputed.
…s --live (158 P2-1)

relation_source is written for assistant-answer records only with --relation-units, so
an export without the option has the same source-map entry keys as before (EXP-07 now
asserts it). With --snapshot the option is refused (relation_units_requires_live_export)
instead of silently ignored (158 P3-9). W07 wording corrected; the earlier commit
message of 8f7dc31 overstated 'unchanged' for the default export.
…eline (158 P2-3)

HANDOVER gains how to register a synthetic linear return with model_flows.build and see
the synthetic mechanism block in the normal entry, the v3 package sending steps (copy
by SHA256SUMS, send the sums' own hash), the full optional encoder command with
check_xlmr_smoke, check-fast timing and the uv run note for the full gate (158 P3-2,
P3-13). FLOW-02 now fails when no journal entry exists (158 P3-5); unused tag parameter
and copy removed (P3-7). Baseline appends the three new FSEL-01/EXP-07 IDs.
@Jeffreyliu0131
Jeffreyliu0131 merged commit 4a21438 into main Oct 13, 2026
1 check failed
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