Download README.md from Compactbot/ldt-10m: direct link, hf CLI and curl.
- Browser
- Download file 3.53 kB
-
https://huggingface.co/Compactbot/ldt-10m/resolve/refs%2Fpr%2F8/README.md
- Command line
-
hf download hf://Compactbot/ldt-10m@refs/pr/8/README.md
-
curl -L -o README.md https://huggingface.co/Compactbot/ldt-10m/resolve/refs%2Fpr%2F8/README.md
license: mit
pipeline_tag: text-generation
language: en
library_name: transformers
tags:
- tiny
- tiny-model
- slm
- small-language-model
- sub-10m
- llama
- from-scratch
metrics:
- perplexity
LDT-10M
A 10,284,480-parameter LLaMA-style text model, trained from scratch. This is a verified first checkpoint for the LDT-10M request (model-requests #12, DedeProGames) — real weights, real training, but undertrained (see the honest status below). It is not a quality release yet; the card states that plainly.
Architecture
Standard LLaMA block, no sliding window, no GQA:
| field | value |
|---|---|
| params (learnable) | 10,284,480 |
| layers | 5 |
| d_model | 320 |
| heads | 5 (head_dim 64) |
| FFN | SwiGLU, inter 896 |
| vocab | 12,288 (gollem byte-level BPE) |
| context | 512 |
| embeddings | tied (lm_head → tok.weight) |
| norm | RMSNorm, pre-norm |
| attention | causal, RoPE (base 10000) |
The parameter count is the learnable total: the raw safetensors sum is 14,216,640,
which double-counts the tied embedding (tok.weight 12288×320 = 3,932,160) that
head.weight aliases. Tied, the true count is 10,284,480.
Training
- Data: FineWeb-Edu (
30.1M tokens) + DCLM-baseline (21.4M tokens) = ~50.5M tokens. - Steps: 4000 (the requested 2.6B-token budget is not met — see below).
- Final val loss: 4.6020 (ppl 99.68) on the held-out split.
- Trained from scratch (no base model).
Honest status: undertrained, not broken
The model learned real context — val loss 4.602 is well below the 7.38 unigram floor, so it is not flatlined and not degenerate. But it has seen only ~50.5M tokens ≈ 4.9 tokens/param, far below the ~10–20+ tok/param small models typically need for coherent prose. The result is grammatical but semantically thin: wordy, repetitive, and it drifts off-topic mid-sentence.
Real samples (best.pt, step 4000, temp 0.8, top-k 40) — no broken tokens, no token-loops:
"The sun is" → "The sun is assembled by a new study because he is an associate of the study of the disease in the early years. I've been interested in having a very different study…"
"Once upon a time" → "Once upon a time, she is an attack. But he is not a good idea. But it is something that does not have a moment of his own life…"
"The cat sat on the" → "The cat sat on the ground. The sunp is a piece of light and is not a good deal of tear. The new story of the MD's Ford…"
"def hello():" → "def hello(): I have a lot of the best. I'm not sure what happened to me. I'll be able to do anything, but I think it's been just a lot to say…"
What this is: a verified, non-degenerate 10M checkpoint that learned grammar and surface fluency. What it is not: a coherent prose model. It is a first milestone on the path to the requested 2.6B-token model, not the destination.
Loading
Self-contained model.py (no transformers dependency required):
import torch
from model import LDT
m = LDT.from_pretrained("model.safetensors", device="cpu")
ids = torch.tensor([[1, 2, 3]]) # token ids
out = m.generate(ids, max_new_tokens=64, temperature=0.8, top_k=40, seed=0)
The tokenizer is a byte-level BPE (tokenizer.json, vocab 12288).
Roadmap
Continuing training toward the 2.6B-token budget is the next step; this repo will be updated (or a v2 published) once the model is coherent. This checkpoint is kept public as an honest intermediate, not a finished model.