Downloads · 30 days
0
GermannM/kenga-prophet-m5
kenga-prophet-m5 is a text generation model from GermannM. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
The experiment this model exists for: keep the architecture and the parameter budget fixed, change only the source and structure of the training signal.
Downloads · 30 days
0
Access
Public
Updated Aug 22, 2026
Repo size
924 B
Likes
0
Public
Click a slice to open those files.
.jsonl9.1 MB · 75%
From the Hugging Face model README
The experiment this model exists for: keep the architecture and the parameter budget fixed, change only the source and structure of the training signal.
M4.2 (identical ~838K-param backbone, trained on the small real Kenga corpus) could not generalize: it produced 0 % compilable programs on unseen program templates. M5 is the same backbone trained on a compiler-verified synthetic corpus built by the Kenga Corpus Factory.
| Metric | M4.2 (~838K, real corpus) | M5 (~838K, factory corpus) |
|---|---|---|
| Train tokens | 0.49 M | 1.81 M |
| Held-out NT acc (template-split) | — | 89.26 % |
| Generation compile rate (unseen templates) | 0 % | 100 % |
| Generation run rate | 0 % | 100 % |
| Value match (greedy) | 0 % | 20.0 % |
| Value match pass@4 | 5 % | 32.5 % |
| Zero-shot real-code NT transfer | — | 11.74 % |
All generation numbers are measured on the template-disjoint test split: programs whose structural template (source with integer literals masked) never appears in training. Train/test template overlap: 0.
A pure-numpy transformer decoder trained from scratch on CPU:
a-z A-Z 0-9 _), BPE merges over real
identifier words; numbers spelled digit-by-digitclip=1.0, lr=0.002) — the
first M5 run diverged at step ~400 without clipping; clipping is part
of reproducibility14,585 generated programs in 4 families — arithmetic expression functions, range loops, recursion (+ recursion↔iteration equivalents, incl. Fibonacci), call chains:
kenga-lite runtime
(compile → run → stdout); only passing programs keptimport sys; sys.path.insert(0, 'code')
import kenchat
codec = kenchat.load_codec_vocab('kenga_full.pkl')
toks, src = kenchat.gen_tokens('fn add', 'mid_prophet_m5_w.txt',
max_tokens=200, codec=codec)
print(src)
code/ contains the full pipeline: trainer (train_m3.py), corpus
factory (corpus_factory.py), template split (corpus_split.py),
generation eval (corpus_eval.py), real-code eval (realcode_eval.py),
inference helpers (kenchat.py). data/ holds the exact train/test
JSONL splits used for this checkpoint.
Part of the Kenga Prophet ladder: Pico → M1 → M2 (linear) → M3/M3.x (transformer + compiler verification) → M4 (scaling: size ≠ solution) → M5 (data scaling: same params, dramatically better verified data).