archdb

LLM architectures and pretraining recipes, with sources.

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.

Shared experts

1

Source: model-card · README.md; Model Architecture table
| Shared experts per MoE layer | 1 |

Always-on experts per MoE layer.

Expert dim

512

Source: config · /moe_intermediate_size

Intermediate width of one routed expert.

Shared expert dim

512

Source: config · /shared_expert_intermediate_size

Total intermediate width of the shared expert(s).

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.

All models · Link to this model