Downloads · 30 days
23
5% of all-time downloads
bugkira-ai/babylm-paranlru-19m
babylm-paranlru-19m is a text generation model from bugkira-ai. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as mit.
18.8M causal LM with ParaNLRU (Griffin / RG-LRU-style diagonal nonlinear slot) under BabyLM 2026 Strict-Small (~10M words). Same 6×384 SwiGLU residual stack as the other ParaRNN BabyLM arms; the cell is lighter (~half…
Downloads · 30 days
23
5% of all-time downloads
All-time downloads
427
Public
Parameters
24.9M
199 MB on disk
Likes
0
Public
Click a slice to open those files.
.bin99.7 MB · 50%
From the Hugging Face model README
18.8M causal LM with ParaNLRU (Griffin / RG-LRU-style diagonal nonlinear slot) under BabyLM 2026 Strict-Small (~10M words). Same 6×384 SwiGLU residual stack as the other ParaRNN BabyLM arms; the cell is lighter (~half the recurrent params of diag sLSTM) and trains ~2.5× faster on the same GPU.
Report PPL 95.9 after 3 epochs (~12.3 min on one RTX 2080 Ti, ~54.7k tok/s, peak 3.76 GiB). Zero-shot: BLiMP 62.45 (GPT-2 Strict-Small 65.23; ParaSLSTM 62.81).
Library: bugkira/pararnn-torch · Sisters: babylm-paralstm-20m, babylm-paragru-20m, babylm-paraslstm-20m · Paper: ParaRNN, arXiv:2510.21450
| Architecture | 6× pre-LN blocks · ParaNLRU (jac_structure=diag, fused Newton) · SwiGLU MLP |
| Width | d_model=384, mlp_mult=4 |
| Parameters | 18 764 544 |
| Vocab | 16 000 BPE (ByteLevel), trained on Strict-Small |
| Context | T=512 absolute positions |
| Dtype (train) | float32 |
| Solver | Newton K=3, Picard P=0 (Picard warm-start is ParaSLSTM / ParaM2RNN only), max_recurrent_norm=0.5 |
| Checkpoint tag | nlru_shuf_ep3 |
Cell recurrence (library ParaNLRU):
[ a_t=\sigma(W_a x_t),\quad h_t = a_t\odot h_{t-1} + (1-a_t)\odot\tanh(W_c x_t + u\odot h_{t-1}). ]
T=512 rows (19 275 train rows).lr=6e-4, cosine over 1809 steps, warmup 50, β=(0.9, 0.95), wd=0.01, grad clip 1.0.| GPU | 1× NVIDIA GeForce RTX 2080 Ti (Turing, CC 7.5) |
| Wall clock | 2026-09-08 03:29:31 → 03:41:46 (≈12.3 min, ≈0.20 GPU-h) |
| Steady throughput | ≈54 667 tok/s (mean; step ≈299 ms) |
| Peak VRAM | 3.76 GiB |
| Watchdog | 0 residual hits · 0 skipped divergent steps |


Report val PPL (256 packed sequences):
| Step | Epoch end | Report PPL |
|---|---|---|
| 50 | — | 1042.04 |
| 603 | 1 | 132.11 |
| 1206 | 2 | 99.84 |
| 1809 | 3 | 95.94 |
Matched ParaSLSTM (diag_fused_shuf_ep3) finished at 102.17 report PPL on the same recipe.
Official pipeline: babylm-org/babylm-eval · backend causal · temperature 1.0.
| Task | ParaNLRU | ParaSLSTM | GPT-2 Strict-Small |
|---|---|---|---|
| BLiMP | 62.45 | 62.81 | 65.23 |
| BLiMP Supplement | 57.66 | 55.70 | 57.25 |
| EWoK | 50.18 (fast) | 47.36 (fast) | 50.63 (full) |
| Entity Tracking | 18.15 | 17.36 | 19.10 |
| COMPS | 50.32 | 50.79 | 51.81 |

Reading (human-likeness): eye-tracking score 0.56, self-paced reading 0.00.
Not included: GlobalPIQA, full EWoK (gated), SuperGLUE finetune, AoA.
Matched BabyLM cell-zoo arm for ParaNLRU fused Newton. Small English LM under the Strict-Small budget. Out of scope: chat, long context, multilingual tracks.
Requires pararnn-torch and transformers with trust_remote_code=True.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "bugkira-ai/babylm-paranlru-19m"
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True)
model.eval()
ids = tok("The cat sat on the mat.", return_tensors="pt").input_ids
with torch.no_grad():
logits = model(input_ids=ids).logits
gen = model.generate(ids, max_new_tokens=16, do_sample=False)
print(logits.shape) # [1, T, 16000]
print(tok.decode(gen[0], skip_special_tokens=True))
Local export:
uv run --extra lm --with transformers python scripts/export_babylm_hf.py \
--config configs/train/babylm_nlru.yaml \
--ckpt checkpoints/babylm/nlru_shuf_ep3.pt \
--out checkpoints/babylm/hf_nlru_shuf_ep3 \
--cell_type nlru
uv run --extra lm --extra train python scripts/train_babylm.py \
--config configs/train/babylm_nlru.yaml \
--cell_type nlru --epochs 3 --gpu 2080
bash scripts/run_babylm_zeroshot.sh checkpoints/babylm/hf_nlru_shuf_ep3 1
Config: configs/train/babylm_nlru.yaml.
Train log: outputs/babylm_nlru_ep3_2080.log.
Metrics: results/babylm_nlru_shuf_ep3.json, results/babylm_zeroshot_nlru_shuf_ep3.json.
@inproceedings{danieli2026pararnn,
title = {{ParaRNN}: Unlocking Parallel Computation in Nonlinear RNNs
through Symbolic Algebra},
author = {Federico Danieli and Miguel Sarabia and Aviv Navon and
Amos Storkey and Aaron van den Oord},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2026},
note = {Oral. arXiv:2510.21450},
url = {https://arxiv.org/abs/2510.21450}
}
@misc{choshen2026babylm,
title = {BabyLM Turns 4 and Goes Multilingual},
year = {2026},
eprint = {2602.20092},
archivePrefix = {arXiv}
}
Griffin / RG-LRU lineage: De et al., Griffin (2024). This release is our ParaRNN-compatible diagonal nonlinear slot, trained under BabyLM Strict-Small.
MIT for these weights and this card. BabyLM eval data and baselines keep their upstream licenses.