BatchParScale: Sparse Batch-Mixing for Sequence Models
Organizations: University of Copenhagen · Technical University of Denmark
Abstract
Recent test-time scaling methods improve model performance by increasing inference-time compute. One practical form of this is parallel scaling, where a model samples multiple independent reasoning streams and aggregates their answers using methods like voting, reranking, or verification. While effective, this approach leaves the streams uncoordinated, and a discovery made in one rollout cannot influence any other. Multi-Sequence Verifiers jointly score candidate answers after generation, but the reasoning streams remain independent during inference. ParScale takes a step toward model-internal parallel scaling by learning to aggregate multiple forward passes, but its streams still do not exchange information while processing a sequence. We introduce BatchParScale, an attention mechanism that allows parallel streams to exchange information through a small set of communication positions. We evaluate BatchParScale on a new Parallel Needle-in-a-Haystack retrieval benchmark and in pretraining, fine-tuning, and cooperative multi-agent reinforcement learning. Across these settings, BatchParScale outperforms ParScale on language-model loss and remains competitive on coordination-sensitive MARL tasks. Masked pretraining runs beat an unmasked single-sequence baseline despite local sequence corruption, and LoRA fine-tuning shows the mechanism can be added to a pretrained Transformer. At the same time, fact retrieval performance for pretrained and finetuned BatchParScale models remains unclear.
Figures & tables
| Model | Mask | Eval loss | PQA acc. | PQA rank | PQA (Concat) acc. | |
|---|---|---|---|---|---|---|
| Qwen3 baseline | - | - | 1.711 | - | - | - |
| ParScale | - | 4 | 1.023 | - | - | - |
| ParScale | - | 8 | 1.268 | - | - | - |
| Static-BPS | 0% | 4 | 1.014 | 0.375 | 2.81 | 1.000 |
| Static-BPS | 30% | 4 | 1.485 | 0.250 | 2.75 | 1.000 |
| Dynamic-BPS | 0% | 4 | 1.010 | 0.250 | 3.00 | 0.250 |
| Layout | Source | CE on | CE off | CE | Mass R0 | Mass R1 | Mass R2 | Mass R3 |
|---|---|---|---|---|---|---|---|---|
| A | 2.517 | 3.327 | -0.811 | 0.248 | 0.258 | 0.252 | 0.241 | |
| A | 2.557 | 3.311 | -0.754 | 0.366 | 0.368 | 0.134 | 0.131 | |
| B | 2.711 | 3.487 | -0.777 | 0.125 | 0.128 | 0.375 | 0.372 | |
| B | 2.743 | 3.444 | -0.700 | 0.248 | 0.244 | 0.256 | 0.253 | |
| A | 2.507 | 3.319 | -0.812 | 0.367 | 0.366 | 0.132 | 0.135 | |
| U | 12.917 | 12.739 | 0.178 | 0.116 | 0.113 | 0.387 | 0.384 |
| Model | Mask | Train | Eval | PN on | PN off | PN cat | PM on | PM off | PM cat | WH on | WH off | WH cat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Qwen3 base | - | - | - | - | - | 1.000 | - | - | 1.000 | - | - | .360 |
| Qwen3 LoRA | - | 3.079 | 3.121 | - | - | 1.000 | - | - | 1.000 | - | - | .350 |
| ParScale | - | 2.890 | 2.912 | - | - | - | - | - | - | - | - | - |
| BatchParScale | 0% | 2.889 | 2.853 | .094 | .107 | - | .260 | .350 | - | .230 | .060 | .200 |
| BatchParScale | 30% | 3.879 | 3.932 | .112 | .117 | - | .220 | .340 | - | .270 | .130 | .200 |
| BatchParScale | 50% | 4.682 | 4.777 | .102 | .133 | - | .300 | .290 | - | .210 | .110 | .210 |
| Task | Policy | Final | Std. | Best | Last 10 |
|---|---|---|---|---|---|
| Spread | MLP | -22.7 | 0.4 | -22.3 | -22.7 |
| Spread | RNN | -21.0 | 0.2 | -20.7 | -21.3 |
| Spread | Agent | -19.3 | 0.4 | -18.8 | -19.2 |
| Spread | Temporal | -19.2 | 0.2 | -18.8 | -19.2 |
| Spread | Temporal-Agent | -19.1 | 0.4 | -18.3 | -18.8 |
| Spread | BatchParScale | -18.9 | 0.3 | -18.5 | -19.0 |
| Policy | Return | Std. | Win rate | Time |
|---|---|---|---|---|
| MLP | 1.5 | 0.7 | 0.65 | 212s |
| RNN | 1.2 | 0.6 | 0.35 | 342s |
| Agent Transformer | 1.1 | 0.5 | 0.30 | 223s |
| Temporal Transformer | 0.8 | 0.0 | 0.09 | 645s |
| Temporal-Agent Transformer | 0.8 | 0.1 | 0.09 | 1231s |
| BatchParScale | 0.8 | 0.0 | 0.07 | 1307s |
| Policy | Final | Std. | Best | Last 10 |
|---|---|---|---|---|
| MLP | 74 | 2 | 79 | 74 |
| RNN | 97 | 11 | 113 | 96 |
| Agent Transformer | 110 | 2 | 114 | 107 |
| Temporal Transformer | 95 | 5 | 101 | 92 |
| Temporal-Agent Transformer | 96 | 7 | 99 | 93 |
| BatchParScale | 85 | 3 | 89 | 84 |
| Policy | Found | Std. | Remaining | Time |
|---|---|---|---|---|
| MLP | 18.4 | 0.4 | 0.08 | 44.5s |
| RNN | 18.1 | 0.9 | 0.10 | 144.0s |
| Agent Transformer | 19.2 | 0.6 | 0.04 | 67.6s |
| Temporal Transformer | 18.4 | 1.3 | 0.08 | 110.5s |
| Temporal-Agent Transformer | 19.7 | 0.2 | 0.02 | 99.3s |
| BatchParScale | 19.4 | 0.4 | 0.03 | 111.8s |
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Vision | Agent | Temporal-Agent | BatchParScale | |
|---|---|---|---|---|---|
| Sparse | 4 | 17.29 | 16.87 | 17.18 | +0.31 |
| Sparse | 8 | 15.69 | 16.23 | 15.49 | -0.74 |
| Sparse | 16 | 15.84 | 15.52 | 16.18 | +0.66 |
| Sparse | 24 | 15.78 | 16.01 | 16.53 | +0.52 |
| Large | 12 | 12.39 | 10.55 | 11.87 | +1.32 |
| Large | 16 | 10.22 | 10.16 | 10.58 | +0.41 |
| Run | oracle | non-oracle | |
|---|---|---|---|
| , mask 30% | 2.3 | 2.8 | 37.2 |
| , mask 50% | 1.1 | 7.7 | 40.6 |
| , mask 30% | 0.1 | 7.2 | 40.9 |
| , mask 50% | 0.2 | 4.8 | 42.4 |
| Stream | Text used while scoring one candidate |
|---|---|
| 0 | Source record only |
| 1 | Masked query followed by candidate |
| 2 | Neutral background note about the school yard. |
| 3 | Neutral background note about the paper crown. |
| Stream | Prompt | Greedy continuation |
|---|---|---|
| 0 | In the toy shop, Anna picked up a tiny drum. | She was so excited! She took it home and started to play. Anna’s mom saw her playing and said, “That drum looks so cute!” |
| 1 | In the toy shop, Ben looked for a yellow train. | He found one and said, “I want this one!” The shopkeeper said, “That’s a nice train. It will fit in your hand” |
| 2 | In the toy shop, the shopkeeper smiled and opened a box. | Inside the box was a toy car. The car was red and shiny. The shopkeeper said, “This car is for you!” The little boy |
| 3 | In the toy shop, a kitten slept under the shelf. | The kitten was very cute and soft. Lily wanted to take the kitten home, but her mom said no. Lily was sad, but she listened |
| Stream | Masked prefix tail | Sampled continuation |
|---|---|---|
| 0 | Once mask a time, in mask big mask , there lived a rhinoceros named Roxy. Roxy loved to climb. She climbed mask mask , rocks, and hills mask One day, Roxy found an icy mask | . She thought it would be fun to climb it. Roxy climbed and climbed, but |
| 1 | Once upon a mask , in a big forest, mask lived a rhinoceros mask R mask . R mask loved mask climb. She climbed trees, mask mask , and hills. One mask , R mask found an icy hill | . It was so cold, she thought she would freeze! Remy wanted to see how |
| 2 | Once upon mask time, mask a big forest mask , there mask a rhin mask eros named mask oxy. Roxy loved to climb. She climbed trees, rocks, mask mask . mask day, Roxy found an icy hill | . She thought it would be fun to climb the icy hill. Roxy started to climb |
| 3 | mask upon a time mask , in a mask forest, there lived mask mask mask oc mask named Roxy mask Roxy mask to mask mask mask mask trees, rocks, and hills. One day mask , Roxy mask mask mask hill | and decided to climb it. As Roxy climbed, she met a tiny bird named Ch |
| Task | Train | Eval | Ctrl. | Cross |
|---|---|---|---|---|
| WikiHop | 800 | 100 | .230 | .300 |
| QASC | 800 | 926 | .454/.185 | .472 |
| Guarded QA | 800 | 926 | .125 | .146 |
| QA-v4 | 800 | 128 | .117 | .164 |
| Benchmark | Policy | Final | Std. / Win | Best | Last 10 / Time |
|---|---|---|---|---|---|
| SMAX | Perceiver Transformer | 1.2 | 0.6 / 0.38 | – | 1580s |
| SMAX | Agent-Query Perceiver | 1.6 | 0.6 / 0.67 | – | 1418s |
| SMAX | Agent-Query Sink Perceiver | 1.2 | 0.6 / 0.39 | – | 1806s |
| SMAX | Agent-Query Sink Perceiver + RoPE | 2.0 | 0.0 / 0.96 | – | 1892s |
| SMAX | Sparse Cross-Batch Transformer | 0.7 | 0.0 / 0.02 | – | 1565s |
| MABrax | Last-token Agent Transformer | 90 | 13 | 106 | 94 |