Views
No views yet
| Parameters | 27,795,968 |
| Total bytes (packed, spec §6) | 55,574,528 (53.00 MiB) |
| Layers / width / heads | 8 / 512 / 8 |
| Context | 512 |
| Vocab | 4,096 (custom BPE, ByteLevel) |
| In-block linear weights | fp16 (2 bytes/weight) |
| Embeddings / LM head (tied) | fp16 |
| Seeds | 0, 1 (both published, see below) |
| Training tokens | 500M |
model.safetensors (fp16). Ternary in-block linears are stored
dequantized — scale * {-1,0,+1} already materialized in fp16 — so both arms load
into the same fp16 model class.1from safetensors.torch import load_file
2from nanofable.config import TIERS
3from nanofable.model import build_model
4from nanofable.tokenizer import load_tokenizer
5from nanofable.generate import generate
6
7model = build_model(TIERS["large"], "fp16")
8model.load_state_dict(load_file("model.safetensors"), strict=False) # lm_head re-ties to tok_emb
9model.eval()
10
11tok = load_tokenizer("tokenizer.json")
12print(generate(model, tok, "Once upon a time", temperature=1e-4, top_k=0))model.safetensors # seed 1 — the weights this card describes
config.json
model.tpack # packed browser payload (what the demo site streams)
meta.json eval.json metrics.csv
tokenizer.json # 4,096-vocab custom BPE
seed0/ # second training replica, same files| seed 0 | seed 1 (root) | |
|---|---|---|
| Val PPL | 5.94 | 5.39 |
| Judge (0-5, n=200) | 3.103 [2.97, 3.23] | 3.108 [2.98, 3.24] |
model.tpack is the packed browser payload (pack format v1), fp16 throughout. This is
the artifact the byte accounting above refers to, and the one the demo site streams for
in-browser inference. It carries the same weights as model.safetensors, in the container
the browser runtime reads.