CoolFace
Modelpublic

mlnomad/yatnmn-softplus-ca-d12-chinchilla-261M-pytorch

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes36downloads
Model Card

YatNMN-Softplus + constant α=1 d=12 Chinchilla (261M) — PyTorch

A 261M-parameter nanochat-architecture GPT with YatNMN-Softplus MLP where α is fixed at 1 (non-learnable). This is the α ablation — testing whether the learnable per-layer scaling in YatNMN is load-bearing.

Result: learnable α is critical. Fixing α=1 costs +0.12 nats on C4 and the model generalizes much worse on wikitext (PPL 67 vs 40).

Ablation table (d=12, 261M, Chinchilla 20×, 3-seed mean)

VariantC4 smoothwikitext PPLvs GELU
YatNMN per-neuron + learnable α2.9840.15−0.14
YatNMN scalar_bias + learnable α3.0639.53−0.06
YatNMN per-neuron + constant α=1 (this)3.1067.09−0.02
YatNMN sb + constant α=13.0978.34−0.03
GELU3.1246.52baseline

Quick start

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "mlnomad/yatnmn-softplus-ca-d12-chinchilla-261M-pytorch",
    trust_remote_code=True, dtype=torch.float32,
).eval()
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1")

ids = tokenizer("The meaning of life is", return_tensors="pt").input_ids
with torch.no_grad():
    out = model.generate(ids, max_new_tokens=50, do_sample=False,
                         use_cache=True, pad_token_id=tokenizer.eos_token_id or 0)
print(tokenizer.decode(out[0], skip_special_tokens=True))

Config

Per-neuron (ff,) bias + softplusbias + learnableepsilon + constant_alpha=True (α=1 fixed).

Parameters261,133,214
Final smooth loss3.08 (3-seed mean 3.10 ± 0.02)
Wikitext-103 PPL67.09
Training dataallenai/c4, 5.22 B tokens (Chinchilla 20×)
HardwareTPU v6e-8, europe-west4-a

Related

License

Apache 2.0.