nx_recall_rerank_gate.nx source
↩ module page · 68 lines · 2869 B
1// nx_recall_rerank_gate.nx -- KAT + HONEST BENCH for the sovereign semantic reranker.
2// exit 0 = pass; N = assertion N failed. Sovereign lane (nx_cc->nxasm).
3//
4// Reproduces the live failure: a relevant doc buried by lexical/fusion ranking but
5// semantically parallel to the query -- the sovereign cosine reranker recovers it to
6// rank 1. Kept HONEST: an irrelevant doc with a HIGH cosine (a semantic false-
7// positive) is included, so the reranked nDCG lands ~0.96, NOT a rigged 1.0. The
8// point is the measured LIFT over fusion-alone on the R0 ruler, not perfection.
9
10import "fx.nx"
11import "nx_ir_eval.nx"
12import "nx_recall_rerank.nx"
13import "syscalls.nx"
14
15func main() -> i64 {
16 let dim: i64 = 4
17 let ncand: i64 = 5
18
19 // query embedding
20 let q: *i64 = sys_mmap(4 * 8) as *i64
21 q[0] = 100; q[1] = 0; q[2] = 0; q[3] = 0
22
23 // 5 doc embeddings, flat [ncand*dim] (row c = candidate c).
24 let em: *i64 = sys_mmap(5 * 4 * 8) as *i64
25 em[0] = 80; em[1] = 60; em[2] = 0; em[3] = 0 // doc0 cos~819 (FALSE POSITIVE, gain 0)
26 em[4] = 0; em[5] = 100; em[6] = 0; em[7] = 0 // doc1 cos 0 (gain 0)
27 em[8] = 60; em[9] = 80; em[10] = 0; em[11] = 0 // doc2 cos~614 (gain 1)
28 em[12] = 100; em[13] = 0; em[14] = 0; em[15] = 0 // doc3 cos 1024 (RELEVANT, gain 3)
29 em[16] = 20; em[17] = 40; em[18] = 0; em[19] = 0 // doc4 cos~465 (gain 0)
30
31 // graded relevance per candidate id
32 let g: *i64 = sys_mmap(5 * 8) as *i64
33 g[0] = 0; g[1] = 0; g[2] = 1; g[3] = 3; g[4] = 0
34
35 // sovereign semantic rerank
36 let cs: *i64 = sys_mmap(5 * 8) as *i64
37 rr_semantic_scores(q, dim, em, ncand, cs)
38 let rord: *i64 = sys_mmap(5 * 8) as *i64
39 rr_order_by_cos(cs, ncand, rord)
40
41 // 1: the relevant doc3 (semantic-parallel) is reranked to RANK 1
42 if rord[0] != 3 { return 1 }
43 // 2: doc3's cosine is near the Q10 max (parallel)
44 if cs[3] < 900 { return 2 }
45 // 3: an aligned doc outscores an orthogonal one (cosine actually discriminates)
46 if cs[0] <= cs[1] { return 3 }
47
48 // baseline: a fusion order that BURIES doc3 at rank 4 (lexical miss)
49 let fus: *i64 = sys_mmap(5 * 8) as *i64
50 fus[0] = 0; fus[1] = 2; fus[2] = 1; fus[3] = 3; fus[4] = 4
51
52 // HONEST BENCH on the R0 ruler: nDCG(rerank) vs nDCG(fusion-alone)
53 let gf: *i64 = sys_mmap(5 * 8) as *i64
54 var i: i64 = 0
55 while i < 5 { gf[i] = g[fus[i]]; i = i + 1 }
56 let gr: *i64 = sys_mmap(5 * 8) as *i64
57 i = 0
58 while i < 5 { gr[i] = g[rord[i]]; i = i + 1 }
59
60 let ndcg_fus: i64 = ie_ndcg_at_k(gf, 5, 5)
61 let ndcg_rr: i64 = ie_ndcg_at_k(gr, 5, 5)
62 // 4: the sovereign reranker STRICTLY beats fusion-alone (the measured lift)
63 if ndcg_rr <= ndcg_fus { return 4 }
64 // 5: honest -- NOT claimed perfect (the false-positive costs it), so nDCG_rr < 1.0
65 if ndcg_rr >= fx_from_int(1) { return 5 }
66
67 return 0
68}