Model reference · open weights
Ethoric is an open-weight language model from techdotus. Ethoric-10M (FP32) weighs 20 MB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the techdotus/Ethoric-10M model card, 2026-10-29
What it is
| Released by | techdotus |
|---|---|
| Released | 2026-10-26 |
| Parameters | 10M |
| VRAM | 20 MB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 512 each | |||
| RTX 3060 12 GB | 1000+ | all 512 | 11.6 GB |
| RTX 4060 Ti 16 GB | 1000+ | all 512 | 15.4 GB |
| RTX 3090 24 GB | 1000+ | all 512 | 23.4 GB |
| RTX 4090 24 GB | 1000+ | all 512 | 23.4 GB |
| RTX 5090 32 GB | 1000+ | all 512 | 31.0 GB |
| L40S 48 GB | 1000+ | all 512 | 44.0 GB |
| A100 80 GB | 1000+ | all 512 | 78.2 GB |
| H100 80 GB | 1000+ | all 512 | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 1000+ | all 512 | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 1000+ | all 512 | 107 GB |
| H200 141 GB | 1000+ | all 512 | 138 GB |
| B200 180 GB | 1000+ | all 512 | 176 GB |
| Requests at once | 512 tokens each |
|---|---|
| 1 | 466 MB |
| 5 | 473 MB |
| 8 | 477 MB |
| 16 | 490 MB |
| 32 | 515 MB |
| 64 | 565 MB |
One card, with vLLM's small-card settings.
From the model card
Ethoric-10M is a decoder-only small language model with 9.97M parameters. It is built on a modern transformer foundation of RoPE, grouped-query attention and SwiGLU, and adds four changes on top. Peri-LN normalization applies RMSNorm both before and after every sublayer to keep training stable. Canon layers are short causal depthwise convolutions that mix each token with its 3 previous tokens before attention and before the MLP. Per-head QK-norm normalizes the queries and keys in each attention head, and a headwise sigmoid gate lets each head control how much of its output passes through. The model was trained on 15B tokens, followed by a 4B-token cooldown.
| Parameter | Value |
|---|---|
| Architecture | Decoder-only transformer (RMSNorm, RoPE, GQA, SwiGLU) |
| Layers | 12 |
| Hidden size (d_model) | 256 |
| Attention heads | 8 |
| KV heads (GQA) | 2 |
| Head dim | 32 |
| FFN intermediate size | 721 |
| Normalization | Peri-LN (RMSNorm, ε = 1e-5) + per-head QK-norm |
| Attention gate | Headwise sigmoid gate |
| Canon layers | Causal depthwise conv, kernel 4 (before attention and MLP) |
| Local attention | 16-token window in layer 0; full causal in layers 1–11 |
| RoPE theta | 10,000 |
| Max sequence length | 512 |
| Vocabulary size | 5,048 |
| Tie word embeddings | Yes |
| Precision | FP32 weights |
| Parameters | 9.97M |
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "techdotus/Ethoric-10M"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True).eval()
ids = tok("The climate change", return_tensors="pt").input_ids
with torch.no_grad():
out = model.generate(ids, max_new_tokens=32, do_sample=False,
eos_token_id=1) # greedy
print(tok.decode(out[0], skip_special_tokens=True))
The model's custom generate() supports greedy decoding and top-k sampling (do_sample=True, temperature, top_k). Other options such as repetition_penalty are ignored. Prompt plus generated tokens must stay within 512 tokens.
All scores are 0-shot acc_norm, using the Open SLM Leaderboard methodology.
| HellaSwag | ARC-Easy | ARC-Challenge | PIQA | ArithMark-3 |
|---|---|---|---|---|
| 28.75% | 37.58% | 24.66% | 59.85% | 41.60% |
All scores are 0-shot acc_norm, using the Open SLM Leaderboard methodology. Scores for the other models are from the Open SLM Leaderboard. Bold marks the best result in each column.
| Model | Params | Int Index | HellaSwag | ARC-Easy | ARC-Chal | PIQA | ArithMark-3 |
|---|---|---|---|---|---|---|---|
| Ethoric-10M (Tech.us) | 9.97M | 12.94 | 28.75% | 37.58% | 24.66% | 59.85% | 41.60% |
| ForgePlex-M2.2-10M | 9.99M | 12.12 | 29.19% | 39.77% | 22.70% | 59.79% | 37.40% |
| heron1i-flash-lite-v2 | 9.92M | 11.11 | 28.86% | 38.89% | 23.38% | 58.54% | 36.70% |
| min-spark-1.6 | 9.96M×4* | 11.08 | 28.52% | 38.30% | 22.44% | 59.14% | 36.90% |
Ethoric-10M was trained in two stages.
| Stage | Tokens | Focus |
|---|---|---|
| Stable | 15B | Broad mix of educational web text, synthetic textbooks, question-answer data and math |
| Cooldown | 4B | Learning rate decayed; mix shifted toward higher-quality math, QA and tutorial-style text |
Training packs multiple documents into each 512-token sequence. Document masking keeps them separate: attention and Canon convolutions never reach across an EOS token.
The cooldown added new math sources such as FineMath, more question-answer and tutorial-style text such as FinePhrase, ELI5 and GooAQ, and dropped Tiny Strange Textbooks, High-Quality English Sentences and ScienceQA.
| Source | Stage 1 | Stage 2 |
|---|---|---|
| FineWeb-Edu | 35% | 25% |
| TxT360-v2 | 20% | 21% |
| Cosmopedia | 19.5% | 17% |
| Tiny Strange Textbooks | 11% | 0% |
| OpenMathInstruct-2 | 11% | 7% |
| High-Quality English Sentences | 2% | 0% |
| ScienceQA | 1.0% | 0% |
| Orca-Math Word Problems 200k | 0.5% | 5% |
| FineMath | 0% | 11% |
| FinePhrase | 0% | 11% |
| Miscellaneous† | 0% | 3% |
† ELI5, GooAQ, FactBase-DCLM, Cosmopedia-v2, Natural Questions, Pretrain-Behaviors, UltraData-Math
MIT
@misc{ethoric10m2026,
title = {{Ethoric-10M}: A Small Language Model with Stabilized,
Gated Attention},
author = {{Tech.us Team}},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/techdotus/Ethoric-10M}}
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Benchmarks
As published on the model card: the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| text-generation | ARC-Easy | acc_norm (0-shot) | 37.580 |
| text-generation | ARC-Challenge | acc_norm (0-shot) | 24.660 |
| text-generation | HellaSwag | acc_norm (0-shot) | 28.750 |
| text-generation | PIQA | acc_norm (0-shot) | 59.850 |
| text-generation | ArithMark-3 | acc_norm (0-shot) | 41.600 |