T-Router: Learning Thalamic Routing for Reasoning with Parameter-Efficient Reinforcement Learning
Organizations: College of Artificial Intelligence, Tsinghua University · State Key Laboratory of General Artificial Intelligence, School of Intelligence Science and Technology, Peking University · Beijing Institute for General Artificial Intelligence
Abstract
Parameter-efficient reinforcement learning aims to improve reasoning with a compact trainable interface to a pretrained model. We introduce the Thalamic Router (T-Router), which concentrates adaptation on the reuse of completed computations. A compressed, addressable bank preserves block changes; a depth-recurrent controller conditions their selection and relative-scale writeback. This coupling gives thalamic context-dependent routing a concrete computational form: learn which earlier contributions a receiving layer uses, and with what influence. Correctness rewards train the interface while preserving backbone parameters and layer order. On an 8.95B-parameter backbone, T-Router allocates 41.73M parameters (0.466% of the backbone) and achieves 83.64 +/- 1.16 MathAvg after GSM8K RL, compared with 73.79 +/- 1.83 for full-parameter GRPO across three evaluation rounds. At a comparable parameter budget and with matched retries, it exceeds LoRA's 77.28 +/- 1.95 MathAvg, improving all three task families and raising mean AIME accuracy from 48.33 to 60.56. Capacity-controlled comparisons favor addressable block changes and recurrent context; separate search training extends the interface to tool-mediated reasoning. These results establish controlled computation reuse as an effective route to parameter-efficient reasoning reinforcement learning.
Figures & tables
| Method | Params (M) | GSM8K | MATH-500 | AIME mean | MathAvg |
|---|---|---|---|---|---|
| Frozen base | — | ||||
| Full-parameter GRPO | 8954.000 | ||||
| RFT | 8954.000 | ||||
| LoRA-r2 + GRPO | 5.410 | ||||
| LoRA-r16 + GRPO | 43.278 | ||||
| LoRA-MoE + RO-GRPO | 173.112 |
| Method | BrowseComp F1 | vs GRPO | ASearch | vs GRPO |
|---|---|---|---|---|
| Frozen base | ||||
| Full-parameter GRPO | — | — | ||
| RFT | ||||
| LoRA-r2 + GRPO | ||||
| LoRA-r16 + GRPO | ||||
| LoRA-MoE + RO-GRPO |
| Configuration | GSM8K | MATH-500 | MathAvg | |
|---|---|---|---|---|
| Full T-Router | — | |||
| Without cross-layer retrieval | ||||
| Hidden-state memory | ||||
| Learned static routing | ||||
| State replaced by matched MLP | ||||
| Without layer/block identity |
Appendix figures & tables35 assets
Supplementary material from the paper’s appendix.
Appendix
| Question | Material | Page |
|---|---|---|
| How is the module executed? | Tensor shapes, exact parameter counts, layer schedule, state lifetimes, training settings, prompts, scoring, and analytical storage | A |
| What properties follow from the design? | Causal source availability, transport subspaces, slot history, calibration derivatives, gradient flow, and finite group sampling | B |
| What do the configurations reveal? | Full-test comparisons, component results and costs, writeback and initialization comparisons, routing interactions, auxiliary diagnostics, evaluation variance, and metric sensitivity | C |
| How do the components fit together? | Thalamic functional correspondence, bank/controller roles, intervention coordinates, and adaptation interfaces | D |
| Object | Tensor shape | Role |
|---|---|---|
| Residual | Input to a receiving decoder layer | |
| Block anchor | Post-intervention input at the start of a block | |
| Block displacement | Completed block output minus its anchor | |
| Compressed memory | Source-specific record of that displacement | |
| Visible bank | Completed records available to a receiver | |
| Controller slots | Depth history used to condition retrieval |
| Component | Shape or multiplicity | Parameters |
|---|---|---|
| Block compressors | 8,388,608 | |
| Writeback projections | 29,360,128 | |
| Layer and source embeddings | 1,280 | |
| Initial controller slots | 2,048 | |
| Routing query | 1,122,304 | |
| Routing key and value | 147,456 |
| Component | Initialization |
|---|---|
| Source compressors, source/layer embeddings, initial slots | Gaussian with standard deviation |
| Routing, controller-input and slot projections | Xavier initialization |
| Controller MLP output layer | Zero weights and biases |
| Receiving projections | Orthogonal initialization, gain 1 |
| Shared dynamic gate vector | Zero |
| Receiving-layer gate bias |
| Receiving layers | Sources visible before layer | Appended after | New source | Read count |
|---|---|---|---|---|
| 0–3 | None | Layer 3 | 0 | |
| 4–7 | Layer 7 | 1 | ||
| 8–11 | Layer 11 | 2 | ||
| 12–15 | Layer 15 | 3 | ||
| 16–19 | Layer 19 | 4 | ||
| 20–23 | Layer 23 | 5 |
| Object | Lifetime | Update rule |
|---|---|---|
| Adapter parameters | Shared across examples and forward calls | Optimizer update during training |
| Initial slot array | Learned parameter | Copied at forward initialization |
| Controller state | Current forward call and token position | Recurrent update at each layer |
| Source bank | Current forward call and token position | Append after a completed block |
| Block anchor | Current block | Replace at block start; clear at block end |
| Backbone causal cache | Generation context | Managed by the backbone’s decoder |
| Setting | Value |
|---|---|
| Training data | GSM8K train: 7,473 questions |
| Evaluation data | GSM8K: 1,319; MATH-500: 500; AIME24/25: 30 each |
| Evaluation generation | One generated answer per question in each evaluation round |
| Evaluation aggregate | Equal weight for GSM8K, MATH-500, and mean AIME |
| T-Router allocation | 41,730,332 parameters; 40,681,724 loss connected |
| Reference policy | Frozen backbone with the adapter disabled |
| Control | Value | Control | Value |
|---|---|---|---|
| Optimizer | AdamW | Weight decay | 0.01 |
| Peak learning rate | Warmup | 10% of scheduled updates | |
| Schedule | Linear warmup/decay | Accumulation | 2 prompt groups |
| Prompt batch size | 1 | Group size | 4 completions |
| Additional retry limit | 3 groups | Temperature | 0.7 |
| Top- | 0.95 | Completion ceiling | 512 tokens |
| Task | Questions | Scoring object |
|---|---|---|
| GSM8K | 1,319 | Normalized final answer |
| MATH-500 | 500 | Mathematical equivalence of the final answer |
| AIME 2024 | 30 | Mathematical equivalence of the final answer |
| AIME 2025 | 30 | Mathematical equivalence of the final answer |
| Task | Dataset interface |
|---|---|
| GSM8K | openai/gsm8k |
| MATH-500 | HuggingFaceH4/MATH-500 |
| AIME 2024 | HuggingFaceH4/aime_2024 |
| AIME 2025 | yentinglin/aime_2025 |
| MuSR | TAUR-Lab/MuSR |
| GPQA-D | fingertap/GPQA-Diamond |
| Setting | ASearcher training/validation | BrowseComp Plus evaluation |
|---|---|---|
| Retrieval collection | Local wiki-18.jsonl | BrowseComp-Plus corpus |
| Retriever | e5-base-v2 | Qwen3-Embedding-8B |
| Summary model | Qwen3-1.7B | Qwen3-8B ; three services |
| Retrieved documents | Top 10 per call | Top 10 per call |
| Initial excerpt | 2,000 characters/document | 10,000 characters/document |
| Summary ceiling | 256 model tokens | 256 model tokens |
| Source bank (MiB) | Slots (MiB) | Anchor (MiB) | Sum (MiB) | |
|---|---|---|---|---|
| 1 | 0.0068 | 0.0078 | 0.0156 | 0.0303 |
| 128 | 0.875 | 1.000 | 2.000 | 3.875 |
| 512 | 3.500 | 4.000 | 8.000 | 15.500 |
| 2048 | 14.000 | 16.000 | 32.000 | 62.000 |
| 8192 | 56.000 | 64.000 | 128.000 | 248.000 |
| Region | Returned vector | Output norm | Derivative in |
|---|---|---|---|
| Tangential projector | |||
| Boundary; see one-sided limits |
| Per-completion correctness | Mixed | Retained mixed | Expected attempts | Expected responses |
|---|---|---|---|---|
| Method | AIME24 | AIME25 | AIME mean | MathAvg | vs GRPO |
|---|---|---|---|---|---|
| Frozen base | |||||
| Full-parameter GRPO | |||||
| RFT | |||||
| LoRA-r2 + GRPO | |||||
| LoRA-r16 + GRPO | |||||
| LoRA-MoE + RO-GRPO |
| Method | BrowseComp F1 | vs GRPO | ASearch | vs GRPO |
|---|---|---|---|---|
| Frozen base | ||||
| Full-parameter GRPO | ||||
| RFT | ||||
| LoRA-r2 + GRPO | ||||
| LoRA-r16 + GRPO | ||||
| LoRA-MoE + RO-GRPO |
| Configuration | GSM8K | MATH | AIME24 | AIME25 | MathAvg | |
|---|---|---|---|---|---|---|
| Full T-Router | ||||||
| No cross-layer retrieval | ||||||
| Hidden-state memory | ||||||
| Learned static routing | ||||||
| No state (matched MLP) | ||||||
| No layer/block identity |
| Configuration | Parameters | Steps (est.) | GPU-hours |
|---|---|---|---|
| Full T-Router | 41,730,332 | 3,737 | 121.23 |
| No cross-layer retrieval | 41,648,924 | 3,737 | 110.97 |
| Hidden-state memory | 41,730,332 | 3,737 | 122.42 |
| Learned static routing | 40,535,324 | 3,737 | 114.90 |
| No state (matched MLP) | 41,731,978 | 3,737 | 69.25 |
| No layer/block identity | 41,729,052 | 3,737 | 77.34 |
| Configuration | GSM8K | MATH-500 | AIME24 | AIME25 | MathAvg |
|---|---|---|---|---|---|
| Standard gate † | |||||
| Standard gate, no KL † | |||||
| Local16 † | |||||
| Local64 † | |||||
| Wide512 † | |||||
| Zero initialization † |
| Configuration | GSM8K | MATH | AIME mean | MathAvg | Final WB | Tail |
|---|---|---|---|---|---|---|
| Standard gate † | 0.1254 | — | ||||
| Fixed RMS 0.5% † | 0.5005 | — | ||||
| Fixed RMS 1% † | 1.0010 | — | ||||
| Fixed RMS 2% † | 2.0020 | — | ||||
| Learned RMS, init 0.5% † | 3.4987 | 3.7596 | ||||
| Learned RMS, init 1% † | 3.6535 | 3.8762 |
| Structure | Original writeback | Fixed RMS 2% | Paired change |
|---|---|---|---|
| Dense, standard gate † | |||
| Wide512 † | |||
| Top2 composite † | |||
| Local64 † |
| Configuration | MuSR | GPQA-D | IFEval strict@50 | WikiText-2 PPL |
|---|---|---|---|---|
| Frozen base | — | — | — | — |
| Full-parameter GRPO | 63.00 ‡ | 40.00 ‡ | — | — |
| Standard gate | 63.00 ‡ | 41.00 ‡ | 7.0391 ‡ | |
| Fixed RMS 2% | 61.00 ‡ | 39.00 ‡ | 7.0890 ‡ | |
| Learned RMS, init 1% | 61.00 ‡ | 40.00 ‡ | 7.0758 ‡ | |
| Full T-Router | 61.00 ‡ | 38.00 ‡ | 7.1185 ‡ |
| Organizing principle | T-Router realization | Computational consequence |
|---|---|---|
| Distributed processing | Frozen decoder blocks | Every block produces its original nonlinear transformation on the received residual |
| Selective inter-area communication | Attention over completed block records | Later computations select from origin-indexed intermediate changes |
| Context-dependent coordination | Token-specific slots recurrent over depth | Retrieval uses an auxiliary history of preceding computational states |
| Modulation of influence | Signed RMS-calibrated writeback | Direction and relative magnitude are controlled separately |
| Coordinating system around existing processing | Full source–controller–writeback pathway | Adaptation capacity is concentrated in communication between frozen blocks |
| Property | Source bank | Depth controller |
|---|---|---|
| Index meaning | Completed block identity | Slot identity |
| Cardinality | Grows as blocks finish | Fixed at |
| Content width | per slot | |
| Write frequency | Once per completed block | Once per decoder layer |
| Write rule | Append compressed block change | Decay plus allocated shared proposal |
| Read function | Source attention produces | Slot attention produces |
| Coordinate | Governing objects | Quantity it controls |
|---|---|---|
| Source preference | Query, source keys, depth context | Relative attention across completed computations |
| Content transport | , source value projection, | Source-to-receiver transformation within |
| Relative influence | Target-RMS calibration and signed gate | Norm relative to the receiving residual and sign along the direction |