Olmo Hybrid: From Theory to Practice and Back
Organizations: Allen Institute for AI · ETH Zürich · Lambda ML Team · University of Washington · University of Cambridge
Abstract
Recent work has demonstrated the potential of non-transformer language models, especially linear recurrent neural networks (RNNs) and hybrid models that mix recurrence and attention. Yet there is no consensus on whether the potential benefits of these new architectures justify the risk and effort of scaling them up. To address this, we provide evidence for the advantages of hybrid models over pure transformers on several fronts. First, theoretically, we show that hybrid models do not merely inherit the expressivity of transformers and linear RNNs, but can express tasks beyond both, such as code execution. Putting this theory to practice, we train Olmo Hybrid, a 7B-parameter model largely comparable to Olmo 3 7B but with the sliding window layers replaced by Gated DeltaNet layers. We show that Olmo Hybrid outperforms Olmo 3 across standard pretraining and mid-training evaluations, demonstrating the benefit of hybrid models in a controlled, large-scale setting. We find that the hybrid model scales significantly more efficiently than the transformer, explaining its higher performance. However, its unclear why greater expressivity on specific formal problems should result in better scaling or superior performance on downstream tasks unrelated to those problems. To explain this apparent gap, we return to theory and argue why increased expressivity should translate to better scaling efficiency, completing the loop. Overall, our results suggest that hybrid models mixing attention and recurrent layers are a powerful extension to the language modeling paradigm: not merely to reduce memory during inference, but as a fundamental way to obtain more expressive models that scale better during pretraining.
Figures & tables
| Layer Type | Elements | FP16 Size | vs. GDN |
| Multi-Head Attention ( K seq, KV heads, ) | M | MiB | |
| Grouped-Query Attention ( K seq, KV heads, ) | M | MiB | |
| Grouped-Query SWA ( window, KV heads, ) | M | MiB | |
| Olmo Hybrid GDN ( heads, , ) | M | MiB | — |
| Base Aggregate Scores | Held-out Scores | |||||||||
| Model | Math | Code | GenQA | LBPP | BBH | MMLU Pro | DM Math | |||
| Olmo 3 7B Pretrain | 23.3 | 19.6 | 64.0 | 71.9 | 68.5 | 6.3 | 48.6 | 31.2 | 15.7 | |
| Olmo Hybrid 7B Pretrain | 27.0 | 17.1 | 67.4 | 75.5 | 66.8 | 2.9 | 52.2 | 35.7 | 13.2 | |
| Olmo 3 7B Midtrain | 59.8 | 32.1 | 67.3 | 78.2 | 71.3 | 17.8 | 65.9 | 36.6 | 23.8 | |
| Olmo Hybrid 7B Midtrain | 61.2 | 32.9 | 70.9 | 81.3 | 73.6 | 17.7 | 68.6 | 43.1 | 23.7 | |
| Olmo 3 7B LC | 54.6 | 30.9 | 66.2 | 78.2 | 72.5 | 17.7 | 64.0 | 37.2 | 23.6 | |
| RULER Scores | ||||||
| Model | LC Method | 4k | 8k | 16k | 32k | 64k |
| Olmo 3 7B | YaRN | 95.8 | 89.3 | 83.2 | 78.9 | 70.9 |
| Olmo Hybrid 7B | YaRN | 92.8 | 91.3 | 90.0 | 84.7 | 76.9 |
| Olmo Hybrid 7B | DroPE | 92.2 | 89.8 | 88.4 | 86.2 | 85.0 |
| Architecture | Model | Observed | Predicted | Error (%) | ||
| Transformer | Olmo 3 | 7B | 5.9T | 2.17 | 2.16 | 0.28 |
| Transformer | Olmo 3 | 32B | 5.5T | 2.02 | 2.05 | 1.69 |
| Hybrid GDN | Olmo Hybrid | 7B | 5.5T | 2.14 | 2.14 | 0.28 |
| Architecture | Attn % | 60M | 100M | 190M | 370M | 600M | 760M | 1B |
| Pure Architectures | ||||||||
| Transformer | 100% | 1.155 | 1.037 | 0.950 | 0.839 | 0.781 | 0.747 | 0.682 |
| GDN | 0% | 1.080 † | 0.990 † | 0.895 † | 0.795 | 0.761 † | 0.722 † | 0.677 † |
| Mamba2 | 0% | 1.146 | 1.036 | 0.941 | 0.843 | 0.787 | 0.750 | 0.718 |
| Hybrid: Interleaved Attention | ||||||||
| GDN (1:1) | 50% | 1.093 | 0.992 | 0.896 | 0.804 | 0.787 | 0.724 | 0.674 |
| Knowledge & Reasoning | Math | Code | Chat & IF | ||||||||||||
| Model | MMLU | PopQA | BBH | GPQA | Zebra | MATH | AIME’25 | AIME’24 | HE+ | MBPP+ | LCB | IFEval | IFB | AE3 | |
| Olmo 3 Think SFT | 74.9 | 20.8 | 84.1 | 45.8 | 57.9 | 94.4 | 37.8 | 57.6 | 69.6 | 88.2 | 63.2 | 67.8 | 77.9 | 30.0 | 43.9 |
| Olmo Hybrid Think SFT | 80.5 | 25.1 | 84.6 | 47.0 | 55.1 | 93.8 | 35.1 | 55.2 | 66.2 | 86.3 | 63.7 | 65.5 | 80.4 | 31.6 | 49.0 |
| Olmo 3 Instruct SFT | 67.1 | 16.5 | 51.0 | 30.0 | 18.0 | 65.1 | 14.4 | 7.2 | 6.7 | 69.8 | 56.5 | 20.0 | 81.7 | 27.4 | 21.8 |
| Olmo Hybrid Instruct SFT | 71.9 | 16.8 | 47.3 | 36.8 | 17.0 | 66.7 | 16.0 | 8.8 | 6.7 | 69.2 | 55.3 | 21.3 | 81.5 | 29.0 | 25.6 |
| Olmo 3 DPO | 69.1 | 20.7 | 69.3 | 37.9 | 28.4 | 79.6 | 22.8 | 20.4 | 23.5 | 72.9 | 55.9 | 18.8 | 82.0 | 29.3 | 43.3 |
| Model | Metric | 1K | 4K | 8K | 16K | 32K |
| Olmo 3 7B (MHA) | Tokens/sec/node | 2,909 | 2,164 | 1,510 | 1,690 | 1,247 |
| Inference GPUs (RL batch 1K) | 32 | 48 | 56 | 64 | 96 | |
| Generation wall time (h) | 10.5 | 56.7 | 162.5 | 283.7 | 768.6 | |
| GPU-hours ( 1K) | 0.3 | 2.7 | 9.1 | 18.2 | 73.8 | |
| Olmo Hybrid 7B | Tokens/sec/node | 3,039 | 3,077 | 2,736 | 1,876 | 1,422 |
| Inference GPUs (RL batch 1K) | 8 | 16 | 24 | 40 | 64 |
Appendix figures & tables21 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | # Heads | # Parameters | Training Throughput (TPS) | |
| Olmo 3 | 32 | 4096 | 6.8B | 8.0K |
| Olmo Hybrid | 32 | 4096 | 7.7B | 7.7K |
| 31 | 3968 | 7.4B | 7.7K | |
| 30 | 3840 | 7.0B | 8.2K |
| 7B Think SFT | 7B Instruct SFT | 7B Instruct DPO | |
| Instances | 2,932,239 | 2,153,716 | 259,922 |
| Total Tokens | 47.6B | 3.4B | N/A |
| Batch Size | 1M tokens | 1M tokens | N/A |
| Learning Rate | |||
| Num. GPUs | 64 | 64 | 32 |
| Max Sequence Length | 32K | 32K | 16K |
| Olmo 3 | Olmo Hybrid | |
| Data Parallel | HSDP (shard within node) | FSDP (full sharding) |
| Context Parallel | Ring (degree ) | Ulysses (degree ) |
| Activation Checkpointing | Selected modules ( feed_forward ) | Budget-based (0.1) |
| Task | Format | Metric | Temp | Top-p | Ans. Extract | Max Toks | N | # Sub | |
| Chat Suite | |||||||||
| IF Eval ( 2023 ) | CoT | Custom | 0.6 | 0.95 | Custom | 32768 | 1 | - | |
| IFBench ( 2025 ) | CoT | Custom | 0.6 | 0.95 | Custom | 32768 | 1 | - | |
| MATH 500 ( 2022 ; 2023 ) | CoT EM | EM Flex | 0.6 | 0.95 | Minerva | 32768 | 1 | - | |
| Shared hyperparameters | Value |
| Layers ( ) | |
| Model width ( ) | |
| FFN intermediate size ( ) | |
| Attention heads ( ) | |
| Head dimension ( ) | |
| Max positions | (Recall) / (State Tracking, State-based Recall) |
| Transformer | Linear RNN (neg. eig.) | Linear RNN (pos. eig.) | Hybrid (neg. eig.) | Hybrid (pos. eig.) | |
| 4 | 0.51172 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 8 | 0.27734 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 16 | 0.17188 | 1.00000 | 0.97266 | 1.00000 | 1.00000 |
| 32 | 0.23047 | 1.00000 | 0.64453 | 1.00000 | 1.00000 |
| 64 | 0.19922 | 1.00000 | 0.21484 | 1.00000 | 0.96094 |
| 128 | 0.23047 | 1.00000 | 0.22266 | 1.00000 | 0.36328 |
| Transformer | Linear RNN (neg. eig.) | Linear RNN (pos. eig.) | Hybrid (neg. eig.) | Hybrid (pos. eig.) | |
| 4 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 8 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 16 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 32 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 64 | 1.00000 | 0.83203 | 0.80078 | 1.00000 | 1.00000 |
| 128 | 0.96484 | 0.67578 | 0.67188 | 1.00000 | 1.00000 |
| Transformer | Linear RNN (neg. eig.) | Linear RNN (pos. eig.) | Hybrid (neg. eig.) | Hybrid (pos. eig.) | |
| 4 | 0.82031 | 1.00000 | 0.76953 | 1.00000 | 0.85938 |
| 8 | 0.75000 | 1.00000 | 0.99219 | 1.00000 | 0.99219 |
| 16 | 0.73828 | 1.00000 | 0.85547 | 1.00000 | 0.93750 |
| 32 | 0.73828 | 1.00000 | 0.64453 | 1.00000 | 0.68750 |
| 64 | 0.62891 | 0.78125 | 0.59766 | 1.00000 | 0.61328 |
| 128 | 0.54297 | 0.63672 | 0.57422 | 1.00000 | 0.57031 |
| Architecture | ||||||||
| Free fit (all five parameters fit independently) | ||||||||
| Olmo 3 | 1.65 [1.11, 1.87] | 108.83 [21.2, 448.7] | 0.25 [0.14, 0.34] | 83.45 [29.6, 495.0] | 0.21 [0.15, 0.30] | 0.46 [0.33, 0.68] | 0.54 [0.32, 0.67] | 0.9976 |
| Hybrid | 1.60 [1.25, 1.72] | 71.14 [24.8, 145.3] | 0.23 [0.15, 0.27] | 81.72 [37.4, 219.6] | 0.22 [0.18, 0.27] | 0.49 [0.41, 0.64] | 0.51 [0.36, 0.59] | 0.9993 |
| Pure GDN | 1.46 [1.16, 1.75] | 36.24 [19.0, 113.3] | 0.18 [0.14, 0.26] | 102.72 [52.1, 214.8] | 0.23 [0.19, 0.26] | 0.55 [0.45, 0.65] | 0.45 [0.35, 0.55] | 0.9994 |
| Fixed-exponent fit ( shared; only , , refit) | ||||||||
| Olmo 3 | 1.55 [1.52, 1.58] | 66.63 [61.9, 69.4] | 0.22 | 94.85 [89.3, 101.4] | 0.22 | 0.50 | 0.50 | 0.9975 |
| Transformer | Hybrid GDN | Pure GDN | |||||||||
| FLOPs | Loss | Loss | Loss | ||||||||
| 0.2 | 0.8 | 3.57 [3.52, 3.62] | 0.2 | 0.7 | 3.46 [3.42, 3.49] [ 0.19, 0.05] | 0.2 | 1.0 | 3.53 [3.50, 3.55] [ 0.10, 0.01] | |||
| 0.6 | 2.9 | 3.12 [3.10, 3.14] | 0.7 | 2.3 | 3.04 [3.02, 3.05] [ 0.11, 0.05] | 0.6 | 2.9 | 3.10 [3.09, 3.10] [ 0.05, 0.00] | |||
| 1.6 | 10.2 | 2.78 [2.75, 2.79] | 2.2 | 7.4 | 2.71 [2.69, 2.72] [ 0.10, 0.04] | 2.0 | 8.2 | 2.76 [2.74, 2.77] [ 0.04, 0.01] | |||
| 4.7 | 35.5 | 2.51 [2.45, 2.55] | 7.0 | 24.0 | 2.46 [2.41, 2.48] [ 0.11, 0.01] | 7.3 | 22.9 | 2.49 [2.46, 2.52] [ 0.07, 0.04] | |||
| 13.5 | 123.6 | 2.31 [2.21, 2.36] | 21.6 | 77.2 | 2.27 [2.18, 2.30] [ 0.14, 0.06] | 26.0 | 64.1 | 2.27 [2.23, 2.33] [ 0.10, 0.08] | |||
| Transformer | Hybrid | Pure GDN | |||
| Savings | Savings | ||||
| 1B | 776.5B | 587.1B | 1.32 [0.67, 4.02] | 949.6B | 0.82 [0.45, 2.50] |
| 3B | 90.0B | 57.2B | 1.57 [1.11, 2.50] | 79.5B | 1.13 [0.77, 1.63] |
| 7B | 35.1B | 20.9B | 1.68 [0.91, 3.47] | 27.0B | 1.30 [0.68, 2.30] |
| 13B | 21.5B | 12.3B | 1.75 [0.84, 4.12] | 15.2B | 1.41 [0.65, 2.75] |
| 30B | 13.1B | 7.2B | 1.82 [0.77, 4.98] | 8.4B | 1.56 [0.61, 3.44] |
| Architecture | Attn % | 60M | 100M | 190M | 370M | 600M | 760M | 1B |
| 384 | 512 | 768 | 1024 | 1280 | 1536 | 2048 | ||
| 8 | 8 | 12 | 16 | 16 | 16 | 16 | ||
| 8 | 12 | 12 | 16 | 16 | 16 | 16 | ||
| Pure Architectures | ||||||||
| Transformer | 100% | 57 | 102 | 190 | 371 | 548 | 758 | 1279 |
| GDN | 0% | 78 | 140 | 276 | 574 | 780 | 1011 | 1549 |