Downloads · 30 days
0
guestros/s2-moe-checkpoints
s2-moe-checkpoints is a machine learning model from guestros. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Trained weights behind the paper Evolving Sparse Spiking Mixture-of-Experts (S²-MoE).
Downloads · 30 days
0
Access
Public
Updated Jul 17, 2026
Repo size
1.7 GB
Likes
1
Public
Click a slice to open those files.
.pt1.7 GB · 100%
From the Hugging Face model README
Trained weights behind the paper Evolving Sparse Spiking Mixture-of-Experts (S²-MoE).
⚠️ These are research artifacts, not a deployable language model. They are small (25M–150M params), trained on TinyStories / FineWeb-Edu, and exist to reproduce the paper's experiments — not to generate good text. They are not
transformers-compatible: loading them requires the custom model code in the GitHub repository (custom LIF spiking neurons, a gated-linear-attention mixer, and a grouped-GEMM expert kernel). The checkpoint blobs store weights only (optimizer stripped) and do not store the config — use the exactModelConfigdocumented per file below.
| File | Backs | Params (total / ~active) | ModelConfig |
|---|---|---|---|
student_n8.pt | Routing demo + n-expert sweep (Exp 6/7) | 49M / ~25M | d_model=512, d_hidden=512, n_layers=4, n_experts=8, d_shared=256 |
student_n32_fineweb.pt | Headline: distilled MoE beats its dense teacher −5% at ~1/21 active FFN compute (Exp 28) | 150M / ~28M | d_model=512, d_hidden=512, n_layers=4, n_experts=32, d_shared=256 |
teacher_n32_fineweb.pt | The size-matched dense teacher the n=32 student is compared to (Exp 28) | 82M | DenseLM, d_model=512, d_ff=16384, n_layers=4 (see src/baseline.py) |
pool_128grow.pt | Autonomous growth: sleep phase grew the pool to 128 experts (Exp 58) | 151M / ~26M | d_model=512, d_hidden=128, n_layers=4, n_experts=128, d_shared=256 |
All use mixer="gla", n_heads=4, vocab_size=8192 (byte-level BPE, data/fineweb-bpe.json in
the repo). "Active" params ≈ the Top-1 routed slice (one expert of the pool) plus the always-on
shared core — that sparsity is the whole point.
# in a clone of https://github.com/JustinGuese/S3-MoE-llm
import torch
from src.backbone import ModelConfig, S2MoE
cfg = ModelConfig(vocab_size=8192, d_model=512, d_hidden=512, n_layers=4,
n_experts=32, d_shared=256, mixer="gla", n_heads=4, dispatch="loop")
model = S2MoE(cfg)
model.load_state_dict(torch.load("student_n32_fineweb.pt", map_location="cpu")["model"],
strict=False)
model.eval()
The dense teacher loads via src.baseline.DenseLM instead. To reproduce the paper numbers, use
train_lm.py / eval_140m.py in the repo. An interactive demo of the routing and energy behaviour
is at https://huggingface.co/spaces/guestros/s2-moe-demo.
The efficiency result (less active compute per token) is shape-determined and robust; the quality
edge is budget- and corpus-dependent and holds in a distilled setup at this scale — it can
reverse on harder data at a larger token budget. See the repo's README.md, RESEARCH.md, and the
negative-results catalog (eight tombstones) for the full, honest picture.