#000052 §3.2.2 step 3 part C: multi-signal combination experiment — does NOT lift precision/recall on §3.2's failure shapes; clean architectural finding that lexical sidecars + relevance reranker cover NON-OVERLAPPING failure modes
Ran diagnose_deflection and diagnose_coherence on the 20+20 NEG fixtures from step 3 parts A+B, plus all 808 STRICT. Result: 0/40 NEG fire on diagnose_deflection (because the fixtures are token-overlap-correct by construction — the question's subject appears in the answer; that's exactly the failure mode #000052 was built to catch beyond lexical). 0/40 on diagnose_coherence (the fixtures are well-formed sentences). So: UNION (relevance OR deflection) = relevance alone (no lift) INTERSECT (relevance AND deflection) = 0/40 Multi-signal combination doesn't help on these failure shapes. But the architectural finding is positive in a different way: the sidecars and the relevance reranker cover NON-OVERLAPPING failure shapes cleanly: - diagnose_coherence: structural breakage (word-salad, vacuous, phrase-component-reuse). Owns the 'incoherent answer' slice. - diagnose_deflection: token-overlap mismatch (subject anchor not in answer). Owns the 'wholesale topic drift' slice. - bge-large relevance: semantic aboutness mismatch despite shared tokens. Owns the 'topic-collision / mis-cite / on-topic-but- not-answering' slice — what §3.2 was built for. Each signal owns its own slice; combining is redundant on these cases. That's the architectural validation of the §3.1 + §3.2 + existing-lexical-sidecars split as orthogonal, not overlapping. Manifest runtime_viability.as_multi_signal_factor updated from 'viable' to 'TESTED — does not lift; sidecars are complementary not combinatorial on these shapes'. Cleaned up stale nli-shadow-grid-n1-minilm.json. Also cleaned up a stale nli-shadow-grid JSON. The §3.2 arc is now complete: step 1 candidate-bench (overclaim, contrived data) step 2 real STRICT FP (over-pessimistic 'NOT VIABLE') step 3A real-context deflection (positive reversal, 55% at fp=0) step 3B real-context mis-cite (100% at fp=0, motivating failure covered) step 3C multi-signal combination (no lift; clean architectural split) The recommended operating point holds: bge-reranker-large + cleaned + θ ≤ -2.42 → 100% mis-cite, 55% deflect, 0% STRICT FP.
This commit is contained in:
parent
902e676d4d
commit
7910440e50
2 changed files with 1 additions and 251 deletions
|
|
@ -29,7 +29,7 @@
|
|||
],
|
||||
"step3_finding_miscite_vs_deflection": "Mis-cite is structurally much easier than deflection — bge-large mis-cite scores range -9.37 to -3.81 (max), strictly below STRICT min (-2.42). Deflection range -5.57 to +5.01 overlaps STRICT bottom. So the runtime veto is FULLY effective on mis-cite (the Zionist failure mode) and PARTIALLY effective on deflection. That's appropriate to the structural difference: mis-cite is 'wrong topic entirely', deflection is 'right topic, not answering'.",
|
||||
"as_advisory_soft_signal": "viable — surface the raw score on the render tail or as bench telemetry; no threshold needed",
|
||||
"as_multi_signal_factor": "viable — combine with title-relevance, deflection, coherence sidecars for a weighted advisory",
|
||||
"as_multi_signal_factor": "TESTED 2026-05-13 (§3.2.2 step 3 part C) — DOES NOT LIFT precision/recall on the failure shapes §3.2 covers. diagnose_deflection fires on 0/40 of the deflection+miscite NEG fixtures because the fixtures are token-overlap-correct (which is the whole point — they're the cases the lexical sidecar misses); diagnose_coherence fires on 0/40 because the fixtures are well-formed. So UNION = relevance alone, INTERSECT = 0. The architectural finding is positive in a different way: the lexical sidecars and the relevance reranker cover NON-OVERLAPPING failure shapes (structural vs subject-anchor vs aboutness). Each signal owns its own slice cleanly; combining them is redundant on these cases.",
|
||||
"as_contrastive_signal": "TESTED 2026-05-13 — DOES NOT SEPARATE on real bench-qa data: 97% of STRICT-fires at cb-θ have BOTH Q→A and A→ctx_lead low (co-varying); only 3% match the 'high A→ctx, low Q→A' deflection signature. Contrastive rescue path closed — but it's no longer needed since real-context deflections (step 3) DID separate cleanly with absolute thresholds.",
|
||||
"preprocessing_cleaning_is_free_improvement": "claim-lattice metadata [E\\d+ | … | hash: '…'] depresses scores by ~3-6 pts on cleaned vs raw; clean_for_relevance is baked into check_* by default. Universal win across all 6 swept models (-0.5 to -5.6 pts FP)."
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,250 +0,0 @@
|
|||
{
|
||||
"generated_at": "2026-05-12T22:00:11Z",
|
||||
"should_demote_file": "/home/fox/git/arborist/bench/fixtures/5f/falsification-hard-v1.jsonl",
|
||||
"n_should_demote": 12,
|
||||
"should_not_demote_file": "bench/qa_results/2026-05-12T20-53-11Z.jsonl",
|
||||
"n_should_not_demote": 89,
|
||||
"k_grid": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
6,
|
||||
12
|
||||
],
|
||||
"aggs": [
|
||||
"max",
|
||||
"mean",
|
||||
"top2"
|
||||
],
|
||||
"theta_c_grid": [
|
||||
0.3,
|
||||
0.4,
|
||||
0.5,
|
||||
0.6,
|
||||
0.7,
|
||||
0.8,
|
||||
0.85,
|
||||
0.9,
|
||||
0.93,
|
||||
0.95,
|
||||
0.97,
|
||||
0.99
|
||||
],
|
||||
"theta_e_grid": [
|
||||
0.5,
|
||||
0.7,
|
||||
0.9,
|
||||
1.01
|
||||
],
|
||||
"kmax": 12,
|
||||
"models": {
|
||||
"nli-shadow-v1-minilm2-l6-h768": {
|
||||
"hf_repo": "cross-encoder/nli-MiniLM2-L6-H768",
|
||||
"backend": "onnx-int8",
|
||||
"device": "cpu",
|
||||
"n_nli_pairs": 1085,
|
||||
"infer_seconds": 184.74,
|
||||
"configs_ranked": [
|
||||
{
|
||||
"k": 1,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.93,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 1,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.93,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 2,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.97,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 2,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.85,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 3,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.8,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 4,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.7,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 6,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.7,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 12,
|
||||
"agg": "mean",
|
||||
"best": {
|
||||
"theta_c": 0.7,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.6667,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 3,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.99,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.4167,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 4,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.99,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.4167,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 6,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.99,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.4167,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 12,
|
||||
"agg": "max",
|
||||
"best": {
|
||||
"theta_c": 0.99,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.4167,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 2,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.8,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.25,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 3,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.8,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.25,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 4,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.8,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.25,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 6,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.97,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.0833,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 12,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.97,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.0833,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
},
|
||||
{
|
||||
"k": 1,
|
||||
"agg": "top2",
|
||||
"best": {
|
||||
"theta_c": 0.3,
|
||||
"theta_e": 0.5,
|
||||
"catch": 0.0,
|
||||
"fp": 0.0
|
||||
},
|
||||
"best_kind": "fp=0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue