TRM_model / README.md
admincybers2's picture
F1 0.7753 @ 2026-07-07T02:33:14
d1661c5 verified
|
Raw
History Blame Contribute Delete
1.43 kB
---
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.
![training report](training_report.png)
## 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