File size: 1,431 Bytes
e330a14 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | ---
tags: [retrieval, chunk-selection, trm]
---
# TRM chunk selector
Recursive PASS/FAIL gate over retrieved chunks (TRM core + skip head),
1.91M params on frozen Azure `text-embedding-ada-002` embeddings
(dim 1539). Decides per chunk whether it belongs in the answer set —
a variable-size selection instead of a fixed top-k.

## Test metrics (threshold 0.924)
micro-P **0.9076** · micro-R **0.7046** ·
micro-F1 **0.7933** · exact-set **0.2889** ·
best epoch 40
| bench | groups | P | R | F1 |
|---|---|---|---|---|
| gold_easy | 9 | 1.0 | 0.3793 | 0.55 |
| gold_medium | 2 | 1.0 | 0.9474 | 0.973 |
| gold_hard | 5 | 0.9886 | 0.9667 | 0.9775 |
| llm_held_out | 29 | 0.6735 | 0.4125 | 0.5116 |
`gold_*` tiers are hand-curated deterministic labels (easy = section how-to,
medium = single-doc, hard = table/matrix incl. reverse lookups); rephrasing
variants of those questions are in train, so they measure learned question
types. `llm_held_out` is strict generalization on unseen questions.
## Training data
```json
{
"train_groups": 1184,
"gold_train_groups": 48,
"test_groups": 45,
"gold_test_groups": 16,
"train_candidates": 27544,
"train_pass": 5567,
"train_fail": 21977,
"pass_ratio": 0.202,
"avg_candidates_per_train_group": 23.3,
"avg_pass_per_train_group": 4.7
}
```
Trained 2026-07-07T04:40:40 · source: https://github.com/s3777091/recursive_models
|