harness-everything 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +47 -0
- package/PRIVACY.md +9 -0
- package/benchmarks/fixtures/system-one-holdout-reviews.json +18 -18
- package/benchmarks/fixtures/system-one-holdout.json +9 -9
- package/benchmarks/fixtures/system-one-intent-holdout-draft.json +2228 -0
- package/benchmarks/fixtures/system-one-intent-holdout.json +16509 -0
- package/benchmarks/fixtures/system-one-intent-reviews.json +2723 -0
- package/benchmarks/results/system-one/harness-routing-v1-cpu-2026-09-24/README.md +75 -0
- package/benchmarks/results/system-one/harness-routing-v1-cpu-2026-09-24/report.json +10832 -0
- package/benchmarks/results/system-one/harness-routing-v1-ngram-2026-09-24/README.md +72 -0
- package/benchmarks/results/system-one/harness-routing-v1-ngram-2026-09-24/report.json +10817 -0
- package/benchmarks/results/system-one/harness-routing-v3-ngram-2026-09-24/README.md +63 -0
- package/benchmarks/results/system-one/harness-routing-v3-ngram-2026-09-24/report.json +10817 -0
- package/benchmarks/results/system-one/intent-ngram-v1-2026-09-24/README.md +64 -0
- package/benchmarks/results/system-one/intent-ngram-v1-2026-09-24/report.json +15177 -0
- package/benchmarks/results/system-one/labeler-holdout-check-2026-09-24/report.json +1104 -0
- package/benchmarks/results/system-one/labeler-holdout-check-codex-2026-09-24/report.json +1104 -0
- package/benchmarks/results/system-one/labeler-holdout-check-codex-tier3-2026-09-24/report.json +1104 -0
- package/benchmarks/results/system-one/labeler-holdout-check-intent-2026-09-24/report.json +2976 -0
- package/benchmarks/results/system-one/labeler-holdout-check-intent-scores-haiku-2026-09-24/report-005-steps.json +6125 -0
- package/benchmarks/results/system-one/labeler-holdout-check-intent-scores-haiku-2026-09-24/report-haiku-sonnet-escalation.json +6344 -0
- package/benchmarks/results/system-one/labeler-holdout-check-intent-scores-haiku-2026-09-24/report-scaled-margin-escalation.json +6206 -0
- package/benchmarks/results/system-one/labeler-holdout-check-intent-scores-haiku-2026-09-24/report.json +6103 -0
- package/benchmarks/results/system-one/laya-ft-2026-09-25/README.md +83 -0
- package/benchmarks/results/system-one/laya-ft-2026-09-25/report.json +71 -0
- package/benchmarks/results/system-one/laya-ft-2026-09-25/shadow-report.json +44 -0
- package/benchmarks/results/system-one/laya-zs-2026-09-25/README.md +68 -0
- package/benchmarks/results/system-one/laya-zs-2026-09-25/report.json +173 -0
- package/ci/mechanism-34-observations.test.js +550 -0
- package/ci/mechanism-system-one-collect.test.js +16 -0
- package/ci/mechanism-system-one-evaluation.test.js +17 -0
- package/ci/mechanism-system-one-intent.test.js +406 -0
- package/ci/mechanism-system-one-label.test.js +27 -0
- package/ci/mechanism-system-one-laya.test.js +45 -0
- package/ci/mechanism-system-one-ngram.test.js +161 -0
- package/ci/mechanism-system-one-relevance.test.js +112 -0
- package/ci/mechanism-system-one-resident.test.js +16 -0
- package/ci/mechanism-system-one-train.test.js +12 -0
- package/ci/system-one-laya-calibrate-test.py +65 -0
- package/ci/system-one-laya-export-test.py +155 -0
- package/ci/system-one-laya-label-test.py +201 -0
- package/ci/system-one-laya-perintent-test.py +60 -0
- package/ci/system-one-laya-provider-test.py +115 -0
- package/ci/system-one-laya-train-test.py +93 -0
- package/ci/system-one-ngram-parity.py +19 -0
- package/ci/system-one-train-test.py +6 -0
- package/docs/routing.md +25 -0
- package/docs/system-one-corpus.md +31 -3
- package/docs/system-one-intent-gates.md +102 -0
- package/docs/system-one-intent.md +173 -0
- package/docs/system-one-laya-training.md +38 -0
- package/docs/system-one-observations.md +206 -0
- package/docs/system-one-routing.md +102 -5
- package/docs/system-one-suggestion-gates.md +292 -0
- package/docs/system-one-training.md +69 -7
- package/harness-everything/SKILL.md +1 -1
- package/harness-everything/scripts/kernel-router.js +10 -0
- package/harness-everything/scripts/system-one/catalogs.js +35 -0
- package/harness-everything/scripts/system-one/contract.js +45 -1
- package/harness-everything/scripts/system-one/evaluate.js +118 -21
- package/harness-everything/scripts/system-one/intent.js +22 -0
- package/harness-everything/scripts/system-one/laya_adapter.py +141 -0
- package/harness-everything/scripts/system-one/ngram.js +84 -0
- package/harness-everything/scripts/system-one/provider.js +24 -7
- package/harness-everything/scripts/system-one/resident.js +8 -3
- package/harness-everything/scripts/system-one/router.js +1 -1
- package/hooks/hooks.json +40 -0
- package/hooks/scripts/codex-user-prompt.js +39 -0
- package/hooks/scripts/lib/observations.js +581 -0
- package/hooks/scripts/observation-hook.js +25 -0
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/hooks/hooks.json +35 -2
- package/plugins/harness-everything/hooks/scripts/codex-user-prompt.js +39 -0
- package/plugins/harness-everything/hooks/scripts/lib/observations.js +581 -0
- package/plugins/harness-everything/hooks/scripts/observation-hook.js +25 -0
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +1 -1
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +10 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/catalogs.js +35 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/contract.js +45 -1
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/evaluate.js +118 -21
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/intent.js +22 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/laya_adapter.py +141 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/ngram.js +84 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/provider.js +24 -7
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/resident.js +8 -3
- package/plugins/harness-everything/skills/harness-everything/scripts/system-one/router.js +1 -1
- package/sbom.cdx.json +7 -7
- package/scripts/evaluate-system-one.js +32 -13
- package/scripts/system-one-calibrate-laya.py +165 -0
- package/scripts/system-one-calibrate.js +42 -13
- package/scripts/system-one-collect.js +7 -3
- package/scripts/system-one-compare-laya.py +156 -0
- package/scripts/system-one-corpus.js +22 -15
- package/scripts/system-one-eval-laya.js +112 -0
- package/scripts/system-one-export-laya.py +197 -0
- package/scripts/system-one-label-laya.py +243 -0
- package/scripts/system-one-label.js +192 -37
- package/scripts/system-one-observations-export.js +106 -0
- package/scripts/system-one-observations-review.js +86 -0
- package/scripts/system-one-perintent-laya.py +134 -0
- package/scripts/system-one-train-laya.py +344 -0
- package/scripts/system-one-train-ngram.py +181 -0
- package/scripts/system-one-train.py +14 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# System One: fine-tuned Laya intent model, holdout promotion run (2026-09-25)
|
|
2
|
+
|
|
3
|
+
First Phase 3 promotion run for [#255](https://github.com/dyphn1/Harness-everything/issues/233):
|
|
4
|
+
multilingual Laya 322M fine-tuned with RLCD on 42,156 soft-target items
|
|
5
|
+
(3,513 scored train prompts), evaluated on the frozen 222-case intent
|
|
6
|
+
holdout through a research-only bridge (production transports untouched).
|
|
7
|
+
It is not live-host evidence.
|
|
8
|
+
**Result: the promotion gate fails. Graded accepted precision lands exactly
|
|
9
|
+
on the line (0.850, strict gate reads 0.8499…), coverage is 6.3% against an
|
|
10
|
+
80% target, and the tradeoff does not beat the intent n-gram baseline
|
|
11
|
+
(95.6% at 7.2%). Per the #255 stop/go rule, no PRAXIST scale-up is started
|
|
12
|
+
on this evidence.**
|
|
13
|
+
|
|
14
|
+
## Model
|
|
15
|
+
|
|
16
|
+
- **Base.** `convaiinnovations/laya` multilingual, revision `55cf4c4e`.
|
|
17
|
+
- **Training.** Single-device RLCD port of the upstream recipe (GRPO +
|
|
18
|
+
soft cross-entropy, 2 epochs, local MPS fp32, ~3.1 h). Held-out
|
|
19
|
+
calibration slice, per-type temperatures, fp16 artifact.
|
|
20
|
+
- **Bridge.** `harness-everything/scripts/system-one/laya_adapter.py`:
|
|
21
|
+
fixed v1 noul questions, 13th option (unclassified) on a linear abstain
|
|
22
|
+
ramp under cutoff 0.45, vector normalized to the contract simplex.
|
|
23
|
+
Resident serve machinery reused from `cua_adapter`; `resident.js` and
|
|
24
|
+
`provider.js` unchanged.
|
|
25
|
+
- **Thresholds.** `minConfidence` 0.5, `minMargin` 0, secondary 0.05 from
|
|
26
|
+
`system-one-calibrate.js` on 727 validation scores (graded 0.927, exact
|
|
27
|
+
0.914 at 9.6% coverage).
|
|
28
|
+
|
|
29
|
+
## Holdout (222 owner-reviewed cases, two runs each)
|
|
30
|
+
|
|
31
|
+
[`report.json`](report.json) is the unmodified evaluator output.
|
|
32
|
+
|
|
33
|
+
| Gate | Value | Target | Pass |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| Accepted precision, graded | 0.850 (float 0.8499…) | ≥ 0.85 | no |
|
|
36
|
+
| Accepted precision, exact | 0.786 | — | — |
|
|
37
|
+
| Coverage | 6.3% (14/222) | ≥ 0.8 | no |
|
|
38
|
+
| Macro-F1 vs majority baseline | 0.080 vs 0.020 | ≥ baseline | yes |
|
|
39
|
+
| Repeatability (2 runs) | 1.0 | == 1 | yes |
|
|
40
|
+
| Warm p95 | 179 ms (MPS) | ≤ 100 ms | no |
|
|
41
|
+
| Source provenance | research transport | pinned | no |
|
|
42
|
+
|
|
43
|
+
## Reading
|
|
44
|
+
|
|
45
|
+
- **Same profile as the n-gram, slightly worse.** The n-gram intent model
|
|
46
|
+
scores 95.6% graded at 7.2% coverage; fine-tuned Laya scores 85.0% at
|
|
47
|
+
6.3%. The fine-tune clearly learned (zero-shot was 14% exact), but the
|
|
48
|
+
precision/coverage tradeoff does not clear the baseline.
|
|
49
|
+
- **Paradigm mismatch, not just weights.** Twelve independent relevance
|
|
50
|
+
scores are forced into a single-winner 13-simplex; normalization crushes
|
|
51
|
+
confident rows below the acceptance bar. A relevance-native router (per-
|
|
52
|
+
intent thresholds instead of top-1 confidence) is a #233 contract
|
|
53
|
+
question, not a #255 training question.
|
|
54
|
+
- **Transport notes for Phase 7.** MPS inference is deterministic across
|
|
55
|
+
runs (repeatability 1.0) but too slow for the warm gate (179 ms vs
|
|
56
|
+
100 ms); the MLX port measured 7–13 ms on the same class of hardware.
|
|
57
|
+
- **Stop/go.** STOP the scale-up path on this evidence. Legitimate next
|
|
58
|
+
lanes (each frozen on validation first, never tuned on this holdout):
|
|
59
|
+
question rewording, peakier contract mapping, relevance-native routing
|
|
60
|
+
in #233.
|
|
61
|
+
|
|
62
|
+
## Shadow run: relevance-native gates (frozen taus, raw scores)
|
|
63
|
+
|
|
64
|
+
First evaluation under `docs/system-one-intent-gates.md` with frozen
|
|
65
|
+
validation-fit thresholds (never tuned on this holdout). Raw independent
|
|
66
|
+
scores, no simplex. `shadow-report.json` holds metrics only.
|
|
67
|
+
|
|
68
|
+
| Gate | Value | Pass |
|
|
69
|
+
| --- | --- | --- |
|
|
70
|
+
| micro-F1 | 0.507 | no (≥ 0.55) |
|
|
71
|
+
| macro-F1 | 0.501 | yes |
|
|
72
|
+
| per-intent floors | breach | no |
|
|
73
|
+
| weak precision | 0.181 | no |
|
|
74
|
+
| cardinality | 2.51 predicted | yes |
|
|
75
|
+
| abstain rate | 0.014 | yes |
|
|
76
|
+
| family consistency | model 0.47 vs gold 0.80 | no |
|
|
77
|
+
| repeatability | 1.0, byte-identical runs | yes |
|
|
78
|
+
| warm p95 | 182 ms (≤ 250 ms bar) | yes |
|
|
79
|
+
|
|
80
|
+
Verdict: not promotable under the reviewed contract. Owner gold is
|
|
81
|
+
stricter than the teacher proxy (validation CV micro-F1 was 0.60), and
|
|
82
|
+
weak intents collapse further (refactor-class precision 0.35 → 0.18).
|
|
83
|
+
The gates caught exactly what they were written to catch.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"issue": 255,
|
|
4
|
+
"phase": "3 fine-tuned promotion run (research transport)",
|
|
5
|
+
"model": "laya/harness-intent-s1-full (multilingual 322M RLCD, 42156 items, 2 epochs, local MPS)",
|
|
6
|
+
"calibration": {
|
|
7
|
+
"feasible": true,
|
|
8
|
+
"rows": 727,
|
|
9
|
+
"minPrecision": 0.85,
|
|
10
|
+
"task": "intent",
|
|
11
|
+
"secondaryThreshold": 0.05,
|
|
12
|
+
"minConfidence": 0.5,
|
|
13
|
+
"minMargin": 0,
|
|
14
|
+
"coverage": 0.09628610729023383,
|
|
15
|
+
"precision": 0.9271428571428573,
|
|
16
|
+
"accepted": 70,
|
|
17
|
+
"exactPrecision": 0.9142857142857143
|
|
18
|
+
},
|
|
19
|
+
"report": {
|
|
20
|
+
"schemaVersion": 1,
|
|
21
|
+
"cases": 222,
|
|
22
|
+
"baseline": {
|
|
23
|
+
"accuracy": 0.14864864864864866,
|
|
24
|
+
"macroF1": 0.01990950226244344,
|
|
25
|
+
"coverage": 1,
|
|
26
|
+
"abstentionRate": 0,
|
|
27
|
+
"acceptedPrecision": 0.14864864864864866,
|
|
28
|
+
"acceptedErrorRate": 0.8513513513513513
|
|
29
|
+
},
|
|
30
|
+
"model": {
|
|
31
|
+
"accuracy": 0.04954954954954955,
|
|
32
|
+
"macroF1": 0.07959346096997919,
|
|
33
|
+
"coverage": 0.06306306306306306,
|
|
34
|
+
"abstentionRate": 0.9369369369369369,
|
|
35
|
+
"acceptedPrecision": 0.8499999999999999,
|
|
36
|
+
"acceptedErrorRate": 0.21428571428571427,
|
|
37
|
+
"exactPrecision": 0.7857142857142857
|
|
38
|
+
},
|
|
39
|
+
"familyConsistency": {
|
|
40
|
+
"gold": {
|
|
41
|
+
"families": 83,
|
|
42
|
+
"consistent": 66,
|
|
43
|
+
"rate": 0.7951807228915663
|
|
44
|
+
},
|
|
45
|
+
"model": {
|
|
46
|
+
"families": 83,
|
|
47
|
+
"consistent": 75,
|
|
48
|
+
"rate": 0.9036144578313253
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"agreement": 1,
|
|
52
|
+
"latency": {
|
|
53
|
+
"coldP95Ms": null,
|
|
54
|
+
"warmP95Ms": 178.71229199999652,
|
|
55
|
+
"coldSamples": 0,
|
|
56
|
+
"warmSamples": 444
|
|
57
|
+
},
|
|
58
|
+
"gates": {
|
|
59
|
+
"reviewedHoldout": true,
|
|
60
|
+
"acceptedPrecision": false,
|
|
61
|
+
"coverage": false,
|
|
62
|
+
"macroF1": true,
|
|
63
|
+
"repeatability": true,
|
|
64
|
+
"warmLatency": false,
|
|
65
|
+
"sourceProvenance": false,
|
|
66
|
+
"policyEvidence": false,
|
|
67
|
+
"liveHostEvidence": false
|
|
68
|
+
},
|
|
69
|
+
"rolloutReady": false
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"model": "laya/harness-intent-s1-full",
|
|
3
|
+
"thresholds": "frozen validation-fit taus (perintent-taus.json)",
|
|
4
|
+
"micro": {
|
|
5
|
+
"precision": 0.6068222621184919,
|
|
6
|
+
"recall": 0.43556701030927836,
|
|
7
|
+
"f1": 0.5071267816954239
|
|
8
|
+
},
|
|
9
|
+
"macroF1": 0.501,
|
|
10
|
+
"cardinality": {
|
|
11
|
+
"predicted": 2.509009009009009,
|
|
12
|
+
"gold": 3.4954954954954953
|
|
13
|
+
},
|
|
14
|
+
"abstainRate": 0.014,
|
|
15
|
+
"exactSetMatch": 0.068,
|
|
16
|
+
"weakPrecision": 0.181,
|
|
17
|
+
"family": {
|
|
18
|
+
"gold": {
|
|
19
|
+
"families": 83,
|
|
20
|
+
"consistent": 66,
|
|
21
|
+
"rate": 0.7951807228915663
|
|
22
|
+
},
|
|
23
|
+
"model": {
|
|
24
|
+
"families": 83,
|
|
25
|
+
"consistent": 39,
|
|
26
|
+
"rate": 0.46987951807228917
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"gates": {
|
|
30
|
+
"microF1": false,
|
|
31
|
+
"macroF1": true,
|
|
32
|
+
"perIntentFloors": false,
|
|
33
|
+
"weakPrecision": false,
|
|
34
|
+
"cardinality": true,
|
|
35
|
+
"abstainRate": true,
|
|
36
|
+
"familyConsistency": false,
|
|
37
|
+
"repeatability": true,
|
|
38
|
+
"warmLatency": true,
|
|
39
|
+
"structuralControls": true,
|
|
40
|
+
"policyEvidence": false,
|
|
41
|
+
"liveHostEvidence": false,
|
|
42
|
+
"rolloutReady": false
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# System One: Laya zero-shot dense-label baseline (2026-09-25)
|
|
2
|
+
|
|
3
|
+
Local zero-shot evidence for the intent stage
|
|
4
|
+
([system-one-intent.md](../../../../docs/system-one-intent.md)) with Laya as a
|
|
5
|
+
typed-decision substrate. It is not live-host evidence. Issue
|
|
6
|
+
[#255](https://github.com/dyphn1/Harness-everything/issues/233) (research
|
|
7
|
+
track for [#233](https://github.com/dyphn1/Harness-everything/issues/233)).
|
|
8
|
+
**Result: zero-shot Laya is not a teacher. Primary exact agreement with the
|
|
9
|
+
sonnet-scored labels is ~15% (graded ~0.26); per-intent calibration cuts score
|
|
10
|
+
error by ~40% but adds almost no discrimination. Fine-tuning (Phase 3) or
|
|
11
|
+
question rewording is required before any training use.**
|
|
12
|
+
|
|
13
|
+
## Method
|
|
14
|
+
|
|
15
|
+
- **Mapping.** Each of the 12 owner intents (catalog order, frozen) becomes one
|
|
16
|
+
Laya `noul` question (`scripts/system-one-label-laya.py`, questions v1).
|
|
17
|
+
Derived gold/secondary follow the owner bands mechanically and are marked
|
|
18
|
+
`derived: true`; they are bootstrap, never owner truth.
|
|
19
|
+
- **Backends.** Official PyTorch Laya 0.3.20 on MPS and the independent MLX
|
|
20
|
+
port 0.2.0 on GPU, both over the 727 validation prompts (local only).
|
|
21
|
+
- **Compared.** The 537 validation rows that also have sonnet-scored labels.
|
|
22
|
+
[`report.json`](report.json) holds aggregates, hashes and distributions only;
|
|
23
|
+
no prompt text leaves the private corpus.
|
|
24
|
+
|
|
25
|
+
## Zero-shot vs teacher (537 rows)
|
|
26
|
+
|
|
27
|
+
| Metric | torch | mlx |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| Primary exact | 14.3% | 14.9% |
|
|
30
|
+
| Graded mean | 0.261 | 0.267 |
|
|
31
|
+
| Mean top score (over-confident) | 0.759 | 0.741 |
|
|
32
|
+
| Null rate (teacher: 14.3%) | 3.5% | 3.9% |
|
|
33
|
+
| zh slice exact / graded (n=495) | 13.7% / 0.259 | 14.5% / 0.266 |
|
|
34
|
+
| en slice exact / graded (n=42) | 21.4% / 0.286 | 19.0% / 0.276 |
|
|
35
|
+
|
|
36
|
+
Per-intent rank correlation with the teacher sits at 0.1–0.3 (best: fix/git
|
|
37
|
+
~0.3; worst: explain/review/docs ~0.1).
|
|
38
|
+
|
|
39
|
+
## Backend parity (same 537 rows)
|
|
40
|
+
|
|
41
|
+
Overall agreement is poor (routing 61.6%, derived gold 63.1%) **entirely
|
|
42
|
+
because of routing**: the MLX port sends ~250 more Chinese rows to the English
|
|
43
|
+
checkpoint than the official Router (torch 441 multilingual / 96 english vs
|
|
44
|
+
mlx 237 / 300). On the 331 rows routed to the same checkpoint, numeric parity
|
|
45
|
+
is excellent: mean max |Δp| 0.0055, p95 0.0134, derived-gold agreement 98.2%.
|
|
46
|
+
Lesson: pin the checkpoint per language for bulk labeling; do not rely on
|
|
47
|
+
router agreement across implementations.
|
|
48
|
+
|
|
49
|
+
## Calibration (5-fold CV, per-intent isotonic)
|
|
50
|
+
|
|
51
|
+
| Metric | torch | mlx |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| CV exact | 19.4% | 22.5% |
|
|
54
|
+
| CV graded | 0.236 | 0.267 |
|
|
55
|
+
| CV MAE (raw → calibrated) | 0.323 → 0.193 | 0.304 → 0.194 |
|
|
56
|
+
|
|
57
|
+
Calibration fixes the scale but cannot create rank signal. The zero-shot +
|
|
58
|
+
calibration path stays far below any promotion gate.
|
|
59
|
+
|
|
60
|
+
## Reading
|
|
61
|
+
|
|
62
|
+
- **Not a teacher.** Zero-shot scores correlate weakly with owner-judged
|
|
63
|
+
relevance; the bands derive mostly noise.
|
|
64
|
+
- **MLX is a viable fast path** once the checkpoint is pinned per language
|
|
65
|
+
(98% agreement with the official backend on shared checkpoints).
|
|
66
|
+
- **Next levers (Phase 3).** Soft-target fine-tuning on the 3,513 scored
|
|
67
|
+
train rows; question rewording as a cheap parallel lane. PRAXIST enters at
|
|
68
|
+
Phase 5, after a standalone fine-tune baseline exists.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"issue": 255,
|
|
4
|
+
"phase": "1+2 zero-shot baseline",
|
|
5
|
+
"compared": 537,
|
|
6
|
+
"teacher": "labels-intent-scores.jsonl",
|
|
7
|
+
"teacherSha256": "c25c4d9e7ae3f021b66c64b5b0b7dfe7d044539860a7a7efe6be5a91f77b7618",
|
|
8
|
+
"promptsSha256": "54d1446ddb1e71948e33be86c37147f4668addedaf782bfe6c2754bd7d9e9e4f",
|
|
9
|
+
"questions": "v1 (12 noul, catalog order)",
|
|
10
|
+
"provenance": {
|
|
11
|
+
"torch": {
|
|
12
|
+
"laya": "0.3.20",
|
|
13
|
+
"torch": "2.14.0",
|
|
14
|
+
"transformers": "5.17.0",
|
|
15
|
+
"python": "3.12.13",
|
|
16
|
+
"device": "mps",
|
|
17
|
+
"latencyMs": {
|
|
18
|
+
"p50": 134.74925002083182,
|
|
19
|
+
"p95": 428.49976690486073
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"mlx": {
|
|
23
|
+
"laya-mlx": "0.2.0",
|
|
24
|
+
"mlx": "0.32.2",
|
|
25
|
+
"python": "3.12.13",
|
|
26
|
+
"device": "gpu",
|
|
27
|
+
"note": "independent third-party port, inference only"
|
|
28
|
+
},
|
|
29
|
+
"host": "Mac mini M4, 16GB, macOS 26.6.2"
|
|
30
|
+
},
|
|
31
|
+
"candidates": {
|
|
32
|
+
"labels-intent-laya-zs-torch.jsonl": {
|
|
33
|
+
"sha256": "79c9e2a87b1186f2707ad2a1861492ffaf8400c1fa3a374ad8d5bc48ecccc83b",
|
|
34
|
+
"n": 537,
|
|
35
|
+
"primaryExact": 0.14338919925512103,
|
|
36
|
+
"gradedMean": 0.26126629422718806,
|
|
37
|
+
"meanTopScore": 0.7589113594040968,
|
|
38
|
+
"meanScoreByIntent": {
|
|
39
|
+
"explain": 0.49797858472998136,
|
|
40
|
+
"discuss": 0.1724169459962756,
|
|
41
|
+
"git": 0.22799664804469275,
|
|
42
|
+
"fix": 0.30267448789571694,
|
|
43
|
+
"edit": 0.4249581005586592,
|
|
44
|
+
"feature": 0.4799590316573557,
|
|
45
|
+
"refactor": 0.503630540037244,
|
|
46
|
+
"review": 0.3949202979515829,
|
|
47
|
+
"test": 0.4052284916201117,
|
|
48
|
+
"docs": 0.2692115456238361,
|
|
49
|
+
"plan": 0.24817392923649906,
|
|
50
|
+
"investigate": 0.22743109869646183
|
|
51
|
+
},
|
|
52
|
+
"rankCorrByIntent": {
|
|
53
|
+
"explain": 0.027784640172690576,
|
|
54
|
+
"discuss": 0.23116435330770707,
|
|
55
|
+
"git": 0.29041398684548636,
|
|
56
|
+
"fix": 0.29932632635456186,
|
|
57
|
+
"edit": 0.2279588743991616,
|
|
58
|
+
"feature": 0.2573118860847266,
|
|
59
|
+
"refactor": 0.11193843868650764,
|
|
60
|
+
"review": 0.08718817389449918,
|
|
61
|
+
"test": 0.16812905421595062,
|
|
62
|
+
"docs": 0.0939364567373099,
|
|
63
|
+
"plan": 0.16190725568849487,
|
|
64
|
+
"investigate": 0.1642989079441322
|
|
65
|
+
},
|
|
66
|
+
"nullRate": 0.035381750465549346,
|
|
67
|
+
"teacherNullRate": 0.14338919925512103,
|
|
68
|
+
"slices": {
|
|
69
|
+
"zh": {
|
|
70
|
+
"n": 495,
|
|
71
|
+
"exact": 0.13737373737373737,
|
|
72
|
+
"graded": 0.25919191919191914
|
|
73
|
+
},
|
|
74
|
+
"en": {
|
|
75
|
+
"n": 42,
|
|
76
|
+
"exact": 0.21428571428571427,
|
|
77
|
+
"graded": 0.2857142857142857
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"routing": {
|
|
81
|
+
"multilingual": 441,
|
|
82
|
+
"english": 96
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"labels-intent-laya-zs-mlx.jsonl": {
|
|
86
|
+
"sha256": "bd8488b0436373b16c00067e66b2e583299700e5b622e5cdd8c8983f3b8ab5e4",
|
|
87
|
+
"n": 537,
|
|
88
|
+
"primaryExact": 0.148975791433892,
|
|
89
|
+
"gradedMean": 0.26685288640595906,
|
|
90
|
+
"meanTopScore": 0.7410662942271881,
|
|
91
|
+
"meanScoreByIntent": {
|
|
92
|
+
"explain": 0.31080893854748604,
|
|
93
|
+
"discuss": 0.16107765363128493,
|
|
94
|
+
"git": 0.2408,
|
|
95
|
+
"fix": 0.34066741154562385,
|
|
96
|
+
"edit": 0.37259962756052145,
|
|
97
|
+
"feature": 0.453928677839851,
|
|
98
|
+
"refactor": 0.5032795158286778,
|
|
99
|
+
"review": 0.416868156424581,
|
|
100
|
+
"test": 0.38708659217877095,
|
|
101
|
+
"docs": 0.24436666666666665,
|
|
102
|
+
"plan": 0.25952569832402234,
|
|
103
|
+
"investigate": 0.23216275605214154
|
|
104
|
+
},
|
|
105
|
+
"rankCorrByIntent": {
|
|
106
|
+
"explain": 0.15066239073164425,
|
|
107
|
+
"discuss": 0.17409543733224803,
|
|
108
|
+
"git": 0.2796312099034226,
|
|
109
|
+
"fix": 0.2399448780065943,
|
|
110
|
+
"edit": 0.2460774826207481,
|
|
111
|
+
"feature": 0.2812117477450446,
|
|
112
|
+
"refactor": 0.13321742515847998,
|
|
113
|
+
"review": 0.06277577657598903,
|
|
114
|
+
"test": 0.13653433833924808,
|
|
115
|
+
"docs": 0.2028910451790806,
|
|
116
|
+
"plan": 0.1757922914760996,
|
|
117
|
+
"investigate": 0.12610523734880044
|
|
118
|
+
},
|
|
119
|
+
"nullRate": 0.03910614525139665,
|
|
120
|
+
"teacherNullRate": 0.14338919925512103,
|
|
121
|
+
"slices": {
|
|
122
|
+
"zh": {
|
|
123
|
+
"n": 495,
|
|
124
|
+
"exact": 0.14545454545454545,
|
|
125
|
+
"graded": 0.2660606060606061
|
|
126
|
+
},
|
|
127
|
+
"en": {
|
|
128
|
+
"n": 42,
|
|
129
|
+
"exact": 0.19047619047619047,
|
|
130
|
+
"graded": 0.2761904761904762
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"routing": {
|
|
134
|
+
"english": 300,
|
|
135
|
+
"multilingual": 237
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"parity": {
|
|
140
|
+
"pair": [
|
|
141
|
+
"labels-intent-laya-zs-torch.jsonl",
|
|
142
|
+
"labels-intent-laya-zs-mlx.jsonl"
|
|
143
|
+
],
|
|
144
|
+
"n": 537,
|
|
145
|
+
"routingAgreement": 0.6163873370577281,
|
|
146
|
+
"derivedGoldAgreement": 0.6312849162011173,
|
|
147
|
+
"maxAbsDeltaMean": 0.2839195530726257,
|
|
148
|
+
"maxAbsDeltaP95": 0.9104
|
|
149
|
+
},
|
|
150
|
+
"sameRouteParity": {
|
|
151
|
+
"n": 331,
|
|
152
|
+
"maxAbsDeltaMean": 0.0055,
|
|
153
|
+
"maxAbsDeltaP95": 0.0134,
|
|
154
|
+
"maxAbsDeltaMax": 0.1711,
|
|
155
|
+
"derivedGoldAgreement": 0.982
|
|
156
|
+
},
|
|
157
|
+
"calibrationCV": {
|
|
158
|
+
"torch": {
|
|
159
|
+
"exact": 0.194,
|
|
160
|
+
"graded": 0.236,
|
|
161
|
+
"mae": 0.1929,
|
|
162
|
+
"rawMAE": 0.3226,
|
|
163
|
+
"bestCutoff": "0.20"
|
|
164
|
+
},
|
|
165
|
+
"mlx": {
|
|
166
|
+
"exact": 0.225,
|
|
167
|
+
"graded": 0.267,
|
|
168
|
+
"mae": 0.1941,
|
|
169
|
+
"rawMAE": 0.3036,
|
|
170
|
+
"bestCutoff": "0.00"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|