NeoLLM / README.md
KitsuVp's picture
Upload README.md with huggingface_hub
8c90b6e verified
|
Raw History Blame
31 kB
---
language: en
license: apache-2.0
tags:
- causal-lm
- research
- bf16
- attention
- normalization
- neollm
datasets:
- HuggingFaceFW/fineweb-edu
---
# NeoLLM
NeoLLM is a **85.09 M parameter** decoder-only language model trained from scratch on
[FineWeb-Edu](https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu) with
**BF16** compute, completing training in approximately
**~0h 47m** on **NVIDIA RTX PRO 6000 Blackwell Server Edition**.
It integrates a collection of recently published attention and normalization techniques
into a single architecture, with the goal of studying how they interact during
pretraining. The model is actively being developed and the current checkpoint represents
an intermediate training state.
> **Author / contact:** [@Kyokopom](https://x.com/Kyokopom) on X
> **Repository:** [KitsuVp/NeoLLM](https://huggingface.co/KitsuVp/NeoLLM)
---
## Architecture
NeoLLM is a decoder-only transformer with the following configuration:
| Parameter | Value |
|---|---|
| Hidden size | 512 |
| Layers | 12 |
| Attention heads | 8 |
| KV heads (GQA) | 4 |
| Head dim | 64 |
| Intermediate size | 1536 |
| Vocabulary | LiquidAI/LFM2.5-1.2B-Thinking tokenizer (64,402 tokens) |
| Context length | 512 tokens |
| Leviathan | enabled=True; d_seed=128, modes=8, knots=16 |
| JTok / JTok-M | enabled=False / False; Torch continuous surfaces, experts=5, top_k=2 |
| DAGFormer | enabled=False; {'predictor_dim': 256, 'predictor_layers': 2, 'predictor_heads': 4, 'local_dim': 128, 'input_source': 'tokens'} |
| Virtual Head Attention | enabled=False; query/KV heads follow the configured geometry |
| Copy-Paste LM | enabled=True; causal vocabulary/pointer mixture |
### Parameter breakdown
| Parameter bucket | Count |
|---|---|
| **Total parameters** | 85.09M (85,093,304) |
| **Embedding parameters** (tied) | 32.97M (32,973,824) |
| **Non-embedding parameters** | 52.12M (52,119,480) |
| **Effective trainable parameters** | 85.09M (85,093,304) |
> Weight tying is **enabled**: the input embedding matrix and the language-model head
> share the same parameters, so the effective trainable budget is
> `total − embed = 52.12M`.
### Integrated techniques
NeoLLM combines architecture modules, optional auxiliary objectives, and
training-time optimizer/stability components from the following papers.
**Embedding and token representation**
- **Learnable Multipliers** ([arXiv:2601.04890](https://arxiv.org/abs/2601.04890)) — Adds
per-row and per-column learnable scalar parameters to selected matrix layers and, when
enabled, embeddings.
- **Leviathan** ([arXiv:2601.22040](https://arxiv.org/abs/2601.22040)) — Optional
continuous token embedding generator that can replace the discrete input lookup table.
- **Leviathan-JTok / JTok-M** ([arXiv:2602.00800](https://arxiv.org/abs/2602.00800)) —
Optional continuous adaptation of JTok over the shared Leviathan coordinate. JTok
applies one normalized surface as a multiplicative MLP gate; JTok-M routes a
Sigmoid+TopK mixture of continuous surfaces and adds the paper's depth-scaled
residual. Runtime ``jtok_kernel_backend`` selects the PyTorch reference or the
CCE Triton adapter; the JTok surfaces remain outside MXFP8 conversion.
- **KHRONOS** ([arXiv:2505.13315](https://arxiv.org/abs/2505.13315)) — Kernel/basis
reference used by the Leviathan continuous token generator implementation.
- **Spelling Bee Embeddings** ([arXiv:2601.18030](https://arxiv.org/abs/2601.18030)) —
Augments token embeddings with character-level spelling information.
- **Token Embedding Manifold analysis** ([arXiv:2504.01002](https://arxiv.org/abs/2504.01002)) —
Reference motivation for treating token embeddings as structured objects rather than
unconstrained lookup rows.
**Attention, positions, and output projection**
- **Virtual Head Attention** ([arXiv:2610.17959](https://arxiv.org/abs/2610.17959)) — Optional
group-specific query premix and low-rank head postmix. NeoLLM shares its gated query
projection across corresponding head slots in KV groups and applies postmix after the gate; inference weights are
not automatically folded into standard GQA projections.
- **Copy-Paste LM** ([arXiv:2610.19247](https://arxiv.org/abs/2610.19247)) — Optional
causal pointer and sink mixed with the vocabulary distribution. CUDA training
uses CCE's sparse Copy-Paste kernels; inference returns dense mixed logits.
- **FAN** ([arXiv:2502.21309](https://arxiv.org/abs/2502.21309)) — Fourier Analysis Networks.
A portion of the projection channels are dedicated to periodic cosine/sine features.
- **MEA** ([arXiv:2601.19611](https://arxiv.org/abs/2601.19611)) — Explicit Multi-head
Attention. Adds small learnable interaction matrices between attention heads for K and V.
- **LUCID** ([arXiv:2602.10410](https://arxiv.org/abs/2602.10410)) — Applies a learned
lower-triangular preconditioner to V before attention, decorrelating value representations
across positions.
- **Affine-Scaled Attention** ([arXiv:2602.23057](https://arxiv.org/abs/2602.23057)) — Adds
two learnable per-head scalars (α and β) to the softmax weights:
`[α·softmax(QKᵀ) + β]·V`.
- **XSA** ([arXiv:2603.09078](https://arxiv.org/abs/2603.09078)) — Exclusive Self Attention.
After computing attention, removes the component of the output aligned with the token's
own value vector.
- **Directional Routing** ([arXiv:2603.14923](https://arxiv.org/abs/2603.14923)) — Each head
learns K=4 directions in the output space; a learned router suppresses the attention output
along each direction per input.
- **Gated Attention** ([arXiv:2505.06708](https://arxiv.org/abs/2505.06708)) — A sigmoid gate
is applied to the attention output before the output projection, introducing non-linearity
and preventing attention sinks.
- **Momentum Attention** ([arXiv:2411.03884](https://arxiv.org/abs/2411.03884)) — Modifies Q
and K by subtracting a fraction of the previous position's Q and K values (causal
first-difference).
- **Interleaved Head Attention / IHA** ([arXiv:2602.21371](https://arxiv.org/abs/2602.21371)) —
Builds pseudo-heads from learned cross-head mixtures to create multiple attention patterns
per original head.
- **REPO** ([arXiv:2512.14391](https://arxiv.org/abs/2512.14391)) — Context re-positioning
module that learns contextual position coordinates above a configurable start layer.
- **GRAPE** ([arXiv:2512.07805](https://arxiv.org/abs/2512.07805)) — Group representational
position encoding used by the REPO-GRAPE positional path.
- **GOAT priors** ([arXiv:2601.15380](https://arxiv.org/abs/2601.15380)) — Optional
factorized attention log-prior channels inspired by trainable attention priors.
- **Hadamard output projection** ([arXiv:2603.08343](https://arxiv.org/abs/2603.08343)) —
Replaces dense attention output projection with a structured Hadamard transform plus
lightweight scaling.
**Normalization, residual flow, and MLP**
- **SeeDNorm** ([arXiv:2510.22777](https://arxiv.org/abs/2510.22777)) — Applied to Q and K
projections. Dynamically rescales normalization from the input's own statistics.
- **LayerNorm Scaling / LNS** ([arXiv:2502.05795](https://arxiv.org/abs/2502.05795)) — Each
layer's output is scaled by 1/√ℓ where ℓ is the layer index.
- **GPAS** ([arXiv:2506.22049](https://arxiv.org/abs/2506.22049)) — Gradient-Preserving
Activation Scaling for residual junctions.
- **PolyNorm** ([arXiv:2602.04902](https://arxiv.org/abs/2602.04902)) — Replaces the standard
MLP activation with normalized linear, quadratic, and cubic branches.
- **SimpleGPT** ([arXiv:2602.01212](https://arxiv.org/abs/2602.01212)) — Second-order
geometry-inspired normalization strategy applied inside MLP projections.
- **StackMemory / STACKTRANS** ([NeurIPS 2025](https://openreview.net/forum?id=2bbDg587uh)) —
Optional differentiable hidden-state stack between decoder layers.
- **Attention Residuals / AttnRes** ([arXiv:2603.15031](https://arxiv.org/abs/2603.15031)) —
Optional learned depth-wise aggregation over previous layer outputs or block summaries.
- **LAUREL** ([arXiv:2411.07501](https://arxiv.org/abs/2411.07501)) — Optional learned
augmented residual layer with residual-weight and low-rank variants.
**Training objectives and training-time regularizers**
- **Cut Cross Entropy** ([Apple repository](https://github.com/apple/ml-cross-entropy)) —
Memory-efficient next-token loss that avoids materializing the full token-by-vocabulary
logits tensor. NeoLLM remains compatible with the upstream package when the extensions
below are disabled.
- **MiLe Loss** ([arXiv:2310.19531](https://arxiv.org/abs/2310.19531)) — Optional detached,
mean-normalized predictive-entropy weighting of token losses, implemented inside the
extended CCE path.
- **Output Embedding Centering / mu-loss**
([arXiv:2601.02031](https://arxiv.org/abs/2601.02031)) — Optional
`lambda * ||mean(output_embeddings)||^2` regularizer for output-logit stability.
- **MEAP** ([arXiv:2502.07490](https://arxiv.org/abs/2502.07490)) — Optional training-only
input corruption that masks a fixed fraction of eligible tokens while preserving clean
next-token labels, causal attention, and the inference path.
- **TWEO** ([arXiv:2511.23225](https://arxiv.org/abs/2511.23225)) — Optional
Transformers Without Extreme Outliers activation regularizer for FP8/low-bit-friendly
training.
- **NITP** ([arXiv:2605.24956](https://arxiv.org/abs/2605.24956)) — Optional Next Implicit
Token Prediction auxiliary objective using shallow-layer implicit token targets and a
cosine loss.
- **NextLat** ([arXiv:2511.05963](https://arxiv.org/abs/2511.05963)) — Optional next-latent
prediction objective using latent dynamics, Smooth L1 supervision, and frozen-head KL.
### Optional extended-CCE configuration
| Feature | Enabled | Value |
|---|---:|---:|
| MiLe Loss | True | gamma=1.0 |
| mu-loss | True | lambda=0.0001 |
| MEAP | True | ratio=0.15 |
Copy-Paste uses CCE sparse mixture statistics for CUDA training and computes mu-loss in Torch. MEAP and patch training also use the extended cut-cross-entropy package.
[`Kitsunp/ml-cross-entropy`](https://github.com/Kitsunp/ml-cross-entropy) supplies the extended kernels.
Copy-Paste exposes three compact
scalars: unweighted NTP cross entropy, the MiLe reweighting delta, and the mu-loss penalty.
Their sum reconstructs `ntp_loss` exactly. MEAP reports its eligible and selected counts from
the masking kernel; the trainer logs the selected count and exact fraction. Copy-Paste diagnostics use sparse source-token candidates and CCE vocabulary reductions.
**Optimizer and training stability**
- **Adam-family optimizer mode** — Active variant: **AdEMAMix**.
**AdEMAMix** ([arXiv:2409.03137](https://arxiv.org/abs/2409.03137)) contributes the optional
beta3 slow-memory branch when `ADEMAMIX=True`. **DeltaMomentum**
([arXiv:2608.19491](https://arxiv.org/abs/2608.19491)) optionally replaces only the fast beta1
first-moment update on hidden Linear weights when `DELTA=True`; beta2 remains Adam's
ordinary squared-gradient EMA in every mode.
- **BF16 stochastic rounding** ([arXiv:2502.20566](https://arxiv.org/abs/2502.20566)) —
Optional master-free BF16 model update with stochastic rather than nearest rounding; the same
write-back path is shared by AdamW, DeltaAdamW, AdEMAMix, and DeltaAdEMAMix.
- **Cautious Weight Decay** ([arXiv:2510.12402](https://arxiv.org/abs/2510.12402)) —
Sign-selective weight decay variant used by the custom optimizer logic.
- **Correction of Decoupled Weight Decay** ([arXiv:2512.08217](https://arxiv.org/abs/2512.08217)) —
Adapts decoupled weight decay during learning-rate decay.
- **AdamHD** ([arXiv:2511.14721](https://arxiv.org/abs/2511.14721)) —
Decoupled Huber decay regularization reference used by the optimizer.
- **Gradient conditioning** — CAST active; history-adaptive spectral/norm policies by optimizer group; 15625 committed updates.
References: [CAST](https://arxiv.org/abs/2610.19761),
[GradientStabilizer](https://arxiv.org/abs/2502.17055).
---
## Training
| Setting | Value |
|---|---|
| Dataset | FineWeb-Edu (sample-10BT) |
| Tokens seen | ~0.51B (15,625 steps × batch 64 × length 512) |
| Precision | BF16 model state (bfloat16: 85,091,128 elements, float32: 2,176 elements) + AdEMAMix FP32 master active; stochastic rounding disabled |
| Optimizer | AdEMAMix |
| Gradient transform | CAST active; history-adaptive spectral/norm policies by optimizer group; 15625 committed updates |
| Learning rate | 1e-03 with 4,000-step linear warmup |
| Weight decay | coefficients [0.005, 0.01, 0.1]; WD 5/5 groups; CWD 2; Huber 0; Correction 0 |
| Training time | ~0h 47m |
| Hardware | NVIDIA RTX PRO 6000 Blackwell Server Edition |
### Training curve — total objective
Total includes MiLe when enabled, plus all active auxiliary objectives and regularizers. Without MiLe means model total minus its MiLe delta on the same forward; this is not a separate training run without MiLe.
| Step | Train total | Val total | Train without MiLe | Val without MiLe |
|---|---|---|---|---|
| 1 | 12.2845 | — | 12.2845 | — |
| 250 | 7.51328 | — | 7.50593 | — |
| 500 | 7.37632 | — | 7.36168 | — |
| 750 | 7.33534 | — | 7.31743 | — |
| 1,000 | 7.2956 | — | 7.27509 | — |
| 1,250 | 7.25757 | — | 7.2354 | — |
| 1,500 | 7.22776 | — | 7.20332 | — |
| 1,750 | 7.18971 | — | 7.16376 | — |
| 2,000 | 7.16679 | — | 7.13879 | — |
| 2,250 | 7.15075 | — | 7.12142 | — |
| 2,500 | 7.1182 | — | 7.08786 | — |
| 2,750 | 7.09542 | — | 7.064 | — |
| 3,000 | 7.07595 | — | 7.0437 | — |
| 3,250 | 7.05828 | — | 7.02471 | — |
| 3,500 | 7.04374 | — | 7.00896 | — |
| 3,750 | 7.03011 | — | 6.99452 | — |
| 4,000 | 7.01765 | — | 6.98176 | — |
| 4,250 | 7.00604 | — | 6.96907 | — |
| 4,500 | 6.99175 | — | 6.95386 | — |
| 4,750 | 6.97323 | — | 6.93439 | — |
| 5,000 | 6.95435 | 7.03772 | 6.91428 | 6.97998 |
| 5,250 | 6.94098 | — | 6.90037 | — |
| 5,500 | 6.9301 | — | 6.88864 | — |
| 5,750 | 6.91726 | — | 6.87426 | — |
| 6,000 | 6.905 | — | 6.86125 | — |
| 6,250 | 6.89508 | — | 6.85136 | — |
| 6,500 | 6.8811 | — | 6.8378 | — |
| 6,750 | 6.87753 | — | 6.8327 | — |
| 7,000 | 6.86382 | — | 6.81881 | — |
| 7,250 | 6.85904 | — | 6.81314 | — |
| 7,500 | 6.85565 | — | 6.8089 | — |
| 7,750 | 6.84594 | — | 6.79925 | — |
| 8,000 | 6.8399 | — | 6.79186 | — |
| 8,250 | 6.8271 | — | 6.77829 | — |
| 8,500 | 6.82443 | — | 6.77634 | — |
| 8,750 | 6.8251 | — | 6.77586 | — |
| 9,000 | 6.81961 | — | 6.77061 | — |
| 9,250 | 6.80826 | — | 6.75788 | — |
| 9,500 | 6.80517 | — | 6.75465 | — |
| 9,750 | 6.805 | — | 6.7549 | — |
| 10,000 | 6.79291 | 6.90652 | 6.74131 | 6.83695 |
| 10,250 | 6.79435 | — | 6.74302 | — |
| 10,500 | 6.57804 | — | 6.46818 | — |
| 10,750 | 5.64887 | — | 5.30678 | — |
| 11,000 | 5.50961 | — | 5.1322 | — |
| 11,250 | 5.44243 | — | 5.04573 | — |
| 11,500 | 5.39135 | — | 4.97991 | — |
| 11,750 | 5.3537 | — | 4.93408 | — |
| 12,000 | 5.32865 | — | 4.90204 | — |
| 12,250 | 5.29837 | — | 4.86656 | — |
| 12,500 | 5.26806 | — | 4.83252 | — |
| 12,750 | 5.25518 | — | 4.81263 | — |
| 13,000 | 5.22838 | — | 4.78307 | — |
| 13,250 | 5.2163 | — | 4.7663 | — |
| 13,500 | 5.1947 | — | 4.74032 | — |
| 13,750 | 5.19089 | — | 4.73445 | — |
| 14,000 | 5.16889 | — | 4.71043 | — |
| 14,250 | 5.1559 | — | 4.69624 | — |
| 14,500 | 5.14548 | — | 4.68216 | — |
| 14,750 | 5.13203 | — | 4.66433 | — |
| 15,000 | 5.13145 | 4.7568 | 4.66355 | 4.18981 |
| 15,250 | 5.11204 | — | 4.64183 | — |
| 15,500 | 5.10473 | — | 4.63283 | — |
| 15,625 | 5.09438 | 4.7291 | 4.62103 | 4.15709 |
### Cross-entropy with and without MiLe
CE without MiLe is unweighted CE; CE with MiLe adds the reweighting delta. Both exclude mu and auxiliary terms. `ntp_loss` includes mu when enabled.
| Step | Train CE without MiLe | Val CE without MiLe | Train CE with MiLe | Val CE with MiLe |
|---|---|---|---|---|
| 1 | 11.2377 | — | 11.2377 | — |
| 250 | 7.33083 | — | 7.33818 | — |
| 500 | 7.01992 | — | 7.03457 | — |
| 750 | 6.9117 | — | 6.92962 | — |
| 1,000 | 6.84122 | — | 6.86173 | — |
| 1,250 | 6.78967 | — | 6.81184 | — |
| 1,500 | 6.75051 | — | 6.77496 | — |
| 1,750 | 6.71397 | — | 6.73992 | — |
| 2,000 | 6.68534 | — | 6.71334 | — |
| 2,250 | 6.66963 | — | 6.69896 | — |
| 2,500 | 6.64192 | — | 6.67227 | — |
| 2,750 | 6.621 | — | 6.65242 | — |
| 3,000 | 6.60442 | — | 6.63668 | — |
| 3,250 | 6.59009 | — | 6.62366 | — |
| 3,500 | 6.5758 | — | 6.61058 | — |
| 3,750 | 6.55762 | — | 6.59321 | — |
| 4,000 | 6.54081 | — | 6.5767 | — |
| 4,250 | 6.52894 | — | 6.56591 | — |
| 4,500 | 6.51391 | — | 6.5518 | — |
| 4,750 | 6.49645 | — | 6.53529 | — |
| 5,000 | 6.4769 | 6.35905 | 6.51696 | 6.41679 |
| 5,250 | 6.46543 | — | 6.50604 | — |
| 5,500 | 6.45592 | — | 6.49738 | — |
| 5,750 | 6.441 | — | 6.484 | — |
| 6,000 | 6.43025 | — | 6.474 | — |
| 6,250 | 6.42147 | — | 6.4652 | — |
| 6,500 | 6.40953 | — | 6.45284 | — |
| 6,750 | 6.40453 | — | 6.44936 | — |
| 7,000 | 6.39054 | — | 6.43555 | — |
| 7,250 | 6.38482 | — | 6.43072 | — |
| 7,500 | 6.3804 | — | 6.42715 | — |
| 7,750 | 6.36999 | — | 6.41668 | — |
| 8,000 | 6.36302 | — | 6.41106 | — |
| 8,250 | 6.35259 | — | 6.4014 | — |
| 8,500 | 6.35024 | — | 6.39833 | — |
| 8,750 | 6.34786 | — | 6.3971 | — |
| 9,000 | 6.34222 | — | 6.39122 | — |
| 9,250 | 6.32834 | — | 6.37873 | — |
| 9,500 | 6.32368 | — | 6.37419 | — |
| 9,750 | 6.32497 | — | 6.37507 | — |
| 10,000 | 6.31065 | 6.20464 | 6.36225 | 6.27421 |
| 10,250 | 6.31157 | — | 6.3629 | — |
| 10,500 | 6.01485 | — | 6.12471 | — |
| 10,750 | 4.89594 | — | 5.23804 | — |
| 11,000 | 4.72479 | — | 5.1022 | — |
| 11,250 | 4.63385 | — | 5.03055 | — |
| 11,500 | 4.56533 | — | 4.97677 | — |
| 11,750 | 4.5158 | — | 4.93542 | — |
| 12,000 | 4.48125 | — | 4.90787 | — |
| 12,250 | 4.44365 | — | 4.87546 | — |
| 12,500 | 4.40877 | — | 4.84431 | — |
| 12,750 | 4.38846 | — | 4.83101 | — |
| 13,000 | 4.35794 | — | 4.80324 | — |
| 13,250 | 4.33989 | — | 4.78989 | — |
| 13,500 | 4.31309 | — | 4.76746 | — |
| 13,750 | 4.30621 | — | 4.76265 | — |
| 14,000 | 4.28204 | — | 4.7405 | — |
| 14,250 | 4.26676 | — | 4.72641 | — |
| 14,500 | 4.2524 | — | 4.71572 | — |
| 14,750 | 4.23404 | — | 4.70174 | — |
| 15,000 | 4.23243 | 3.78875 | 4.70032 | 4.35574 |
| 15,250 | 4.21065 | — | 4.68087 | — |
| 15,500 | 4.20151 | — | 4.67341 | — |
| 15,625 | 4.18959 | 3.75747 | 4.66293 | 4.32948 |
### Observed loss components — weighted contributions
Only contributions actually added to the objective are shown; raw values and subcomponents remain in training metrics. `regularization_loss` is the subtotal of mu, weighted TWeo, JTok-M and StackMemory entropy, excluding NITP/NextLat; do not add it again to those components. JTok-M auxiliary loss is training-only.
| Step | Phase | mu | TWeo | NITP | Reg. subtotal |
|---|---|---|---|---|---|
| 1 | train | 3.16275e-10 | 8.85299e-07 | 1.0468 | 8.85615e-07 |
| 250 | train | 4.01168e-06 | 0.00101028 | 0.174095 | 0.00101429 |
| 500 | train | 8.93938e-06 | 0.000425533 | 0.341321 | 0.000434472 |
| 750 | train | 1.49341e-05 | 0.000574217 | 0.405132 | 0.000589151 |
| 1,000 | train | 2.21405e-05 | 0.000717058 | 0.433133 | 0.000739198 |
| 1,250 | train | 3.00225e-05 | 0.000947325 | 0.444758 | 0.000977348 |
| 1,500 | train | 3.7833e-05 | 0.00116823 | 0.451597 | 0.00120607 |
| 1,750 | train | 4.49507e-05 | 0.00147651 | 0.448272 | 0.00152146 |
| 2,000 | train | 5.20222e-05 | 0.00178034 | 0.451619 | 0.00183236 |
| 2,250 | train | 5.97428e-05 | 0.00206258 | 0.449671 | 0.00212232 |
| 2,500 | train | 6.78635e-05 | 0.00220622 | 0.443663 | 0.00227409 |
| 2,750 | train | 7.61504e-05 | 0.00231168 | 0.440618 | 0.00238783 |
| 3,000 | train | 8.58517e-05 | 0.00233333 | 0.436857 | 0.00241919 |
| 3,250 | train | 9.77149e-05 | 0.00236563 | 0.432168 | 0.00246334 |
| 3,500 | train | 0.000110827 | 0.00231476 | 0.430735 | 0.00242559 |
| 3,750 | train | 0.000126875 | 0.00226564 | 0.434512 | 0.00239251 |
| 4,000 | train | 0.000145417 | 0.00211525 | 0.438694 | 0.00226067 |
| 4,250 | train | 0.000167628 | 0.00196029 | 0.437996 | 0.00212792 |
| 4,500 | train | 0.000194782 | 0.00182893 | 0.437925 | 0.00202371 |
| 4,750 | train | 0.000227027 | 0.00170113 | 0.436016 | 0.00192816 |
| 5,000 | train | 0.000263738 | 0.00154546 | 0.435576 | 0.00180919 |
| 5,000 | validation | 0.000283719 | 0.0060813 | 0.614562 | 0.00636502 |
| 5,250 | train | 0.000303911 | 0.00140913 | 0.433229 | 0.00171304 |
| 5,500 | train | 0.000345929 | 0.00130875 | 0.431072 | 0.00165468 |
| 5,750 | train | 0.000391956 | 0.00119768 | 0.431669 | 0.00158963 |
| 6,000 | train | 0.000435046 | 0.00113317 | 0.429428 | 0.00156821 |
| 6,250 | train | 0.000476276 | 0.00107261 | 0.428334 | 0.00154889 |
| 6,500 | train | 0.000520947 | 0.000988251 | 0.426753 | 0.0015092 |
| 6,750 | train | 0.000561467 | 0.000925999 | 0.426688 | 0.00148747 |
| 7,000 | train | 0.000600642 | 0.000889937 | 0.426782 | 0.00149058 |
| 7,250 | train | 0.000640212 | 0.000860261 | 0.426819 | 0.00150047 |
| 7,500 | train | 0.000679096 | 0.000852769 | 0.426972 | 0.00153187 |
| 7,750 | train | 0.000715778 | 0.000802992 | 0.427743 | 0.00151877 |
| 8,000 | train | 0.000753992 | 0.00078903 | 0.4273 | 0.00154302 |
| 8,250 | train | 0.000795478 | 0.000771698 | 0.424126 | 0.00156718 |
| 8,500 | train | 0.000837118 | 0.000758088 | 0.424502 | 0.00159521 |
| 8,750 | train | 0.000873988 | 0.00075022 | 0.426376 | 0.00162421 |
| 9,000 | train | 0.000910428 | 0.000754263 | 0.426734 | 0.00166469 |
| 9,250 | train | 0.000944036 | 0.000730808 | 0.427862 | 0.00167484 |
| 9,500 | train | 0.000975691 | 0.00071411 | 0.429285 | 0.0016898 |
| 9,750 | train | 0.00100823 | 0.000682743 | 0.428235 | 0.00169098 |
| 10,000 | train | 0.00104292 | 0.000664123 | 0.428943 | 0.00170704 |
| 10,000 | validation | 0.00106212 | 0.0022162 | 0.629043 | 0.00327832 |
| 10,250 | train | 0.00108166 | 0.000681578 | 0.429688 | 0.00176324 |
| 10,500 | train | 0.0011197 | 0.00105885 | 0.451152 | 0.00217854 |
| 10,750 | train | 0.00114721 | 0.000800759 | 0.408884 | 0.00194796 |
| 11,000 | train | 0.00114271 | 0.000609513 | 0.405662 | 0.00175222 |
| 11,250 | train | 0.00112443 | 0.000589441 | 0.410163 | 0.00171387 |
| 11,500 | train | 0.00110764 | 0.000626262 | 0.412851 | 0.0017339 |
| 11,750 | train | 0.0011031 | 0.0007034 | 0.416477 | 0.0018065 |
| 12,000 | train | 0.00110705 | 0.000701879 | 0.418976 | 0.00180893 |
| 12,250 | train | 0.00111366 | 0.000731281 | 0.42106 | 0.00184494 |
| 12,500 | train | 0.00112138 | 0.000758367 | 0.421869 | 0.00187974 |
| 12,750 | train | 0.00113102 | 0.000750959 | 0.422287 | 0.00188198 |
| 13,000 | train | 0.00114004 | 0.000732814 | 0.423269 | 0.00187286 |
| 13,250 | train | 0.0011468 | 0.000694571 | 0.424568 | 0.00184138 |
| 13,500 | train | 0.00115065 | 0.000657363 | 0.425431 | 0.00180801 |
| 13,750 | train | 0.00115104 | 0.000615922 | 0.426476 | 0.00176697 |
| 14,000 | train | 0.00115097 | 0.000595539 | 0.42664 | 0.00174651 |
| 14,250 | train | 0.00115072 | 0.000557399 | 0.427775 | 0.00170812 |
| 14,500 | train | 0.00114966 | 0.000522873 | 0.428093 | 0.00167254 |
| 14,750 | train | 0.00115023 | 0.000500229 | 0.428635 | 0.00165046 |
| 15,000 | train | 0.00115158 | 0.000471158 | 0.429507 | 0.00162274 |
| 15,000 | validation | 0.00115209 | 0.000515729 | 0.399388 | 0.00166782 |
| 15,250 | train | 0.00115244 | 0.000452634 | 0.429571 | 0.00160508 |
| 15,500 | train | 0.00115244 | 0.000431864 | 0.429741 | 0.00158431 |
| 15,625 | train | 0.00115257 | 0.000415416 | 0.429879 | 0.00156799 |
| 15,625 | validation | 0.00115263 | 0.000468992 | 0.397996 | 0.00162163 |
Tables use exact logged steps; missing values are — without carrying values forward. Repeated evaluations at one step use the latest logged value. Components average batch scalars weighted by examples; CE/PPL token metrics retain their valid-target weighting. Weight decay/CWD act in the optimizer, outside these forward losses.
---
## Limitations
- **Token budget** — ~1.5 B tokens seen; below estimated optimum. Knowledge-intensive tasks
will improve with more training.
- **Gradient spike at step 40k** — Reorganized the attention pattern in layer 9 that
previously captured long-range token correlations. A checkpoint from ~step 38k is expected
to have better aggregate benchmark scores.
- **PolyNorm exclusivity** — The quadratic branch has become partially redundant with the
linear branch. Will be corrected in the next training run.
- **Base model only** — Not instruction-tuned or aligned; purely a next-token-prediction
base model.
---
## References
All papers whose techniques are integrated into NeoLLM's architecture,
training objective, or training stack:
| Area | Technique | Paper title | Reference |
|---|---|---|---|
| Embeddings | Learnable Multipliers | Freeing the Scale of Language Model Matrix Layers | [arXiv:2601.04890](https://arxiv.org/abs/2601.04890) |
| Embeddings | Leviathan | A Separable Architecture for Continuous Token Representation in Language Models | [arXiv:2601.22040](https://arxiv.org/abs/2601.22040) |
| Embeddings / residual modulation | JTok / JTok-M | JTok: On Token Embedding as another Axis of Scaling Law via Joint Token Self-modulation | [arXiv:2602.00800](https://arxiv.org/abs/2602.00800) |
| Embeddings | KHRONOS | KHRONOS: a Kernel-Based Neural Architecture for Rapid, Resource-Efficient Scientific Computation | [arXiv:2505.13315](https://arxiv.org/abs/2505.13315) |
| Embeddings | Spelling Bee | Spelling Bee Embeddings for Language Modeling | [arXiv:2601.18030](https://arxiv.org/abs/2601.18030) |
| Embeddings | Token embedding analysis | Token Embeddings Violate the Manifold Hypothesis | [arXiv:2504.01002](https://arxiv.org/abs/2504.01002) |
| Attention / positions | FAN | Fourier Analysis Networks | [arXiv:2502.21309](https://arxiv.org/abs/2502.21309) |
| Attention / positions | MEA | Explicit Multi-head Attention for Inter-head Interaction in Large Language Models | [arXiv:2601.19611](https://arxiv.org/abs/2601.19611) |
| Attention / positions | LUCID | Attention with Preconditioned Representations | [arXiv:2602.10410](https://arxiv.org/abs/2602.10410) |
| Attention / positions | Affine-Scaled Attention | Affine-Scaled Attention: Towards Flexible and Stable Transformer Attention | [arXiv:2602.23057](https://arxiv.org/abs/2602.23057) |
| Attention / positions | XSA | Exclusive Self Attention | [arXiv:2603.09078](https://arxiv.org/abs/2603.09078) |
| Attention / positions | Directional Routing | Directional Routing in Transformers | [arXiv:2603.14923](https://arxiv.org/abs/2603.14923) |
| Attention / positions | Gated Attention | Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free | [arXiv:2505.06708](https://arxiv.org/abs/2505.06708) |
| Attention / positions | Momentum Attention | Momentum Attention | [arXiv:2411.03884](https://arxiv.org/abs/2411.03884) |
| Attention / positions | IHA | Interleaved Head Attention | [arXiv:2602.21371](https://arxiv.org/abs/2602.21371) |
| Attention / positions | REPO | Language Models with Context Re-Positioning | [arXiv:2512.14391](https://arxiv.org/abs/2512.14391) |
| Attention / positions | GRAPE | Group Representational Position Encoding | [arXiv:2512.07805](https://arxiv.org/abs/2512.07805) |
| Attention / positions | GOAT priors | You Need Better Attention Priors | [arXiv:2601.15380](https://arxiv.org/abs/2601.15380) |
| Attention / positions | Hadamard o_proj | Rethinking Attention Output Projection: Structured Hadamard Transforms for Efficient Transformers | [arXiv:2603.08343](https://arxiv.org/abs/2603.08343) |
| Residual / normalization | SeeDNorm | Self-Rescaled Dynamic Normalization | [arXiv:2510.22777](https://arxiv.org/abs/2510.22777) |
| Residual / normalization | LNS | The Curse of Depth in LLMs | [arXiv:2502.05795](https://arxiv.org/abs/2502.05795) |
| Residual / normalization | GPAS | Gradient-Preserving Activation Scaling | [arXiv:2506.22049](https://arxiv.org/abs/2506.22049) |
| Residual / normalization | PolyNorm | PolyNorm / PolyCom | [arXiv:2602.04902](https://arxiv.org/abs/2602.04902) |
| Residual / normalization | SimpleGPT | SimpleGPT | [arXiv:2602.01212](https://arxiv.org/abs/2602.01212) |
| Residual / normalization | StackMemory / STACKTRANS | Recursive Transformer: Boosting Reasoning Ability with State Stack | [NeurIPS 2025](https://openreview.net/forum?id=2bbDg587uh) |
| Residual / normalization | Attention Residuals | Attention Residuals | [arXiv:2603.15031](https://arxiv.org/abs/2603.15031) |
| Residual / normalization | LAUREL | LAUREL: Learned Augmented Residual Layer | [arXiv:2411.07501](https://arxiv.org/abs/2411.07501) |
| Objectives | TWEO | Transformers Without Extreme Outliers Enables FP8 Training And Quantization For Dummies | [arXiv:2511.23225](https://arxiv.org/abs/2511.23225) |
| Objectives | NITP | Next Implicit Token Prediction for LLM Pre-training | [arXiv:2605.24956](https://arxiv.org/abs/2605.24956) |
| Objectives | NextLat | Next-Latent Prediction Transformers Learn Compact World Models | [arXiv:2511.05963](https://arxiv.org/abs/2511.05963) |
| Optimizer / training | AdEMAMix | The AdEMAMix Optimizer: Better, Faster, Older | [arXiv:2409.03137](https://arxiv.org/abs/2409.03137) |
| Optimizer / training | DeltaMomentum | DeltaMomentum: A Key-Value based Anisotropic Momentum Update via Delta Rule | [arXiv:2608.19491](https://arxiv.org/abs/2608.19491) |
| Optimizer / training | BF16 + SR | Stochastic Rounding for LLM Training: Theory and Practice | [arXiv:2502.20566](https://arxiv.org/abs/2502.20566) |
| Optimizer / training | CWD | Cautious Weight Decay | [arXiv:2510.12402](https://arxiv.org/abs/2510.12402) |
| Optimizer / training | WD correction | Correction of Decoupled Weight Decay | [arXiv:2512.08217](https://arxiv.org/abs/2512.08217) |
| Optimizer / training | AdamHD | AdamHD: Decoupled Huber Decay Regularization for Language Model Pre-Training | [arXiv:2511.14721](https://arxiv.org/abs/2511.14721) |
| Optimizer / training | GradientStabilizer | GradientStabilizer | [arXiv:2502.17055](https://arxiv.org/abs/2502.17055) |
---
## Citation
```bibtex
@misc{neollm2026,
title = {NeoLLM: A Research Language Model Integrating Recent Attention and Normalization Techniques},
author = {KitsuVp},
year = {2026},
url = {https://huggingface.co/KitsuVp/NeoLLM}
}
```
---
## Author
[@Kyokopom](https://x.com/Kyokopom) on X
---
## License
Apache 2.0