Kolibri-1
Aleph Alpha · reasoning checkpoint
No base checkpoint is public; architecture facts describe the released post-trained checkpoint (Aleph-Alpha/Kolibri-1-BF16; Aleph-Alpha/Kolibri-1 is its FP8 quantization with the same config apart from quantization_config). Pretraining facts come from the model card and the technical report.
Open in the comparison table Hugging Face ↗ Paper ↗
KV calculations use one sequence at 131,072 tokens and 16-bit cache elements. They include bounded sliding-window caches. This is retained cache payload, not peak prefill memory. The comparison table also offers sourced mixed-precision layouts, including quantization scales.
Release
- Released
2026-10-03
Source: blog · Kolibri Has Landed blog post, byline and first sentence
On the Day of German Reunification, we are releasing our new model: Kolibri.
Post dated 03/10/2026; the card's Model overview gives 'Release Date | 3rd of October 2026'. Both Hugging Face repositories were created on 2026-10-02.
Date the weights (or, if earlier, the technical report) were first made public, YYYY-MM-DD, as dated by the publisher. A Hugging Face repository creation date is used only when no dated publisher page exists, with a note.
- License
apache-2.0
Source: model-card · README.md; YAML front matter
license: "apache-2.0"
License of the released weights as declared by the publisher (model card metadata or license file), e.g. apache-2.0, mit, or the name of a custom license.
- Input modalities
text
Source: model-card · README.md; Intended use
Kolibri is intended to process text input and output in German and English
Input modalities of the released checkpoint as the publisher states them, from: text, image, video, audio, joined with ' + ' in that order ("text", "text + image + video").
Parameters
- Total params
78.1B parameters
Source: model-card · README.md; Model overview table
| Total parameters | 78B (`78,103,074,560`) |
Total parameter count as reported by the publisher. See params.note for whether embeddings, MTP heads or vision towers are included.
- Active params
3.458B parameters
Source: model-card · README.md; Model overview table
| Active parameters / token | 3.46B (`3,457,573,120`) |
Parameters used per token in the forward pass, as reported by the publisher.
- Active non-embedding (stated)
3.13B parameters
Inferred from the source; see the explanation below.
Source: paper · PDF p.8; Table 2 caption
Active parameters exclude the embeddings.
3,457,573,120 − 128,000 × 2,560 (untied LM head) = 3,129,893,120. The report excludes the embeddings from the active count, but the card's 3,457,573,120 is reproduced only with the 327.68M LM head included: 50 layers × (attention 34.08M + 7 × 3.93M routed/shared experts + 0.98M router) ≈ 3.13B.
Active parameters excluding the input embedding and the output head (unembedding). Stated by the publisher, or computed from params.active by subtracting vocab × d_model for each of the embedding and output head that params.active is stated to include (basis inferred, note with the arithmetic). Not disclosed when the scope of params.active is not stated.
- Counted total params
78.1B parameters
Calculated: embedding + output head + all experts + other weights, Aleph-Alpha/Kolibri-1-BF16@cc6d729 safetensors headers; reproduces stated total (backbone) and active (with output head)
Parameters of the text backbone counted from the released checkpoint's safetensors headers (embedding, output head, all experts and other weights; excluding MTP modules, vision/audio towers and n-gram lookup tables). Shown only when the counts reproduce the publisher's stated total and active parameters within 5% under some scope.
- Counted embedding + head
655.4M parameters
Calculated: input embedding + output head, Aleph-Alpha/Kolibri-1-BF16@cc6d729 safetensors headers
Input embedding plus output head (once if tied), counted from the checkpoint.
- Non-emb. params (counted)
77.45B parameters
Calculated: dense + routed backbone weights; excludes input embedding, output head, lookup tables, MTP and other modalities, Aleph-Alpha/Kolibri-1-BF16@cc6d729 safetensors headers; reproduces stated total (backbone) and active (with output head)
Language backbone weights excluding input embeddings, output head, lookup/Engram tables, MTP modules and vision/audio towers. Equals params.counted_total minus params.counted_embedding. Same validation as params.counted_total.
- Largest layer (counted)
1.549B parameters
Calculated: max(sum of dense and routed weights sharing a full layers.<index> tensor path), all experts included, Aleph-Alpha/Kolibri-1-BF16@cc6d729 safetensors headers
Largest group of language-backbone weights sharing a full layers.<index> tensor path, including every routed expert. Excludes lookup/Engram tables, embeddings, output head, MTP and other modalities. Hybrid checkpoints may store mixers and FFNs as separate layers. All-gather volume also depends on wrapping, sharding and dtype.
- Active non-emb. (counted)
3.13B parameters
Calculated: non-expert weights + routed experts × 6/384, excluding embedding and output head, Aleph-Alpha/Kolibri-1-BF16@cc6d729 safetensors headers; reproduces stated total (backbone) and active (with output head)
Active parameters per token excluding the input embedding and output head, counted from the checkpoint as all non-expert weights plus routed-expert weights × top_k / experts. Same validation as params.counted_total.
- Counting scope
Total includes the input embedding, the untied LM head and the per-layer expert-bias buffers (equals BF16 index total_size 156,206,149,120 bytes / 2). Active count excludes the input embedding but includes the LM head. No MTP or vision modules.
Source: paper · PDF p.8; Table 2 caption
Active parameters exclude the embeddings.
What the publisher's counts include or exclude (MTP modules, embeddings, vision encoder, n-gram tables).
Shape
- Layers
50
Source: config · /num_hidden_layers
Number of transformer blocks in the main backbone (attention or token mixer plus FFN), excluding MTP modules.
- d_model
2,560
Source: config · /hidden_size
Residual stream width.
- Vocab
128,000
Source: config · /vocab_size
Embedding table rows (vocab_size in config, may include padding).
- Tied embeddings
No
Source: config · /tie_word_embeddings
Input embedding and output head share weights.
- Tokenizer
UniBPE (bottom-up BPE merges chosen by Unigram loss) for 119,744 merges, then 7,900 standard BPE merges, 256 byte-fallback tokens, digits split, 100 reserved/special tokens; trained on a 100 GB slice of the German/English pre-training mix
Source: paper · PDF p.10; §2.1.2 Tokeniser, Training
The next 120 000 − 256 = 119 744 merges use the UniBPE algorithm, standard BPE performs the next 7900 merges, and we then add 100 reserved and special tokens
Tokenizer type and lineage as described by the publisher (e.g. byte-level BPE shared with an earlier model).
- d_model / layers
51.2
Calculated: d_model / layers
Width-to-depth ratio, d_model divided by the number of blocks.
Attention
- Token mixers
GQA, SWA
Source: paper · PDF p.8; §2.1 Model Architecture
every fifth block uses full attention, and the other blocks use SWA
Token-mixing layer types in the backbone, e.g. GQA, MLA, SWA, Gated DeltaNet, Mamba-2, DSA (DeepSeek sparse attention).
- Layer layout
4 SWA : 1 global
Inferred from the source; see the explanation below.
Source: code · configuration_kolibri1.py; Kolibri1Config.__post_init__
"full_attention" if (i + 1) % 5 == 0 else "sliding_attention" for i in range(self.num_hidden_layers)
Default layer_types; the released config.json /layer_types lists the same pattern: full_attention at layers 4, 9, …, 49 (every fifth block).
Token-mixer order, summarized as a pattern or layer positions. The fact's optional sequence lists each mixer in order; a ratio alone does not establish the order. Auxiliary prediction modules and standalone FFNs are excluded.
- Global-attention layers
10
Source: config · /layer_types | count full_attention
Layers whose KV cache grows with full context (dense or sparse global attention, MLA). Excludes sliding-window and linear/recurrent layers.
- SWA : global
4
Calculated: attn.local_layers / attn.global_layers
attn.local_layers divided by attn.global_layers, the sliding-window to global interleave ratio (5 for '5 SWA : 1 global').
- Sliding-window layers
40
Source: config · /layer_types | count sliding_attention
Layers with a fixed attention window.
- Query heads
48
Source: config · /num_attention_heads
Query heads in the global-attention layers.
- KV heads
4
Source: config · /num_key_value_heads
Key/value heads in the global-attention layers. Not applicable to MLA, whose cache is a shared latent.
- Heads × head dim
6,144
Calculated: heads × head_dim
attn.heads × attn.head_dim, the query projection width of global layers.
- Q heads / KV head
12
Calculated: heads / kv_heads
attn.heads divided by attn.kv_heads in global layers.
- QK head dim
128
Source: config · /head_dim
Query/key dimension per head in global-attention layers (for MLA, nope + rope dims).
- Window
513 tokens
Source: config · /sliding_window
Hugging Face convention, counting the query token: the card states 'Sliding window | 512 preceding tokens plus the current token', and the report selects w = 512.
Sliding-window size of the local layers.
- SWA KV heads
4
Source: config · /num_key_value_heads
KV heads in sliding-window layers (stated even when equal to attn.kv_heads).
- SWA query heads
48
Source: config · /num_attention_heads
Kolibri1Attention uses the same num_attention_heads, num_key_value_heads and head_dim for both layer types; only the mask and RoPE differ.
Query heads in sliding-window layers (stated even when equal to attn.heads).
- SWA QK head dim
128
Source: config · /head_dim
Query/key head dimension in sliding-window layers. Value head dimensions may differ; see attn.local_v_head_dim.
- Positional encoding
RoPE (SWA), NoPE (global)
Source: code · modeling_kolibri1.py; Kolibri1Attention.forward
# We use global NoPE for hybrid attention model
RoPE applied only when the layer is sliding; report §2.1: 'The full-attention blocks use no positional encoding.'
Positional scheme in global layers: RoPE, partial RoPE, NoPE, or mixed per layer type.
- SWA RoPE base
10,000
Source: config · /rope_theta
Applied only in sliding-window layers; the card states 'RoPE, base 10,000, applied only in sliding-window layers'. Full RoPE over head_dim 128.
RoPE base frequency of the sliding-window layers (stated even when equal to attn.rope_theta).
- QK norm
Yes
Source: paper · PDF p.8; §2.1 Model Architecture
Queries and keys are normalised per head with RMS normalisation
Applied before RoPE (q_norm/k_norm over head_dim in Kolibri1Attention).
Queries and keys are normalized per head before the dot product.
- QKV bias
No
Source: config · /attention_bias
Query/key/value projections have bias terms.
Feed-forward
- Activation
SwiGLU
Source: code · modeling_kolibri1.py; Kolibri1Experts.forward
current_hidden_states = self.act_fn(gate) * up
act_fn = ACT2FN[/hidden_act] = silu, for routed and shared experts.
FFN activation (SwiGLU, GeGLU, ...).
- FFN bias
No
Source: code · modeling_kolibri1.py; Kolibri1MLP.__init__
self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False)
FFN projections have bias terms.
Mixture of experts
- Routed experts
384
Source: config · /num_experts
Routed experts per MoE layer.
- Experts per token
6
Source: config · /num_experts_per_tok
Routed experts selected per token.
- Expert dim
512
Source: config · /moe_intermediate_size
Intermediate width of one routed expert.
- Leading dense layers
0
Source: paper · PDF p.18; §2.1.5.3 Leading Dense Layers
Kolibri uses MoE layers in all 50 blocks
Report Appendix B.6: the first two MoE layers make almost no use of their routed experts.
Number of initial blocks that use a dense FFN instead of MoE.
- Router score
sigmoid
Source: code · modeling_kolibri1.py; Kolibri1TopKRouter.forward
router_scores = router_logits.gather(1, router_indices).sigmoid()
FP32 router logits; top-6 selected on logits plus e_score_correction_bias, which affects selection only.
Gating function over expert logits (softmax, sigmoid).
- Load balancing
Exact Quantile Balancing (expert-bias update to the exact global-batch quantile, recentred, no tunable coefficient) + Load-Error Injection into router-score gradients (λ = 1e-5, soft clamp τ = 1); no auxiliary loss
Source: model-card · README.md; Training Details, Pre-training
We additionally injected load-error gradients into the router scores with a weight of 1e-5 and a soft-clamp value of 1.0.
Card: 'The expert-balancing bias was updated separately using a recentered global-quantile target update.' Report §2.1.5 gives the method (Neitemeier et al. 2026).
Load-balancing method, with coefficients where disclosed.
- Renormalize top-k
No
Source: config · /norm_topk_prob
Report §2.1.5: 'The selected scores are not renormalised'.
Selected expert weights are renormalized to sum to 1.
- Expert dim / d_model
0.2
Calculated: moe.expert_dim / d_model
moe.expert_dim divided by shape.d_model.
- Sparsity (experts / top-k)
64
Calculated: experts / top_k
Routed experts divided by experts selected per token.
- Active / total
0.0442694
Calculated: params.active / params.total
params.active divided by params.total.
Multi-token prediction
- MTP depth
0
Inferred from the source; see the explanation below.
Source: model-card · README.md; Training Details, Pre-training
pretrained the model with a causal next-token-prediction objective
No MTP is described in the card or report, and the safetensors index has no tensors beyond layer 49 (model.layers.0–49, lm_head).
Additional future tokens predicted during pretraining (0 when the model was trained without MTP).
Normalization and stability
- Norm
RMSNorm
Source: code · modeling_kolibri1.py; Kolibri1DecoderLayer.__init__
self.input_layernorm = Kolibri1RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
Normalization layer type in the blocks.
- Norm placement
sandwich
Source: paper · PDF p.7; §2.1 Model Architecture
Each block uses sandwich normalisation
RMSNorm before and after both attention and MoE sublayers (post_self_attn_layernorm, post_mlp_layernorm in Kolibri1DecoderLayer); post-sublayer norm scales initialised to 1/√50.
Pre-norm, post-norm, or sandwich (pre and post).
- Norm epsilon
1e-06
Source: config · /rms_norm_eps
Epsilon of the block normalization layers.
Context length
- Pretraining context
16.38K tokens
Source: model-card · README.md; Model Architecture table
| Pretraining sequence length | 16,384 |
Sequence length of the main pretraining stage.
- Trained context
262.1K tokens
Source: model-card · README.md; Intended use
trained on 262,144 tokens in a final long-context phase, which is its native context length
Longest sequence length trained on after context extension.
- Advertised context
1.049M tokens
Source: model-card · README.md; Model overview table
| Context length | `1,048,576 tokens`; we recommend ≤262,144 tokens for serving efficiency and complex tasks |
Extrapolation beyond the trained length without position scaling (NoPE global layers); config /max_position_embeddings = 262,144.
Longest context the publisher says the model supports, possibly beyond trained length via RoPE scaling.
- Extension method
16K (pre-training) → 64K (mid-training) → 256K (long-context stage, 201B tokens); no RoPE base change or scaling, since only SWA layers use RoPE; validated to 1M by extrapolation
Source: model-card · README.md; Intended use
Kolibri was pre-trained on sequences of 16,384 tokens, mid-trained on 65,536 and trained on 262,144 tokens in a final long-context phase
How context was extended (stages, RoPE base change, YaRN factor).
Pretraining recipe
- Pretraining tokens
24T tokens
Source: paper · PDF p.1; Abstract
We train Kolibri on 24T tokens across pre-training, mid-training, and long-context extension
Card breakdown: 20T pre-training + 3.44T mid-training + 201B long-context (23.64T).
Tokens seen in pretraining including annealing and context extension, as reported.
- Optimizer
Muon (Nesterov, momentum 0.95, spectral scaling) for attention and expert weights; AdamW for LM head and router; Adam for token embedding and norm scales
Source: paper · PDF p.19; §2.2 Optimisation
We optimise attention and expert weights with Muon (Jordan et al. 2024), embedding weights and norm scales with Adam (Kingma and Ba 2015), and LM head and router weights with AdamW
Optimizer used for the bulk of parameters.
- Peak LR
0.001
Source: model-card · README.md; Training Details, Pre-training
Nesterov Muon using a learning rate of 0.001
Muon groups. Report Table 6: AdamW (LM head, router) 2.5e-5, Adam (embedding, norm scales) 2e-3.
Peak learning rate of the main pretraining stage.
- Final LR
0.001
Inferred from the source; see the explanation below.
Source: paper · PDF p.18; §2.2 Optimisation
The learning rate warms up linearly over the first 100B tokens and then stays constant through pre-training, mid-training
No decay: the learning rate stays at the peak through mid-training and long-context training ('continues training at the same learning rate', §2.3.3); checkpoint merging replaces the decay.
Learning rate at the end of the decay.
- LR schedule
Warmup-Stable-Merge: linear warmup over ~100B tokens (1,325 steps), then constant through pre-training, mid-training and long-context training; no decay, final weights are a checkpoint average
Source: paper · PDF p.18; §2.2 Optimisation
Kolibri is trained with a Warmup-Stable-Merge (WSM) recipe
Learning-rate schedule shape with phase boundaries.
- Warmup
1,325 steps (~100B tokens)
Source: model-card · README.md; Training Details, Pre-training
We linearly warmed up the learning rate over approximately 100 billion tokens, corresponding to 1,325 optimization steps
Warmup length in steps or tokens.
- Batch schedule / notes
4,608 × 16,384 (75.5M tokens); mid-training 1,536 × 65,536 (100.7M); long-context 768 × 262,144 (201.3M)
Source: model-card · README.md; Training Details, Pre-training
We used a global batch size of 4,608 sequences, corresponding to 75.497 million tokens per step, with two gradient-accumulation steps across 768 GPUs.
Global batch size, including any batch-size ramp: sequences × sequence length (token total), or the token total alone when only that is stated.
- Batch size (tokens)
75.5M tokens
Inferred from the source; see the explanation below.
Source: model-card · README.md; Training Details, Pre-training
We used a global batch size of 4,608 sequences, corresponding to 75.497 million tokens per step
4,608 sequences × 16,384 tokens.
Global batch size in tokens during the main pretraining stage, after any ramp (sequences × sequence length when stated in sequences, marked inferred).
- Weight decay
0.000244141
Source: model-card · README.md; Training Details, Pre-training
We applied independent weight decay of 2⁻¹², approximately 0.0002441, to all decay-eligible parameters.
2^-12, independent of the learning rate (weights multiplied by 1 − 2^-12 each step, report Table 6); embedding, norm scales and expert-balancing biases excluded.
Decoupled weight decay coefficient.
- Adam betas
(0.9, 0.95)
Source: paper · PDF p.19; Table 6 caption
Adam and AdamW use β1 = 0.9, β2 = 0.95
ε = 1e-15. Muon uses Nesterov momentum 0.95.
(beta1, beta2) of the Adam-family optimizer or its AdamW fallback.
- Grad clip
1
Source: model-card · README.md; Training Details, Pre-training
with bfloat16 parameters, float32 reductions, and a maximum gradient norm of 1.0
Global gradient-norm clipping threshold.
- Training precision
BF16 (bfloat16 parameters, FP32 reductions)
Source: model-card · README.md; Training Details, Pre-training
with bfloat16 parameters, float32 reductions, and a maximum gradient norm of 1.0
Matmul precision of pretraining (BF16, FP8 recipe, NVFP4 recipe) with the scaling granularity where disclosed. Never inferred from the released checkpoint dtype.
- Initialization
Truncated normal (±3σ): Q/K/V and expert up/gate std 1/√d_in, router std 1/d_in, token embedding std 1; attention output, expert down and LM head zero; norm scales 1, post-sublayer norm scales 1/√L; expert biases 0
Source: paper · PDF p.21; §2.2.1.2 and Table 6
The attention output and expert down projections also start at zero, so that every block starts as the identity map
Weight initialization (std or scheme) as stated by the publisher; config initializer_range alone is not evidence.
- Extra objectives
next-token prediction only, on packed 16,384-token sequences
Source: model-card · README.md; Training Details, Pre-training
Training examples consisted of 16,384-token sequences, with multiple documents potentially packed into a single sequence.
Objectives beyond next-token prediction and MTP (fill-in-the-middle rate, distillation, multimodal tokens from the start).
- Data mix
20T-token German/English corpus (~62.5% English, ~23.9% German, ~13.6% code): curated Common Crawl, ~24% synthetic (rephrases with Gemma-4-26B-A4B and Mistral-NeMo-12B, translations), STEM, instruction and specialised legal/public-sector data; drawn from a 29.3T-token pool
Source: model-card · README.md; Model overview table, Training Data
Trained on 20T tokens of a filtered, bilingual corpus (~62.5% English, ~23.9% German, ~13.6% code)
The report (§2.3.2) gives German as 21.3% of the final pre-training tokens and 4.8T (~24%) synthetic tokens; the card domain table sums German web 23.4% + German instruction 0.5%.
Pretraining data composition as disclosed (domain shares, synthetic fraction, repetition).
- Data cutoff
2026-06-18
Source: model-card · README.md; Model overview table
| Knowledge cutoff | EN: June 18, 2026, DE: June 18, 2026
Stated as the knowledge cutoff of the released model, for both languages.
Pretraining data cutoff date.
- Hardware
768 NVIDIA B200 (96 HGX 8×B200 nodes, InfiniBand); pre-training 21 days (511 h, 392k GPU-hours); mid-training 5 days (90k GPU-hours); long-context 13 h (10k GPU-hours)
Source: model-card · README.md; Model overview table, Computing Resources
Hardware: 768 NVIDIA B200 (96 HGX 8xB200 nodes); Parallelism: EP8 FSDP16 DP6; Time: 21 days (511h, 392k GPUh)
Accelerators used for pretraining, count and duration where stated.
- Accelerators
768 B200
Source: paper · PDF p.18; §2.1.6 Infrastructure
Pre-training ran on 768 NVIDIA B200 GPUs, across 96 nodes with 8 GPUs per node.
Accelerator count and type for the main pretraining run, as the count with thousands separators and the chip's short name ("2,048 H800", "2,048 GH200"). A stated range or bound stays as stated ("2,048–4,096 GH200").
- Parallelism
EP8 · FSDP16 · DP6
Source: paper · PDF p.18; §2.1.6 Infrastructure
Our parallelism setup for pre-training is EP 8, FSDP 16, DP 6.
Mid-training and long-context use FSDP128 · DP6. TorchTitan-based stack, DeepEP v2, FlashAttention 4.
Parallelism layout of the main pretraining run as stated, as degree-annotated terms in the order TP, PP, VPP, EP, CP, DP ("PP16 · EP64 · ZeRO-1 DP"); a term without a stated degree has none ("FSDP").
- Compute
6.4e23 FLOPs; 392k GPU-hours pre-training + 90k mid-training + 10k long-context
Source: model-card · README.md; Model overview table, Computing Resources
FLOPS: **6.4e23**
Pretraining compute as stated (GPU-hours or FLOPs).
- Checkpoint averaging
uniform average of the last 20 long-context checkpoints, 10B tokens apart
Source: paper · PDF p.19; §2.2 Optimisation
We then determine the base model weights as the average of the last 20 checkpoints of the long-context stage
EMA or checkpoint merging applied to produce the released base weights.
- Stages
pre-training
- Tokens
- 20000000000000
- Seq len
- 16384
- Lr
- 0.001
- Batch sequences
- 4608
- Batch tokens
- 75497472
- Steps
- 264750
Source: model-card · README.md; Training Details, Pre-training
The pretraining phase covered 20T tokens over 264,750 optimization steps.
Muon LR after 1,325 warmup steps; batch_tokens is 4,608 × 16,384 (card: 75.497 million).
mid-training
- Tokens
- 3440000000000
- Seq len
- 65536
- Lr
- 0.001
- Batch sequences
- 1536
- Batch tokens
- 100663296
- Steps
- 34200
Source: model-card · README.md; Training Details, Pre-training
Its 3.44 trillion token budget corresponds to 34,200 optimization steps.
Higher-quality reasoning, math, code and instruction data; resumes the optimizer state with no warmup, same constant LR. batch_tokens is 1,536 × 65,536 (card: 100.663 million).
long-context
- Tokens
- 201000000000
- Seq len
- 262144
- Lr
- 0.001
- Batch sequences
- 768
- Batch tokens
- 201326592
- Steps
- 1000
Source: model-card · README.md; Training Details, Pre-training
Its 201-billion-token budget corresponds to 1000 optimization steps, again without additional warmup.
One third OCR'd PDFs plus length-reweighted mid-training data; no warmup, same constant LR; base weights are the average of its last 20 checkpoints. batch_tokens is 768 × 262,144 (card: 201.327 million).
Source: model-card · README.md; Training Details, Pre-training
Ordered pretraining stages. Each item: name, tokens, seq_len, lr, batch_tokens, batch_sequences, steps, note, quote, and source when it differs from the fact's source.
Scaling & HP transfer
- Parametrization
μP width transfer with spectral Muon (update scaled by √(d_out/d_in)); LM head and router LR ∝ 1/d; LM head zero-initialised
Source: paper · PDF p.20; §2.2.1
For the width transfer we use Maximal Update Parametrisation (µP)
Width/depth parametrization used to transfer hyperparameters: SP (standard), μP, CompleteP, u-μP, depth-μP, with the multipliers that differ from SP. Only when stated.
- HP selection rule
Muon LR × batch grid (5e-4 to 8e-3; 4,608 or 6,912 sequences) on a half-width proxy (width 1280) trained 500B tokens, loss extrapolated to 20T with a power law in cumulative LR; picked LR 1e-3, batch 4,608; weight decay by the same extrapolation (2^-12 over 2^-13, 2^-14); fixed LR ratios across parameter groups
Source: paper · PDF p.22; §2.2.1.3 Transfer Across Token Horizon
The prediction at 20T tokens is visualised in Figure 10b, with an optimal Muon learning rate of 1 × 10−3 and a batch size of 4608 sequences of 16k tokens each.
How peak LR, batch size or other hyperparameters were chosen for the released run (fitted scaling law with its formula, μP transfer from a proxy width, sweep), as stated.
- Scaling ladder
MoE proxies M (7.8B total / 0.6B active, 97.6B tokens) and L (30.6B / 2.1B, 327.6B tokens) at 50 layers; 0.65B-active / 11.9B proxy pre-trained 2.79T tokens for mid-training mixes; thousands of 30M dense proxies (3B tokens) for the pre-training mix
Source: paper · PDF p.9; §2.1.1 Ablation Methodology
The proxy at scale M has 0.6B active out of 7.8B total parameters trained on 97.6B tokens.
Smaller models trained to choose the architecture or recipe (sizes, token budgets), as disclosed.
- Tokens / param
307.286
Calculated: train.tokens / params.total
train.tokens divided by params.total.
- Tokens / active param (non-embedding)
7,668
Calculated: train.tokens / params.counted_active_non_embedding
train.tokens divided by params.counted_active_non_embedding, or by the stated params.active_non_embedding when there is no validated checkpoint count.
KV cache
- KV bytes / token
20,801 bytes
Calculated: kv.bytes_at_context / 131072 tokens; uniform BF16, payload only; quantization overhead excluded. Global KV: 10 × (1024 × 16/8) B/entry; SWA KV: 40 × (1024 × 16/8) B/entry
Retained KV cache divided by context length, including bounded SWA caches and indexer keys. Exports use uniform BF16 at 131,072 tokens. The website can select uniform payload precision (no quantization overhead) or sourced component formats (including scales and documented padding). This is cache payload, not peak prefill memory or persistent prefix storage.
- Global KV bytes / token
20,480 bytes
Calculated: 20480 B / 1 tokens (Global KV); uniform BF16, payload only; quantization overhead excluded. Global KV: 10 × (1024 × 16/8) B/entry; SWA KV: 40 × (1024 × 16/8) B/entry
Long-context global KV bytes per token, including indexer keys; excludes bounded SWA caches. Compression rates and cross-layer cache reuse are included. Exports use uniform BF16; the website's storage selector also applies here. This is the field to compare with global-KV figures in reports, using the matching storage recipe.
- KV bytes / token / B active
6,016 bytes
Calculated: kv.bytes_per_token (131072 tokens) / (params.active / 1e9); uniform BF16, payload only; quantization overhead excluded. Global KV: 10 × (1024 × 16/8) B/entry; SWA KV: 40 × (1024 × 16/8) B/entry
kv.bytes_per_token divided by active parameters in billions (131,072 tokens in exports).
- KV at context / B active
788,524,039 bytes
Calculated: kv.bytes_at_context (131072 tokens) / (params.active / 1e9); uniform BF16, payload only; quantization overhead excluded. Global KV: 10 × (1024 × 16/8) B/entry; SWA KV: 40 × (1024 × 16/8) B/entry
kv.bytes_at_context divided by active parameters in billions (131,072 tokens in exports).
- KV at context
2,726,379,520 bytes
Calculated: 20480 B × 131072 (Global KV) + 81920 B × min(131072, 513) (SWA KV); uniform BF16, payload only; quantization overhead excluded. Global KV: 10 × (1024 × 16/8) B/entry; SWA KV: 40 × (1024 × 16/8) B/entry
Retained KV cache for one sequence at the selected context, including SWA windows and indexer keys. Exports use uniform BF16 at 131,072 tokens. Excludes recurrent state, compressor tail state, draft/MTP caches, temporary prefill tensors, allocator metadata and persistent prefix snapshots. Does not estimate peak prefill or total serving memory.