| --- |
| tags: [retrieval, chunk-selection, trm] |
| --- |
| # TRM chunk selector |
|
|
| Recursive PASS/FAIL gate over retrieved chunks (TRM core + skip head), |
| 1.91M params on frozen `openai/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.942) |
|
|
| micro-P **0.9345** · micro-R **0.6624** · |
| micro-F1 **0.7753** · exact-set **0.2** · |
| best epoch 53 |
|
|
| | bench | groups | P | R | F1 | |
| |---|---|---|---|---| |
| | gold_easy | 9 | 0.8571 | 0.2069 | 0.3333 | |
| | gold_medium | 2 | 1.0 | 0.9211 | 0.9589 | |
| | gold_hard | 5 | 1.0 | 0.9667 | 0.9831 | |
| | llm_held_out | 29 | 0.7436 | 0.3625 | 0.4874 | |
| |
| `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-07T02:33:14 · source: https://github.com/s3777091/recursive_models |
| |