Repository navigation
feat(evals): compare student agreement with repeated teacher decisions - #1071
Conversation
|
Merged. This is the measurement I said in the #919 thread I wanted to have a home in I read the network path carefully before taking it, since "teacher" plus
That matters because this project is local-only inference, and an evals helper that quietly called a hosted model would cross that line. This one does not. The honesty details I want to credit: fixing the first 32 rows and teacher repeats 0/1 before student inference, so the comparison cannot be tuned after seeing the result; and recording Registering the suite in All 86 suites pass on the merged tree. |
14 pull requests from 8 contributors. * the TypeScript tree parses again: an unterminated template literal shipped in 0.4.1 and stopped 22 of 34 test files loading (#1056) * x_jev_confidence on /v1/systemone, computed locally (#1066, #302) * a narrowed shortlist drops option_order with a warning instead of failing (#1063) * registering a name one edit from a built-in warns (#1055, #919) * compose forwards four knobs the runtime already read (#1053, #1054) * Java Router.predictBatch and Shortlist.predictTournament (#1060, #1061) * teacher-agreement evals, with the self-agreement ceiling (#1071, #919) Security: no malicious content found; the audit is recorded locally. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Thanks for the careful review, especially the check on the network boundary. Glad this fits what you had in mind for #919. |
What
Add an offline teacher/student agreement workflow to
laya.evals:compare_agreementcompares saved reference-teacher, repeat-teacher and student decisions.evaluate_agreementruns a local student against the same records.laya-evals agreementreplays the saved runs without loading weights.Why
Following the measurement discussion in #919, this makes teacher repeatability and student agreement measurable on the same inputs. Teacher observations stay separate from the labelled harness's accuracy and calibration metrics.
The runs must have matching case IDs, states, ordered questions and teacher settings. Missing or malformed observations fail validation. Student abstentions remain in the denominator and lower coverage. The bootstrap keeps all questions from one case together and weights the result by decision count, including when cases have different numbers of questions.
This PR covers the measurement workflow only. It does not add the store/signature routing discussed in that issue, or treat repeat agreement as a performance ceiling or replacement gate.
How it was verified
The new tests cover hand-calculated results, unequal-size case clusters, abstentions, input drift, runner failures, pre-inference validation and CLI replay/error handling. The evals suites passed 202 tests. The existing router, criteria, hooks, hook API and eval API checks also passed.
The Windows pytest run used a writable
--basetemp; the strict docs build reported no issues. An independent review checked the API paths and reproduced the bootstrap against a separate implementation on 150 panels.For a real checkpoint check,
examples/evals/teacher_agreement.pyuses the first 32 rows of the pinned localgate/mmlu-pro-closed test set, teacher repetitions 0/1, andconvaiinnovations/laya@55cf4c4ebb4ebe31b2550e8bdf3bd21b99753851on CPU. The sample and repetition selection are fixed in the script.python examples/evals/teacher_agreement.py --output-dir /tmp/laya-agreement laya-evals agreement /tmp/laya-agreement/reference.json \ /tmp/laya-agreement/repeat.json /tmp/laya-agreement/student.json \ --json /tmp/laya-agreement/replayed.jsonMeasured teacher repeat agreement was 26/32, student agreement 1/32, coverage 32/32, and the paired gap -0.78125 (95% interval [-0.90625, -0.625]). The saved runs reproduced the full live report through the CLI. These are pipeline-validation results on a small MCQ panel, not a quality improvement claim. The teacher's exact model revision was not published; it remains
nulland is flagged in the report. The example also documents the model-specific prompt adaptation.Checklist
main(1adc59f7)Refs #919