Model save
Browse files- README.md +72 -336
- chat_template.jinja +95 -15
- config.json +1 -1
- model.safetensors +2 -2
- training_args.bin +1 -1
README.md
CHANGED
|
@@ -1,342 +1,78 @@
|
|
| 1 |
---
|
| 2 |
-
|
| 3 |
-
license: apache-2.0
|
| 4 |
tags:
|
| 5 |
-
-
|
| 6 |
-
-
|
| 7 |
-
-
|
| 8 |
-
|
| 9 |
-
- normalization
|
| 10 |
-
- neollm
|
| 11 |
-
- pace
|
| 12 |
-
datasets:
|
| 13 |
-
- HuggingFaceFW/fineweb-edu
|
| 14 |
---
|
| 15 |
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
NeoLLM is a **135 M parameter** decoder-only language model trained from scratch on
|
| 19 |
-
[FineWeb-Edu](https://huggingface.co/datasets/HuggingFaceFW/fineweb-edu) in **FP8**
|
| 20 |
-
precision, completing training in approximately **6 hours** on a single NVIDIA RTX 5090.
|
| 21 |
-
It integrates a collection of recently published attention and normalization techniques
|
| 22 |
-
into a single architecture, with the goal of studying how they interact during
|
| 23 |
-
pretraining. The model is actively being developed and the current checkpoint represents
|
| 24 |
-
an intermediate training state.
|
| 25 |
-
|
| 26 |
-
> **Author / contact:** [@Kyokopom](https://x.com/Kyokopom) on X
|
| 27 |
-
> **Repository:** [KitsuVp/NeoLLM](https://huggingface.co/KitsuVp/NeoLLM)
|
| 28 |
-
|
| 29 |
-
---
|
| 30 |
-
|
| 31 |
-
## Architecture
|
| 32 |
-
|
| 33 |
-
NeoLLM is a decoder-only transformer with the following configuration:
|
| 34 |
-
|
| 35 |
-
| Parameter | Value |
|
| 36 |
-
|---|---|
|
| 37 |
-
| Hidden size | 512 |
|
| 38 |
-
| Layers | 12 |
|
| 39 |
-
| Attention heads | 8 |
|
| 40 |
-
| KV heads (GQA) | 4 |
|
| 41 |
-
| Head dim | 64 |
|
| 42 |
-
| Intermediate size | 1536 |
|
| 43 |
-
| Vocabulary | Qwen3 tokenizer (64,402 tokens) |
|
| 44 |
-
| Context length | 512 tokens |
|
| 45 |
-
|
| 46 |
-
### Parameter breakdown
|
| 47 |
-
|
| 48 |
-
| Parameter bucket | Count |
|
| 49 |
-
|---|---|
|
| 50 |
-
| **Total parameters** | 116.21M (116,212,664) |
|
| 51 |
-
| **Embedding parameters** (tied) | 32.97M (32,973,824) |
|
| 52 |
-
| **Non-embedding parameters** | 83.24M (83,238,840) |
|
| 53 |
-
| **Effective trainable parameters** | 116.21M (116,212,664) |
|
| 54 |
-
|
| 55 |
-
> Weight tying is **enabled**: the input embedding matrix and the language-model head
|
| 56 |
-
> share the same parameters, so the effective trainable budget is
|
| 57 |
-
> `total − embed = 83.24M`.
|
| 58 |
-
|
| 59 |
-
### Integrated techniques
|
| 60 |
-
|
| 61 |
-
NeoLLM combines architecture modules, optional auxiliary objectives, and
|
| 62 |
-
training-time optimizer/stability components from the following papers.
|
| 63 |
-
|
| 64 |
-
**Embedding and token representation**
|
| 65 |
-
|
| 66 |
-
- **Learnable Multipliers** ([arXiv:2601.04890](https://arxiv.org/abs/2601.04890)) — Adds
|
| 67 |
-
per-row and per-column learnable scalar parameters to selected matrix layers and, when
|
| 68 |
-
enabled, embeddings.
|
| 69 |
-
- **Leviathan** ([arXiv:2601.22040](https://arxiv.org/abs/2601.22040)) — Optional
|
| 70 |
-
continuous token embedding generator that can replace the discrete input lookup table.
|
| 71 |
-
- **KHRONOS** ([arXiv:2505.13315](https://arxiv.org/abs/2505.13315)) — Kernel/basis
|
| 72 |
-
reference used by the Leviathan continuous token generator implementation.
|
| 73 |
-
- **JTok / JTok-M** ([arXiv:2602.00800](https://arxiv.org/abs/2602.00800)) — Optional
|
| 74 |
-
token-indexed self-modulation surfaces over Leviathan coordinates.
|
| 75 |
-
- **Spelling Bee Embeddings** ([arXiv:2601.18030](https://arxiv.org/abs/2601.18030)) —
|
| 76 |
-
Augments token embeddings with character-level spelling information.
|
| 77 |
-
- **Token Embedding Manifold analysis** ([arXiv:2504.01002](https://arxiv.org/abs/2504.01002)) —
|
| 78 |
-
Reference motivation for treating token embeddings as structured objects rather than
|
| 79 |
-
unconstrained lookup rows.
|
| 80 |
-
|
| 81 |
-
**Attention, positions, and output projection**
|
| 82 |
-
|
| 83 |
-
- **FAN** ([arXiv:2502.21309](https://arxiv.org/abs/2502.21309)) — Fourier Analysis Networks.
|
| 84 |
-
A portion of the projection channels are dedicated to periodic cosine/sine features.
|
| 85 |
-
- **MEA** ([arXiv:2601.19611](https://arxiv.org/abs/2601.19611)) — Explicit Multi-head
|
| 86 |
-
Attention. Adds small learnable interaction matrices between attention heads for K and V.
|
| 87 |
-
- **LUCID** ([arXiv:2602.10410](https://arxiv.org/abs/2602.10410)) — Applies a learned
|
| 88 |
-
lower-triangular preconditioner to V before attention, decorrelating value representations
|
| 89 |
-
across positions.
|
| 90 |
-
- **Affine-Scaled Attention** ([arXiv:2602.23057](https://arxiv.org/abs/2602.23057)) — Adds
|
| 91 |
-
two learnable per-head scalars (α and β) to the softmax weights:
|
| 92 |
-
`[α·softmax(QKᵀ) + β]·V`.
|
| 93 |
-
- **XSA** ([arXiv:2603.09078](https://arxiv.org/abs/2603.09078)) — Exclusive Self Attention.
|
| 94 |
-
After computing attention, removes the component of the output aligned with the token's
|
| 95 |
-
own value vector.
|
| 96 |
-
- **Directional Routing** ([arXiv:2603.14923](https://arxiv.org/abs/2603.14923)) — Each head
|
| 97 |
-
learns K=4 directions in the output space; a learned router suppresses the attention output
|
| 98 |
-
along each direction per input.
|
| 99 |
-
- **Gated Attention** ([arXiv:2505.06708](https://arxiv.org/abs/2505.06708)) — A sigmoid gate
|
| 100 |
-
is applied to the attention output before the output projection, introducing non-linearity
|
| 101 |
-
and preventing attention sinks.
|
| 102 |
-
- **Momentum Attention** ([arXiv:2411.03884](https://arxiv.org/abs/2411.03884)) — Modifies Q
|
| 103 |
-
and K by subtracting a fraction of the previous position's Q and K values (causal
|
| 104 |
-
first-difference).
|
| 105 |
-
- **Interleaved Head Attention / IHA** ([arXiv:2602.21371](https://arxiv.org/abs/2602.21371)) —
|
| 106 |
-
Builds pseudo-heads from learned cross-head mixtures to create multiple attention patterns
|
| 107 |
-
per original head.
|
| 108 |
-
- **REPO** ([arXiv:2512.14391](https://arxiv.org/abs/2512.14391)) — Context re-positioning
|
| 109 |
-
module that learns contextual position coordinates above a configurable start layer.
|
| 110 |
-
- **GRAPE** ([arXiv:2512.07805](https://arxiv.org/abs/2512.07805)) — Group representational
|
| 111 |
-
position encoding used by the REPO-GRAPE positional path.
|
| 112 |
-
- **GOAT priors** ([arXiv:2601.15380](https://arxiv.org/abs/2601.15380)) — Optional
|
| 113 |
-
factorized attention log-prior channels inspired by trainable attention priors.
|
| 114 |
-
- **Hadamard output projection** ([arXiv:2603.08343](https://arxiv.org/abs/2603.08343)) —
|
| 115 |
-
Replaces dense attention output projection with a structured Hadamard transform plus
|
| 116 |
-
lightweight scaling.
|
| 117 |
-
|
| 118 |
-
**Normalization, residual flow, and MLP**
|
| 119 |
-
|
| 120 |
-
- **SeeDNorm** ([arXiv:2510.22777](https://arxiv.org/abs/2510.22777)) — Applied to Q and K
|
| 121 |
-
projections. Dynamically rescales normalization from the input's own statistics.
|
| 122 |
-
- **LayerNorm Scaling / LNS** ([arXiv:2502.05795](https://arxiv.org/abs/2502.05795)) — Each
|
| 123 |
-
layer's output is scaled by 1/√ℓ where ℓ is the layer index.
|
| 124 |
-
- **GPAS** ([arXiv:2506.22049](https://arxiv.org/abs/2506.22049)) — Gradient-Preserving
|
| 125 |
-
Activation Scaling for residual junctions.
|
| 126 |
-
- **PolyNorm** ([arXiv:2602.04902](https://arxiv.org/abs/2602.04902)) — Replaces the standard
|
| 127 |
-
MLP activation with normalized linear, quadratic, and cubic branches.
|
| 128 |
-
- **SimpleGPT** ([arXiv:2602.01212](https://arxiv.org/abs/2602.01212)) — Second-order
|
| 129 |
-
geometry-inspired normalization strategy applied inside MLP projections.
|
| 130 |
-
- **StackMemory / STACKTRANS** ([NeurIPS 2025](https://openreview.net/forum?id=2bbDg587uh)) —
|
| 131 |
-
Optional differentiable hidden-state stack between decoder layers.
|
| 132 |
-
- **Attention Residuals / AttnRes** ([arXiv:2603.15031](https://arxiv.org/abs/2603.15031)) —
|
| 133 |
-
Optional learned depth-wise aggregation over previous layer outputs or block summaries.
|
| 134 |
-
- **LAUREL** ([arXiv:2411.07501](https://arxiv.org/abs/2411.07501)) — Optional learned
|
| 135 |
-
augmented residual layer with residual-weight and low-rank variants.
|
| 136 |
-
|
| 137 |
-
**Training objectives and training-time regularizers**
|
| 138 |
-
|
| 139 |
-
- **Cut Cross Entropy** ([Apple repository](https://github.com/apple/ml-cross-entropy)) —
|
| 140 |
-
Memory-efficient next-token loss that avoids materializing the full token-by-vocabulary
|
| 141 |
-
logits tensor. NeoLLM remains compatible with the upstream package when the extensions
|
| 142 |
-
below are disabled.
|
| 143 |
-
- **MiLe Loss** ([arXiv:2310.19531](https://arxiv.org/abs/2310.19531)) — Optional detached,
|
| 144 |
-
mean-normalized predictive-entropy weighting of token losses, implemented inside the
|
| 145 |
-
extended CCE path.
|
| 146 |
-
- **Output Embedding Centering / mu-loss**
|
| 147 |
-
([arXiv:2601.02031](https://arxiv.org/abs/2601.02031)) — Optional
|
| 148 |
-
`lambda * ||mean(output_embeddings)||^2` regularizer for output-logit stability.
|
| 149 |
-
- **MEAP** ([arXiv:2502.07490](https://arxiv.org/abs/2502.07490)) — Optional training-only
|
| 150 |
-
input corruption that masks a fixed fraction of eligible tokens while preserving clean
|
| 151 |
-
next-token labels, causal attention, and the inference path.
|
| 152 |
-
- **TWEO** ([arXiv:2511.23225](https://arxiv.org/abs/2511.23225)) — Optional
|
| 153 |
-
Transformers Without Extreme Outliers activation regularizer for FP8/low-bit-friendly
|
| 154 |
-
training.
|
| 155 |
-
- **NITP** ([arXiv:2605.24956](https://arxiv.org/abs/2605.24956)) — Optional Next Implicit
|
| 156 |
-
Token Prediction auxiliary objective using shallow-layer implicit token targets and a
|
| 157 |
-
cosine loss.
|
| 158 |
-
- **NextLat** ([arXiv:2511.05963](https://arxiv.org/abs/2511.05963)) — Optional next-latent
|
| 159 |
-
prediction objective using latent dynamics, Smooth L1 supervision, and frozen-head KL.
|
| 160 |
-
|
| 161 |
-
### Optional extended-CCE configuration
|
| 162 |
-
|
| 163 |
-
| Feature | Enabled | Value |
|
| 164 |
-
|---|---:|---:|
|
| 165 |
-
| MiLe Loss | True | gamma=1.0 |
|
| 166 |
-
| mu-loss | True | lambda=0.0001 |
|
| 167 |
-
| MEAP | True | ratio=0.15 |
|
| 168 |
-
|
| 169 |
-
MiLe, mu-loss, and MEAP require the extended
|
| 170 |
-
[`Kitsunp/ml-cross-entropy`](https://github.com/Kitsunp/ml-cross-entropy) package only when
|
| 171 |
-
their corresponding flags are enabled. With all flags disabled, NeoLLM calls upstream CCE
|
| 172 |
-
without extension-specific arguments. When any extension is active, CCE reports three compact
|
| 173 |
-
scalars: unweighted NTP cross entropy, the MiLe reweighting delta, and the mu-loss penalty.
|
| 174 |
-
Their sum reconstructs `ntp_loss` exactly. MEAP reports its eligible and selected counts from
|
| 175 |
-
the masking kernel; the trainer logs the selected count and exact fraction. No diagnostic path
|
| 176 |
-
materializes full-vocabulary logits or a token mask outside the kernels.
|
| 177 |
-
|
| 178 |
-
**Optimizer and training stability**
|
| 179 |
-
|
| 180 |
-
- **Conda** ([arXiv:2509.24218](https://arxiv.org/abs/2509.24218)) —
|
| 181 |
-
Column-Normalized Adam optimizer path used by the training script.
|
| 182 |
-
- **Cautious Weight Decay** ([arXiv:2510.12402](https://arxiv.org/abs/2510.12402)) —
|
| 183 |
-
Sign-selective weight decay variant used by the custom optimizer logic.
|
| 184 |
-
- **Correction of Decoupled Weight Decay** ([arXiv:2512.08217](https://arxiv.org/abs/2512.08217)) —
|
| 185 |
-
Adapts decoupled weight decay during learning-rate decay.
|
| 186 |
-
- **AdamHD** ([arXiv:2511.14721](https://arxiv.org/abs/2511.14721)) —
|
| 187 |
-
Decoupled Huber decay regularization reference used by the optimizer.
|
| 188 |
-
- **GradientStabilizer** ([arXiv:2502.17055](https://arxiv.org/abs/2502.17055)) —
|
| 189 |
-
Optional threshold-free gradient magnitude stabilizer.
|
| 190 |
-
- **PACE** ([arXiv:2606.25086](https://arxiv.org/abs/2606.25086)) —
|
| 191 |
-
Optional iterate-average controller that trains for the EMA model returned at evaluation
|
| 192 |
-
and final serialization. The Conda-basis adaptation and its difference from AdamW are
|
| 193 |
-
documented below.
|
| 194 |
-
|
| 195 |
-
---
|
| 196 |
-
|
| 197 |
-
### PACE integration and AdamW-reference differences
|
| 198 |
|
| 199 |
-
|
| 200 |
-
power-law EMA with a clipped per-coordinate gain, and evaluation/final serialization use that
|
| 201 |
-
EMA estimator.
|
| 202 |
-
|
| 203 |
-
- **Reference AdamW rule:** the gain uses AdamW's original-coordinate diagonal
|
| 204 |
-
second moment, `eta * c * (1+t)^(-kappa) / (sqrt(v_hat) + eps)`.
|
| 205 |
-
- **NeoLLM Conda rule (`mode=conda`):** for projected 2-D tensors, both the EMA
|
| 206 |
-
displacement and `v_hat` are represented in Conda's cached SVD basis. The control is
|
| 207 |
-
projected back after applying the diagonal gain. This is a deliberate change from AdamW
|
| 208 |
-
required to avoid mixing incompatible coordinate systems.
|
| 209 |
-
- **Optional exact AdamW pullback geometry (`mode=adamw`):** an additional
|
| 210 |
-
original-coordinate second moment is maintained for projected matrices. The live optimizer
|
| 211 |
-
step remains Conda.
|
| 212 |
-
- **Conda scale:** in `mode=conda`, Conda's matrix-update scale multiplies the unsaturated
|
| 213 |
-
gain automatically because it is part of the effective Conda preconditioner. AdamW has no
|
| 214 |
-
corresponding scale.
|
| 215 |
-
- **Fixed algorithm internals:** the EMA is stored in FP32, the gain is clipped at `1`, and PACE
|
| 216 |
-
reuses each Conda group’s numerical epsilon. These are not exposed as independent switches.
|
| 217 |
-
- **Minimal modes:** `use_pace=False` is plain Conda; `use_pace=True, c=0` is Conda+EMA;
|
| 218 |
-
`use_pace=True, c>0` is complete PACE.
|
| 219 |
-
- **Ordering:** PACE runs only after Conda, CWD/CHD, and weight-decay correction have fully
|
| 220 |
-
updated the live weights.
|
| 221 |
-
- **Disabled guarantee:** with `use_pace=False`, no PACE state is allocated and no existing
|
| 222 |
-
Conda arithmetic or parameter update is changed.
|
| 223 |
-
- **Checkpoint policy:** resumable internal checkpoints retain live weights and complete optimizer
|
| 224 |
-
state, while evaluation and the final returned/Hub model always use the EMA when PACE is active.
|
| 225 |
-
|
| 226 |
-
Current run: **disabled; no EMA state, auxiliary moment, or pullback is allocated**.
|
| 227 |
-
|
| 228 |
-
---
|
| 229 |
-
|
| 230 |
-
## Training
|
| 231 |
-
|
| 232 |
-
| Setting | Value |
|
| 233 |
-
|---|---|
|
| 234 |
-
| Dataset | FineWeb-Edu (sample-10BT) |
|
| 235 |
-
| Tokens seen | ~1.54B (46,875 steps × batch 64 × length 512) |
|
| 236 |
-
| Precision | FP8 native (E4M3 weights/activations, E5M2 gradients) + BF16 fallback |
|
| 237 |
-
| Optimizer | Conda (PACE disabled) |
|
| 238 |
-
| PACE | disabled; no EMA state, auxiliary moment, or pullback is allocated |
|
| 239 |
-
| Learning rate | 6e-04 with linear warmup (10 % of steps) |
|
| 240 |
-
| Weight decay | 0.1 |
|
| 241 |
-
| Training time | ~3h 12m |
|
| 242 |
-
| Hardware | NVIDIA RTX 5090 (single GPU) |
|
| 243 |
-
|
| 244 |
-
### Training curve
|
| 245 |
-
|
| 246 |
-
| Step | Train Loss | Val Loss |
|
| 247 |
-
|---|---|---|
|
| 248 |
-
| 5,000 | 5.553 | 5.066 |
|
| 249 |
-
| 10,000 | 5.368 | 4.851 |
|
| 250 |
-
| 15,000 | 5.284 | 4.767 |
|
| 251 |
-
| 20,000 | 5.231 | 4.699 |
|
| 252 |
-
| 25,000 | 5.197 | 4.667 |
|
| 253 |
-
| 30,000 | 5.168 | 4.636 |
|
| 254 |
-
| 35,000 | 5.152 | 4.624 |
|
| 255 |
-
| 40,000 | 5.070 | 4.548 |
|
| 256 |
-
| 45,000 | 5.028 | 4.498 |
|
| 257 |
-
| 46,875 | — | 4.490 |
|
| 258 |
-
|
| 259 |
-
---
|
| 260 |
-
|
| 261 |
-
## Limitations
|
| 262 |
-
|
| 263 |
-
- **Token budget** — ~1.5 B tokens seen; below estimated optimum. Knowledge-intensive tasks
|
| 264 |
-
will improve with more training.
|
| 265 |
-
- **Gradient spike at step 40k** — Reorganized the attention pattern in layer 9 that
|
| 266 |
-
previously captured long-range token correlations. A checkpoint from ~step 38k is expected
|
| 267 |
-
to have better aggregate benchmark scores.
|
| 268 |
-
- **PolyNorm exclusivity** — The quadratic branch has become partially redundant with the
|
| 269 |
-
linear branch. Will be corrected in the next training run.
|
| 270 |
-
- **Base model only** — Not instruction-tuned or aligned; purely a next-token-prediction
|
| 271 |
-
base model.
|
| 272 |
-
|
| 273 |
-
---
|
| 274 |
-
|
| 275 |
-
## References
|
| 276 |
-
|
| 277 |
-
All papers whose techniques are integrated into NeoLLM's architecture,
|
| 278 |
-
training objective, or training stack:
|
| 279 |
-
|
| 280 |
-
| Area | Technique | Paper title | Reference |
|
| 281 |
-
|---|---|---|---|
|
| 282 |
-
| Embeddings | Learnable Multipliers | Freeing the Scale of Language Model Matrix Layers | [arXiv:2601.04890](https://arxiv.org/abs/2601.04890) |
|
| 283 |
-
| Embeddings | Leviathan | A Separable Architecture for Continuous Token Representation in Language Models | [arXiv:2601.22040](https://arxiv.org/abs/2601.22040) |
|
| 284 |
-
| Embeddings | KHRONOS | KHRONOS: a Kernel-Based Neural Architecture for Rapid, Resource-Efficient Scientific Computation | [arXiv:2505.13315](https://arxiv.org/abs/2505.13315) |
|
| 285 |
-
| Embeddings | 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) |
|
| 286 |
-
| Embeddings | Spelling Bee | Spelling Bee Embeddings for Language Modeling | [arXiv:2601.18030](https://arxiv.org/abs/2601.18030) |
|
| 287 |
-
| Embeddings | Token embedding analysis | Token Embeddings Violate the Manifold Hypothesis | [arXiv:2504.01002](https://arxiv.org/abs/2504.01002) |
|
| 288 |
-
| Attention / positions | FAN | Fourier Analysis Networks | [arXiv:2502.21309](https://arxiv.org/abs/2502.21309) |
|
| 289 |
-
| Attention / positions | MEA | Explicit Multi-head Attention for Inter-head Interaction in Large Language Models | [arXiv:2601.19611](https://arxiv.org/abs/2601.19611) |
|
| 290 |
-
| Attention / positions | LUCID | Attention with Preconditioned Representations | [arXiv:2602.10410](https://arxiv.org/abs/2602.10410) |
|
| 291 |
-
| Attention / positions | Affine-Scaled Attention | Affine-Scaled Attention: Towards Flexible and Stable Transformer Attention | [arXiv:2602.23057](https://arxiv.org/abs/2602.23057) |
|
| 292 |
-
| Attention / positions | XSA | Exclusive Self Attention | [arXiv:2603.09078](https://arxiv.org/abs/2603.09078) |
|
| 293 |
-
| Attention / positions | Directional Routing | Directional Routing in Transformers | [arXiv:2603.14923](https://arxiv.org/abs/2603.14923) |
|
| 294 |
-
| 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) |
|
| 295 |
-
| Attention / positions | Momentum Attention | Momentum Attention | [arXiv:2411.03884](https://arxiv.org/abs/2411.03884) |
|
| 296 |
-
| Attention / positions | IHA | Interleaved Head Attention | [arXiv:2602.21371](https://arxiv.org/abs/2602.21371) |
|
| 297 |
-
| Attention / positions | REPO | Language Models with Context Re-Positioning | [arXiv:2512.14391](https://arxiv.org/abs/2512.14391) |
|
| 298 |
-
| Attention / positions | GRAPE | Group Representational Position Encoding | [arXiv:2512.07805](https://arxiv.org/abs/2512.07805) |
|
| 299 |
-
| Attention / positions | GOAT priors | You Need Better Attention Priors | [arXiv:2601.15380](https://arxiv.org/abs/2601.15380) |
|
| 300 |
-
| Attention / positions | Hadamard o_proj | Rethinking Attention Output Projection: Structured Hadamard Transforms for Efficient Transformers | [arXiv:2603.08343](https://arxiv.org/abs/2603.08343) |
|
| 301 |
-
| Residual / normalization | SeeDNorm | Self-Rescaled Dynamic Normalization | [arXiv:2510.22777](https://arxiv.org/abs/2510.22777) |
|
| 302 |
-
| Residual / normalization | LNS | The Curse of Depth in LLMs | [arXiv:2502.05795](https://arxiv.org/abs/2502.05795) |
|
| 303 |
-
| Residual / normalization | GPAS | Gradient-Preserving Activation Scaling | [arXiv:2506.22049](https://arxiv.org/abs/2506.22049) |
|
| 304 |
-
| Residual / normalization | PolyNorm | PolyNorm / PolyCom | [arXiv:2602.04902](https://arxiv.org/abs/2602.04902) |
|
| 305 |
-
| Residual / normalization | SimpleGPT | SimpleGPT | [arXiv:2602.01212](https://arxiv.org/abs/2602.01212) |
|
| 306 |
-
| Residual / normalization | StackMemory / STACKTRANS | Recursive Transformer: Boosting Reasoning Ability with State Stack | [NeurIPS 2025](https://openreview.net/forum?id=2bbDg587uh) |
|
| 307 |
-
| Residual / normalization | Attention Residuals | Attention Residuals | [arXiv:2603.15031](https://arxiv.org/abs/2603.15031) |
|
| 308 |
-
| Residual / normalization | LAUREL | LAUREL: Learned Augmented Residual Layer | [arXiv:2411.07501](https://arxiv.org/abs/2411.07501) |
|
| 309 |
-
| Objectives | TWEO | Transformers Without Extreme Outliers Enables FP8 Training And Quantization For Dummies | [arXiv:2511.23225](https://arxiv.org/abs/2511.23225) |
|
| 310 |
-
| Objectives | NITP | Next Implicit Token Prediction for LLM Pre-training | [arXiv:2605.24956](https://arxiv.org/abs/2605.24956) |
|
| 311 |
-
| Objectives | NextLat | Next-Latent Prediction Transformers Learn Compact World Models | [arXiv:2511.05963](https://arxiv.org/abs/2511.05963) |
|
| 312 |
-
| Optimizer / training | Conda | Column-Normalized Adam for Training Large Language Models Faster | [arXiv:2509.24218](https://arxiv.org/abs/2509.24218) |
|
| 313 |
-
| Optimizer / training | CWD | Cautious Weight Decay | [arXiv:2510.12402](https://arxiv.org/abs/2510.12402) |
|
| 314 |
-
| Optimizer / training | WD correction | Correction of Decoupled Weight Decay | [arXiv:2512.08217](https://arxiv.org/abs/2512.08217) |
|
| 315 |
-
| Optimizer / training | AdamHD | AdamHD: Decoupled Huber Decay Regularization for Language Model Pre-Training | [arXiv:2511.14721](https://arxiv.org/abs/2511.14721) |
|
| 316 |
-
| Optimizer / training | GradientStabilizer | GradientStabilizer | [arXiv:2502.17055](https://arxiv.org/abs/2502.17055) |
|
| 317 |
-
| Optimizer / training | PACE | Training for the Model You Return: Improving Optimization for Iterate-Averaged Language Models | [arXiv:2606.25086](https://arxiv.org/abs/2606.25086) |
|
| 318 |
-
|
| 319 |
-
---
|
| 320 |
-
|
| 321 |
-
## Citation
|
| 322 |
-
|
| 323 |
-
```bibtex
|
| 324 |
-
@misc{neollm2026,
|
| 325 |
-
title = {NeoLLM: A Research Language Model Integrating Recent Attention and Normalization Techniques},
|
| 326 |
-
author = {KitsuVp},
|
| 327 |
-
year = {2026},
|
| 328 |
-
url = {https://huggingface.co/KitsuVp/NeoLLM}
|
| 329 |
-
}
|
| 330 |
-
```
|
| 331 |
-
|
| 332 |
-
---
|
| 333 |
-
|
| 334 |
-
## Author
|
| 335 |
-
|
| 336 |
-
[@Kyokopom](https://x.com/Kyokopom) on X
|
| 337 |
-
|
| 338 |
-
---
|
| 339 |
-
|
| 340 |
-
## License
|
| 341 |
|
| 342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
library_name: transformers
|
|
|
|
| 3 |
tags:
|
| 4 |
+
- generated_from_trainer
|
| 5 |
+
model-index:
|
| 6 |
+
- name: NeoLLM
|
| 7 |
+
results: []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
+
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
|
| 11 |
+
should probably proofread and complete it, then remove this comment. -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
+
# NeoLLM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
+
This model is a fine-tuned version of [](https://huggingface.co/) on an unknown dataset.
|
| 16 |
+
It achieves the following results on the evaluation set:
|
| 17 |
+
- Loss: 4.4649
|
| 18 |
+
- Ntp Loss: 3.7533
|
| 19 |
+
- Ntp Ce Unweighted: 3.0587
|
| 20 |
+
- Mile Reweighting Delta: 0.6946
|
| 21 |
+
- Mu Loss: 0.0001
|
| 22 |
+
- Tweo Loss: 0.0129
|
| 23 |
+
- Nitp Loss: 0.4412
|
| 24 |
+
- Total Model Loss: 4.1947
|
| 25 |
+
- Optimizer Step: 46875.0
|
| 26 |
+
- Optimizer Metrics Due: 0.0
|
| 27 |
+
- Pace Step: 0.0
|
| 28 |
+
- Pace Update Due: 0.0
|
| 29 |
+
- Pace Previous Iterate Active: 1.0
|
| 30 |
+
|
| 31 |
+
## Model description
|
| 32 |
+
|
| 33 |
+
More information needed
|
| 34 |
+
|
| 35 |
+
## Intended uses & limitations
|
| 36 |
+
|
| 37 |
+
More information needed
|
| 38 |
+
|
| 39 |
+
## Training and evaluation data
|
| 40 |
+
|
| 41 |
+
More information needed
|
| 42 |
+
|
| 43 |
+
## Training procedure
|
| 44 |
+
|
| 45 |
+
### Training hyperparameters
|
| 46 |
+
|
| 47 |
+
The following hyperparameters were used during training:
|
| 48 |
+
- learning_rate: 0.0006
|
| 49 |
+
- train_batch_size: 64
|
| 50 |
+
- eval_batch_size: 64
|
| 51 |
+
- seed: 42
|
| 52 |
+
- optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
|
| 53 |
+
- lr_scheduler_type: linear
|
| 54 |
+
- lr_scheduler_warmup_steps: 0.1
|
| 55 |
+
- num_epochs: 1
|
| 56 |
+
|
| 57 |
+
### Training results
|
| 58 |
+
|
| 59 |
+
| Training Loss | Epoch | Step | Validation Loss | Loss | Ce Unweighted | Reweighting Delta | Model Loss | Metrics Due | Update Due | Previous Iterate Active |
|
| 60 |
+
|:-------------:|:------:|:----:|:---------------:|:------:|:-------------:|:-----------------:|:----------:|:-----------:|:----------:|:-----------------------:|
|
| 61 |
+
| 5.5448 | 0.1067 | 0.0 | 5.0566 | 0.5079 | 3.6617 | 0.6144 | 4.7845 | 0.0 | 0.0 | 1.0 |
|
| 62 |
+
| 5.3552 | 0.2133 | 0.0 | 4.8474 | 0.4900 | 3.4344 | 0.6562 | 4.5811 | 0.0 | 0.0 | 1.0 |
|
| 63 |
+
| 5.2679 | 0.32 | 0.0 | 4.7540 | 0.4872 | 3.3391 | 0.6678 | 4.4945 | 0.0 | 0.0 | 1.0 |
|
| 64 |
+
| 5.2120 | 0.4267 | 0.0 | 4.6853 | 0.4804 | 3.2710 | 0.6671 | 4.4188 | 0.0 | 0.0 | 1.0 |
|
| 65 |
+
| 5.1740 | 0.5333 | 0.0 | 4.6534 | 0.4744 | 3.2494 | 0.6756 | 4.3995 | 0.0 | 0.0 | 1.0 |
|
| 66 |
+
| 5.1455 | 0.64 | 0.0 | 4.6233 | 0.4665 | 3.2135 | 0.6859 | 4.3661 | 0.0 | 0.0 | 1.0 |
|
| 67 |
+
| 5.1259 | 0.7467 | 0.0 | 4.6006 | 0.4576 | 3.1823 | 0.6949 | 4.3350 | 0.0 | 0.0 | 1.0 |
|
| 68 |
+
| 5.0424 | 0.8533 | 0.0 | 4.5181 | 0.4491 | 3.1132 | 0.6925 | 4.2550 | 0.0 | 0.0 | 1.0 |
|
| 69 |
+
| 5.0018 | 0.96 | 0.0 | 4.4694 | 0.4423 | 3.0654 | 0.6938 | 4.2017 | 0.0 | 0.0 | 1.0 |
|
| 70 |
+
| 4.9924 | 1.0 | 0.0 | 4.4649 | 0.4412 | 3.0587 | 0.6946 | 4.1947 | 0.0 | 0.0 | 1.0 |
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
### Framework versions
|
| 74 |
+
|
| 75 |
+
- Transformers 5.14.1
|
| 76 |
+
- Pytorch 2.13.0+cu132
|
| 77 |
+
- Datasets 5.0.1
|
| 78 |
+
- Tokenizers 0.22.2
|
chat_template.jinja
CHANGED
|
@@ -1,8 +1,62 @@
|
|
| 1 |
{{- bos_token -}}
|
| 2 |
-
{%- set
|
| 3 |
-
|
| 4 |
-
{%-
|
| 5 |
-
{%-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
{%- set messages = messages[1:] -%}
|
| 7 |
{%- endif -%}
|
| 8 |
{%- if tools -%}
|
|
@@ -21,25 +75,51 @@
|
|
| 21 |
{%- if ns.system_prompt -%}
|
| 22 |
{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
|
| 23 |
{%- endif -%}
|
| 24 |
-
{%- set ns.last_assistant_index = -1 -%}
|
| 25 |
{%- for message in messages -%}
|
| 26 |
{%- if message["role"] == "assistant" -%}
|
| 27 |
{%- set ns.last_assistant_index = loop.index0 -%}
|
| 28 |
{%- endif -%}
|
| 29 |
{%- endfor -%}
|
| 30 |
{%- for message in messages -%}
|
| 31 |
-
{{- "<|im_start|>" + message
|
| 32 |
-
{%-
|
| 33 |
-
|
| 34 |
-
{%- set
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
{%- if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
{%- set content = content.split("</think>")[-1] | trim -%}
|
| 39 |
{%- endif -%}
|
| 40 |
-
|
| 41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
{%- endfor -%}
|
| 43 |
{%- if add_generation_prompt -%}
|
| 44 |
{{- "<|im_start|>assistant\n" -}}
|
| 45 |
-
{%- endif -%}
|
|
|
|
| 1 |
{{- bos_token -}}
|
| 2 |
+
{%- set preserve_thinking = preserve_thinking | default(keep_past_thinking | default(false)) -%}
|
| 3 |
+
|
| 4 |
+
{%- macro format_arg_value(arg_value) -%}
|
| 5 |
+
{%- if arg_value is string -%}
|
| 6 |
+
{{- "'" + (arg_value | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") | replace("\r", "\\r")) + "'" -}}
|
| 7 |
+
{%- elif arg_value is mapping or arg_value is iterable -%}
|
| 8 |
+
{{- arg_value | tojson -}}
|
| 9 |
+
{%- else -%}
|
| 10 |
+
{{- arg_value | string -}}
|
| 11 |
+
{%- endif -%}
|
| 12 |
+
{%- endmacro -%}
|
| 13 |
+
|
| 14 |
+
{%- macro parse_content(content) -%}
|
| 15 |
+
{%- if content is string -%}
|
| 16 |
+
{{- content -}}
|
| 17 |
+
{%- elif content is mapping -%}
|
| 18 |
+
{{- content | tojson -}}
|
| 19 |
+
{%- elif content is iterable -%}
|
| 20 |
+
{%- set _ns = namespace(result="") -%}
|
| 21 |
+
{%- for item in content -%}
|
| 22 |
+
{%- if item is string -%}
|
| 23 |
+
{%- set _ns.result = _ns.result + item -%}
|
| 24 |
+
{%- elif item is mapping and item.get("type") == "image" -%}
|
| 25 |
+
{%- set _ns.result = _ns.result + "<image>" -%}
|
| 26 |
+
{%- elif item is mapping and item.get("type") == "text" -%}
|
| 27 |
+
{%- set _ns.result = _ns.result + ((item.get("text") or "") | string) -%}
|
| 28 |
+
{%- else -%}
|
| 29 |
+
{%- set _ns.result = _ns.result + (item | tojson) -%}
|
| 30 |
+
{%- endif -%}
|
| 31 |
+
{%- endfor -%}
|
| 32 |
+
{{- _ns.result -}}
|
| 33 |
+
{%- endif -%}
|
| 34 |
+
{%- endmacro -%}
|
| 35 |
+
|
| 36 |
+
{%- macro render_tool_calls(tool_calls) -%}
|
| 37 |
+
{%- set tool_calls_ns = namespace(tool_calls=[]) -%}
|
| 38 |
+
{%- for tool_call in tool_calls -%}
|
| 39 |
+
{%- set func = tool_call["function"] if "function" in tool_call else tool_call -%}
|
| 40 |
+
{%- set func_name = func["name"] -%}
|
| 41 |
+
{%- set func_args = func.get("arguments") -%}
|
| 42 |
+
{%- set args_ns = namespace(arg_strings=[]) -%}
|
| 43 |
+
{%- if func_args is mapping -%}
|
| 44 |
+
{%- for arg_name, arg_value in func_args.items() -%}
|
| 45 |
+
{%- set args_ns.arg_strings = args_ns.arg_strings + [arg_name + "=" + format_arg_value(arg_value)] -%}
|
| 46 |
+
{%- endfor -%}
|
| 47 |
+
{%- elif func_args is string and (func_args | trim) not in ["", "{}", "null"] -%}
|
| 48 |
+
{{- raise_exception("Tool call arguments must be a mapping, got a JSON-encoded string: parse arguments with json.loads() before applying the chat template") -}}
|
| 49 |
+
{%- endif -%}
|
| 50 |
+
{%- set tool_calls_ns.tool_calls = tool_calls_ns.tool_calls + [func_name + "(" + (args_ns.arg_strings | join(", ")) + ")"] -%}
|
| 51 |
+
{%- endfor -%}
|
| 52 |
+
{{- "<|tool_call_start|>[" + (tool_calls_ns.tool_calls | join(", ")) + "]<|tool_call_end|>" -}}
|
| 53 |
+
{%- endmacro -%}
|
| 54 |
+
|
| 55 |
+
{%- set ns = namespace(system_prompt="", last_assistant_index=-1) -%}
|
| 56 |
+
{%- if messages and messages[0]["role"] == "system" -%}
|
| 57 |
+
{%- if messages[0].get("content") -%}
|
| 58 |
+
{%- set ns.system_prompt = parse_content(messages[0]["content"]) -%}
|
| 59 |
+
{%- endif -%}
|
| 60 |
{%- set messages = messages[1:] -%}
|
| 61 |
{%- endif -%}
|
| 62 |
{%- if tools -%}
|
|
|
|
| 75 |
{%- if ns.system_prompt -%}
|
| 76 |
{{- "<|im_start|>system\n" + ns.system_prompt + "<|im_end|>\n" -}}
|
| 77 |
{%- endif -%}
|
|
|
|
| 78 |
{%- for message in messages -%}
|
| 79 |
{%- if message["role"] == "assistant" -%}
|
| 80 |
{%- set ns.last_assistant_index = loop.index0 -%}
|
| 81 |
{%- endif -%}
|
| 82 |
{%- endfor -%}
|
| 83 |
{%- for message in messages -%}
|
| 84 |
+
{{- "<|im_start|>" + message.role + "\n" -}}
|
| 85 |
+
{%- if message.role == "assistant" -%}
|
| 86 |
+
{%- generation -%}
|
| 87 |
+
{%- set keep_thinking = preserve_thinking or loop.index0 == ns.last_assistant_index -%}
|
| 88 |
+
{%- set thinking = message.thinking or message.reasoning or message.reasoning_content -%}
|
| 89 |
+
{%- set thinking = thinking if thinking is string else "" -%}
|
| 90 |
+
{%- if thinking and keep_thinking -%}
|
| 91 |
+
{{- "<think>" + thinking + "</think>" -}}
|
| 92 |
+
{%- endif -%}
|
| 93 |
+
{%- set _cfm_tag = "CONTINUE_FINAL_MESSAGE_TAG " -%}
|
| 94 |
+
{%- set _has_cfm = false -%}
|
| 95 |
+
{%- set content = "" -%}
|
| 96 |
+
{%- if message.get("content") -%}
|
| 97 |
+
{%- set content = parse_content(message.content) -%}
|
| 98 |
+
{%- endif -%}
|
| 99 |
+
{%- if not keep_thinking and "</think>" in content -%}
|
| 100 |
{%- set content = content.split("</think>")[-1] | trim -%}
|
| 101 |
{%- endif -%}
|
| 102 |
+
{%- if content.endswith(_cfm_tag) -%}
|
| 103 |
+
{%- set _has_cfm = true -%}
|
| 104 |
+
{%- set _trunc_len = (content | length) - (_cfm_tag | length) -%}
|
| 105 |
+
{%- set content = content[:_trunc_len] -%}
|
| 106 |
+
{%- endif -%}
|
| 107 |
+
{{- content -}}
|
| 108 |
+
{%- if message.tool_calls -%}
|
| 109 |
+
{{- render_tool_calls(message.tool_calls) -}}
|
| 110 |
+
{%- endif -%}
|
| 111 |
+
{%- if _has_cfm -%}
|
| 112 |
+
{{- _cfm_tag -}}
|
| 113 |
+
{%- endif -%}
|
| 114 |
+
{{- "<|im_end|>\n" -}}
|
| 115 |
+
{%- endgeneration -%}
|
| 116 |
+
{%- else %}
|
| 117 |
+
{%- if message.get("content") -%}
|
| 118 |
+
{{- parse_content(message["content"]) -}}
|
| 119 |
+
{%- endif -%}
|
| 120 |
+
{{- "<|im_end|>\n" -}}
|
| 121 |
+
{%- endif %}
|
| 122 |
{%- endfor -%}
|
| 123 |
{%- if add_generation_prompt -%}
|
| 124 |
{{- "<|im_start|>assistant\n" -}}
|
| 125 |
+
{%- endif -%}
|
config.json
CHANGED
|
@@ -115,7 +115,7 @@
|
|
| 115 |
"use_gpas": false,
|
| 116 |
"use_hadamard_o_proj": true,
|
| 117 |
"use_hola_memory": false,
|
| 118 |
-
"use_iha":
|
| 119 |
"use_jtokm": false,
|
| 120 |
"use_laurel": false,
|
| 121 |
"use_laurel_lr": false,
|
|
|
|
| 115 |
"use_gpas": false,
|
| 116 |
"use_hadamard_o_proj": true,
|
| 117 |
"use_hola_memory": false,
|
| 118 |
+
"use_iha": true,
|
| 119 |
"use_jtokm": false,
|
| 120 |
"use_laurel": false,
|
| 121 |
"use_laurel_lr": false,
|
model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dc341c0eba26a4647130dd922a0b576238e3e9468743b59a8c5591dc106d72d4
|
| 3 |
+
size 240725312
|
training_args.bin
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 5329
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d6b3422a00223f1ca0db6b5d2482e74cf3330036e2674be31a69eb69a0494234
|
| 3 |
size 5329
|