Horos v2: macro-F1 0.613 (was 0.512), artifact-concrete realizations + restored concept negatives
Browse files- README.md +39 -17
- head.json +18 -22
- model/model.safetensors +1 -1
README.md
CHANGED
|
@@ -21,6 +21,11 @@ datasets:
|
|
| 21 |
[Topos](https://github.com/dialoguesai/topos): free text in → the data scopes it touches,
|
| 22 |
an explicit `none`, or a hand-off to an LLM when it isn't sure.
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |

|
| 25 |
|
| 26 |
*ὅρος — the stones Athenians planted at property lines: "whose land begins here." Same
|
|
@@ -50,15 +55,18 @@ Benchmark: `role_classify_8` — 1,071 cases, template-disjoint from training, m
|
|
| 50 |
gold, 24% adversarial negatives. It is built to be hard: don't anchor against CLINC-style
|
| 51 |
intent scores. The right column is the same benchmark's LLM baseline.
|
| 52 |
|
| 53 |
-
| metric |
|
| 54 |
-
|---|---|---|
|
| 55 |
-
| macro-F1 | **0.
|
| 56 |
-
| exact set match | **0.
|
| 57 |
-
| negatives abstained | **0.
|
| 58 |
-
| single / multi-gold recall | 0.388 / 0.425 | — |
|
| 59 |
-
| dead rate | 0.171 | — |
|
| 60 |
-
| disjoint rate | 0.217 | — |
|
| 61 |
-
| per-scope recall ≥ 0.60 | 2 / 14 | 9 / 14 |
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
### With its LLM escalation (composed per-case)
|
| 64 |
|
|
@@ -75,11 +83,18 @@ traffic degrades with weaker hardware.
|
|
| 75 |
|
| 76 |
## Limitations
|
| 77 |
|
| 78 |
-
* **Confident-none swallowing
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
* All numbers are synthetic-benchmark. Real-traffic behaviour is being measured in
|
| 84 |
shadow mode.
|
| 85 |
* English only. **No user data, ever** — the loader refuses artifacts whose manifest
|
|
@@ -89,9 +104,16 @@ traffic degrades with weaker hardware.
|
|
| 89 |
|
| 90 |
| source | licence | rows |
|
| 91 |
|---|---|---|
|
| 92 |
-
| schema-grounded synthetic + compounds + boundary negatives (Topos) | internal |
|
| 93 |
-
| [AmazonScience/massive](https://huggingface.co/datasets/AmazonScience/massive) | CC BY 4.0 |
|
| 94 |
-
| [CLINC150 OOS](https://github.com/clinc/oos-eval) | CC BY 3.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
|
| 96 |
This card is the CC BY attribution notice. No share-alike or non-commercial data.
|
| 97 |
|
|
|
|
| 21 |
[Topos](https://github.com/dialoguesai/topos): free text in → the data scopes it touches,
|
| 22 |
an explicit `none`, or a hand-off to an LLM when it isn't sure.
|
| 23 |
|
| 24 |
+
**v2** (2026-08-16) — macro-F1 **0.613**, up from v1's 0.512. Trained against a gap v1's
|
| 25 |
+
own failures exposed: it handled *band* phrasings ("how has my sleep been") and fell
|
| 26 |
+
silent on *artifact* ones ("what's my resting heart rate trend"). Still not promoted —
|
| 27 |
+
see Limitations.
|
| 28 |
+
|
| 29 |

|
| 30 |
|
| 31 |
*ὅρος — the stones Athenians planted at property lines: "whose land begins here." Same
|
|
|
|
| 55 |
gold, 24% adversarial negatives. It is built to be hard: don't anchor against CLINC-style
|
| 56 |
intent scores. The right column is the same benchmark's LLM baseline.
|
| 57 |
|
| 58 |
+
| metric | v2 | v1 | mistral:7b (4.4 GB) |
|
| 59 |
+
|---|---|---|---|
|
| 60 |
+
| macro-F1 | **0.613** | 0.512 | 0.495 |
|
| 61 |
+
| exact set match | **0.558** | 0.496 | 0.243 |
|
| 62 |
+
| negatives abstained | **0.941** | 0.984 | 0.126 |
|
| 63 |
+
| single / multi-gold recall | 0.502 / 0.596 | 0.388 / 0.425 | — |
|
| 64 |
+
| dead rate | 0.149 | 0.171 | — |
|
| 65 |
+
| disjoint rate | 0.206 | 0.217 | — |
|
| 66 |
+
| per-scope recall ≥ 0.60 | 6 / 14 | 2 / 14 | 9 / 14 |
|
| 67 |
+
|
| 68 |
+
On a 53-case hand-annotated probe of natural phrasings — which neither version trained
|
| 69 |
+
on — v2 routes **77%** correctly against v1's 58%.
|
| 70 |
|
| 71 |
### With its LLM escalation (composed per-case)
|
| 72 |
|
|
|
|
| 83 |
|
| 84 |
## Limitations
|
| 85 |
|
| 86 |
+
* **Confident-none swallowing, now concentrated rather than general.** Overall dead rate
|
| 87 |
+
is 0.149, but on *artifact-concrete* phrasings ("what's my bank balance", "what's in
|
| 88 |
+
my review queue") it is **18%** against 5% on abstract ones. v2 closed most of v1's
|
| 89 |
+
26% gap here and gave part of it back for the safety property below — one threshold
|
| 90 |
+
currently trades them against each other, which is the next fix. Treat a `none` on a
|
| 91 |
+
plausibly-personal question with suspicion.
|
| 92 |
+
* **Disjoint rate 0.206 — the blocking defect, and unsolved.** One in five acted-on
|
| 93 |
+
turns names a scope set sharing nothing with the truth. It is **threshold-invariant**
|
| 94 |
+
(0.256–0.270 across τ 0.4–0.9 on a sibling run), so it lives in the weights, not the
|
| 95 |
+
operating point. Three training rounds have not moved it.
|
| 96 |
+
* **8 of 14 scopes are under the 0.60 recall floor** (v1: 12). This artifact has not
|
| 97 |
+
cleared its promotion gate; it fronts an LLM in shadow/advisory postures only.
|
| 98 |
* All numbers are synthetic-benchmark. Real-traffic behaviour is being measured in
|
| 99 |
shadow mode.
|
| 100 |
* English only. **No user data, ever** — the loader refuses artifacts whose manifest
|
|
|
|
| 104 |
|
| 105 |
| source | licence | rows |
|
| 106 |
|---|---|---|
|
| 107 |
+
| schema-grounded synthetic + compounds + boundary negatives (Topos) | internal | 7,369 |
|
| 108 |
+
| [AmazonScience/massive](https://huggingface.co/datasets/AmazonScience/massive) | CC BY 4.0 | 5,200 |
|
| 109 |
+
| [CLINC150 OOS](https://github.com/clinc/oos-eval) | CC BY 3.0 | 1,200 |
|
| 110 |
+
|
| 111 |
+
v2 added ~95 artifact-concrete realizations **and** restored the concept-negative ratio
|
| 112 |
+
(0.054 → 0.070). The second half is the interesting one: without a "what *is* a
|
| 113 |
+
curriculum vitae?" negative beside "what's on *my* CV?", an earlier v2 candidate learned
|
| 114 |
+
the artifact noun as sufficient evidence of ownership and fired on 43 near-miss
|
| 115 |
+
definition questions, dropping negatives-abstained to 0.739. Teaching a positive without
|
| 116 |
+
its matching negative was the whole regression.
|
| 117 |
|
| 118 |
This card is the CC BY attribution notice. No share-alike or non-commercial data.
|
| 119 |
|
head.json
CHANGED
|
@@ -29,46 +29,46 @@
|
|
| 29 |
"source": "schema-grounded (G3)",
|
| 30 |
"licence": "internal",
|
| 31 |
"url": "-",
|
| 32 |
-
"rows":
|
| 33 |
-
"note": "the only source for the nine uncovered scopes; `train` split only (
|
| 34 |
},
|
| 35 |
{
|
| 36 |
"source": "compound positives (B1)",
|
| 37 |
"licence": "internal",
|
| 38 |
"url": "-",
|
| 39 |
-
"rows":
|
| 40 |
"note": "multi-scope conjunctions of train-split parents at 0.92x positives; the corpus was 100% single-label and trained AGAINST co-activation (multi-gold recall 0.165 vs 0.356 single)"
|
| 41 |
},
|
| 42 |
{
|
| 43 |
"source": "negative twins (G4)",
|
| 44 |
"licence": "internal",
|
| 45 |
"url": "-",
|
| 46 |
-
"rows":
|
| 47 |
-
"note": "third-party + generalize at 0.60x positives (
|
| 48 |
},
|
| 49 |
{
|
| 50 |
"source": "concept negatives (G4b)",
|
| 51 |
"licence": "internal",
|
| 52 |
"url": "-",
|
| 53 |
-
"rows":
|
| 54 |
"note": "mechanism + definition frames over the positives' own concept vocabulary; replaces the mined QA band, which yielded 102 usable rows from 119,700 questions and reached only 8 of 14 scopes"
|
| 55 |
},
|
| 56 |
{
|
| 57 |
"source": "AmazonScience/massive",
|
| 58 |
"licence": "CC BY-4.0",
|
| 59 |
"url": "https://amazon-massive-nlu-dataset.s3.amazonaws.com/amazon-massive-dataset-1.1.tar.gz",
|
| 60 |
-
"rows":
|
| 61 |
"note": "en-US only; positives cue-filtered (see POSITIVE_CUES)"
|
| 62 |
},
|
| 63 |
{
|
| 64 |
"source": "clinc/oos-eval",
|
| 65 |
"licence": "CC BY-3.0",
|
| 66 |
"url": "https://raw.githubusercontent.com/clinc/oos-eval/master/data/data_full.json",
|
| 67 |
-
"rows":
|
| 68 |
"note": "all `none`; the OOS split is the near-miss anchor"
|
| 69 |
}
|
| 70 |
],
|
| 71 |
-
"total_rows":
|
| 72 |
"attribution_required": [
|
| 73 |
"AmazonScience/massive",
|
| 74 |
"clinc/oos-eval"
|
|
@@ -76,29 +76,25 @@
|
|
| 76 |
},
|
| 77 |
"metrics": {
|
| 78 |
"n": 1071,
|
| 79 |
-
"macro_f1": 0.
|
| 80 |
-
"exact": 0.
|
| 81 |
-
"negatives_abstained": 0.
|
| 82 |
"scopes_below_floor": [
|
| 83 |
-
"activity:read",
|
| 84 |
"ai_conversations:read",
|
| 85 |
-
"attention:read",
|
| 86 |
"availability:read",
|
| 87 |
"complexity:read",
|
| 88 |
"health:read",
|
| 89 |
-
"messages:read",
|
| 90 |
"places:read",
|
| 91 |
"relationship_context:read",
|
| 92 |
"resources:read",
|
| 93 |
-
"schedule:read",
|
| 94 |
"work_context:read"
|
| 95 |
],
|
| 96 |
-
"recall_single_gold": 0.
|
| 97 |
-
"recall_multi_gold": 0.
|
| 98 |
-
"multi_gap": -0.
|
| 99 |
-
"dead_rate": 0.
|
| 100 |
-
"disjoint_rate": 0.
|
| 101 |
"threshold": 0.7
|
| 102 |
},
|
| 103 |
-
"trained_at": "2026-08-
|
| 104 |
}
|
|
|
|
| 29 |
"source": "schema-grounded (G3)",
|
| 30 |
"licence": "internal",
|
| 31 |
"url": "-",
|
| 32 |
+
"rows": 2767,
|
| 33 |
+
"note": "the only source for the nine uncovered scopes; `train` split only (2767 of 5987) \u2014 the rest belongs to the benchmark"
|
| 34 |
},
|
| 35 |
{
|
| 36 |
"source": "compound positives (B1)",
|
| 37 |
"licence": "internal",
|
| 38 |
"url": "-",
|
| 39 |
+
"rows": 2545,
|
| 40 |
"note": "multi-scope conjunctions of train-split parents at 0.92x positives; the corpus was 100% single-label and trained AGAINST co-activation (multi-gold recall 0.165 vs 0.356 single)"
|
| 41 |
},
|
| 42 |
{
|
| 43 |
"source": "negative twins (G4)",
|
| 44 |
"licence": "internal",
|
| 45 |
"url": "-",
|
| 46 |
+
"rows": 1660,
|
| 47 |
+
"note": "third-party + generalize at 0.60x positives (3544 available); teaches 'whose data', which M1 found rung 1 cannot represent"
|
| 48 |
},
|
| 49 |
{
|
| 50 |
"source": "concept negatives (G4b)",
|
| 51 |
"licence": "internal",
|
| 52 |
"url": "-",
|
| 53 |
+
"rows": 397,
|
| 54 |
"note": "mechanism + definition frames over the positives' own concept vocabulary; replaces the mined QA band, which yielded 102 usable rows from 119,700 questions and reached only 8 of 14 scopes"
|
| 55 |
},
|
| 56 |
{
|
| 57 |
"source": "AmazonScience/massive",
|
| 58 |
"licence": "CC BY-4.0",
|
| 59 |
"url": "https://amazon-massive-nlu-dataset.s3.amazonaws.com/amazon-massive-dataset-1.1.tar.gz",
|
| 60 |
+
"rows": 5200,
|
| 61 |
"note": "en-US only; positives cue-filtered (see POSITIVE_CUES)"
|
| 62 |
},
|
| 63 |
{
|
| 64 |
"source": "clinc/oos-eval",
|
| 65 |
"licence": "CC BY-3.0",
|
| 66 |
"url": "https://raw.githubusercontent.com/clinc/oos-eval/master/data/data_full.json",
|
| 67 |
+
"rows": 1200,
|
| 68 |
"note": "all `none`; the OOS split is the near-miss anchor"
|
| 69 |
}
|
| 70 |
],
|
| 71 |
+
"total_rows": 13769,
|
| 72 |
"attribution_required": [
|
| 73 |
"AmazonScience/massive",
|
| 74 |
"clinc/oos-eval"
|
|
|
|
| 76 |
},
|
| 77 |
"metrics": {
|
| 78 |
"n": 1071,
|
| 79 |
+
"macro_f1": 0.6127984463644067,
|
| 80 |
+
"exact": 0.5583566760037348,
|
| 81 |
+
"negatives_abstained": 0.9407114624505929,
|
| 82 |
"scopes_below_floor": [
|
|
|
|
| 83 |
"ai_conversations:read",
|
|
|
|
| 84 |
"availability:read",
|
| 85 |
"complexity:read",
|
| 86 |
"health:read",
|
|
|
|
| 87 |
"places:read",
|
| 88 |
"relationship_context:read",
|
| 89 |
"resources:read",
|
|
|
|
| 90 |
"work_context:read"
|
| 91 |
],
|
| 92 |
+
"recall_single_gold": 0.5021645021645021,
|
| 93 |
+
"recall_multi_gold": 0.5964912280701754,
|
| 94 |
+
"multi_gap": -0.09432672590567326,
|
| 95 |
+
"dead_rate": 0.1491442542787286,
|
| 96 |
+
"disjoint_rate": 0.2063758389261745,
|
| 97 |
"threshold": 0.7
|
| 98 |
},
|
| 99 |
+
"trained_at": "2026-08-16"
|
| 100 |
}
|
model/model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 267872556
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:470b940f751055aae58c8f08ec045e0ae6bc69567ae09962a7adce1fe4ad3d24
|
| 3 |
size 267872556
|