Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

testr-100k

by Compactbot Compactbot/testr-100k

testr-100k is an open-weight model for text generation from Compactbot, released under Apache License 2.0. It has 106,568 parameters. At 16-bit it needs about 0 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

A 100,936-parameter character-level GPT trained from scratch. Fulfils model request #17 from @GGUFGuy. A minimal nanoGPT-style causal transformer operating at the character level (128-char vocabulary).

Parameters106,568
Context—
Weights430.6 KB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve testr-100k (106,568 parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.0 GB 0.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

testr-100k on every accelerator the SAVRN Index prices, at every precision

Model Card

By Compactbot, published under apache-2.0, revision b3bc31fc8156.

A 100,936-parameter character-level GPT trained from scratch. Fulfils model request #17 from @GGUFGuy. A minimal nanoGPT-style causal transformer operating at the character level (128-char vocabulary). The point of this specific model is a memorization experiment: train a very small model on a held-out validation set and measure how much it actually memorizes versus generalizing. (52 tensors in the file; the head is tied to the embedding, so counting it once gives 100,936. The earlier "106,568" double-counted the tied head.) The question: does a 100K-parameter model trained only on a 19 MB validation set actually memorize it, or does it just learn character statistics? Measured perplexity…

Read Compactbot's full model card

A 100,936-parameter character-level GPT trained from scratch. Fulfils model request #17 from @GGUFGuy.

Correction (2026-09-30): the weights originally published here were trained on the wrong data (191 MB of web text). The request asked for a model trained only on the TinyStories validation set, as a deliberate memorization test. This commit swaps in the correct model (trained on the 19.2 MB TinyStories validation set) and fixes the parameter count (106,568 → 100,936; the earlier figure double-counted the tied head). The eval numbers below are from the correct model.

What it is

A minimal nanoGPT-style causal transformer operating at the character level (128-char vocabulary). The point of this specific model is a memorization experiment: train a very small model on a held-out validation set and measure how much it actually memorizes versus generalizing.

Architecture

Parameter Value
Layers 4
Embedding dim 44
Attention heads 2
Context length 512 chars
FFN GELU, mult 2.667
Positional encoding RoPE (θ=100000)
Normalization LayerNorm (pre-norm)
Vocab 128 chars + 1 UNK
Tied embeddings Yes (head = embedding)
Total params (unique) 100,936

(52 tensors in the file; the head is tied to the embedding, so counting it once gives 100,936. The earlier "106,568" double-counted the tied head.)

Training

  • Data: 19.2 MB TinyStories validation set (character-level, uint8) — deliberately the set the request asked to train on
  • Steps: 8,000
  • Batch size: 32 × seq 512
  • Optimizer: Muon (0.02) + AdamW (1e-4) for biases/norms
  • Schedule: Cosine decay with warmup
  • Hardware: RTX 5090 (32 GB)
  • dtype: float32

The experiment (honest result)

The question: does a 100K-parameter model trained only on a 19 MB validation set actually memorize it, or does it just learn character statistics?

Measured perplexity (char-level, 512-char blocks, 20 random windows, seed 1337):

Set Size Perplexity
Memorized (the 19.2 MB set it trained on) 19,212,307 B 3.1540
Never seen (191 MB web text) 191,283,131 B 3.2203

Ratio (never-seen / memorized) = 1.02×. At 100K parameters the model barely memorizes the set it was trained on — its perplexity on the memorized data is only 2% lower than on data it never saw. It has essentially learned general English character statistics, not the specific stories. That is the honest answer to the request: a 100K-param char model is far too small to memorize 19 MB of text.

Sample outputs (greedy, temp=0)

Once upon a time → , there was a little girl named Lily. She liked to play with her mom and said, "I want to the bird was so happy and said

The sun was → so happy and said, "I want to the boy named Lily. They were so happy and said, "I want to the ball and said, "I want to

Sample outputs (temp=0.8)

A little → girl named Spot around of friends.\nOnce upon a time, there was a praye was so like in room that it was angry, the sweet

The first sentence or two is often grammatical; after that the model locks into a phrase and repeats it. Expected at this scale and vocabulary size.

What it is NOT

  • Not a subword/token-level model (it cannot "read" word-level benchmarks like BLiMP or ARC)
  • Not a coherent paragraph generator
  • Not evidence of memorization at this scale (see ratio above)

Reproducing

Standard nanoGPT-style causal transformer with Muon optimizer. The checkpoint is saved as safetensors with tied embeddings (the file stores tok.weight and an identical head.weight; they are the same tensor).

To generate: load model.safetensors into a GPT class matching config.json, map characters to token IDs via vocab.json, and sample.

Files

File Description
model.safetensors Model weights (431 KB, 52 tensors, tied head)
config.json Architecture config
vocab.json Character → token ID mapping (128 chars + UNK)

Configuration

Architecture
GPT
Vocabulary size
128
RoPE base
100000

Identity and Version

Repository
Compactbot/testr-100k
Publisher
Compactbot
Task
Text generation
Modality
Text
Library
Not stated by the source
Parameters
106,568 parameters
Languages
en
Revision
b3bc31fc8156bab6dc98b942c222d5de1a80367f
First published
2026-09-30
Last updated
2026-09-30

Files and Weights

5 files, 438.2 KB in total. The weights are 1 file totalling 430.6 KB in safetensors.

Weights1 file · 430.6 KB
Configuration1 file · 374 B
Tokenizer1 file · 1.3 KB
Documentation1 file · 4.5 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights430.6 KB fd3001c01923
config.jsonConfiguration374 B —
README.mdDocumentation4.5 KB —
.gitattributesRepository1.5 KB —
vocab.jsonTokenizer1.3 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
430.6 KB
Download from Compactbot

Released by Compactbot through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published430.6 KB
16-bit0.0 GB
8-bit0.0 GB
4-bit0.0 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About testr-100k

How much GPU memory does testr-100k need?

About 0 GB at 16-bit and 0 GB at 4-bit: the weights (106,568 parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run testr-100k on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use testr-100k commercially?

Yes. testr-100k is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers