Model reference · open weights
NoTokenLM-Gen-4.5 is an open-weight language model from omurberaisik. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | omurberaisik |
|---|---|
| Type | Language models |
| Task | Text gen |
| Parameters (lead) | 20M |
| Runs with | transformers |
| Released | 2026-09-05 |
| Popularity | 732 downloads / month |
| Licence | Open weights |
About
A 20-million-parameter, byte-level, tokenizer-free language model. No subword vocabulary, no BPE — just raw UTF-8 bytes in, raw UTF-8 bytes out.
This is part of the NoTokenLM family: a series of small models built around one guiding question — how much can a genuinely small model do, if the architecture and training are done carefully, without leaning on scale to cover for weak design?
If you're looking for a model that reasons, does math, or holds a long conversation coherently — this isn't that, and this card will tell you exactly why not. If you're curious what a 20M-parameter transformer can actually pull off when it's pointed at simple narrative text — keep reading.
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "omurberaisik/NoTokenLM-Gen-4.5"
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True)
tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model.eval()
ids = tok("Deep in the forest, Jack found a shell", return_tensors="pt")["input_ids"]
out = model.generate(ids, max_new_tokens=35, temperature=0.5, top_k=40)
print(tok.decode(out[0]))
Or with the pipeline API:
from transformers import pipeline
pipe = pipeline("text-generation", model="omurberaisik/NoTokenLM-Gen-4.5", trust_remote_code=True)
print(pipe("The little dog", max_new_tokens=35, temperature=0.5, top_k=40))
Recommended sampling settings are in the How to actually run this thing section below.
Gen-4.5 is a continuation of Gen-3.5-Focused — same architecture family (RoPE, RMSNorm, SwiGLU, byte-level), same lineage — carried forward through more training, not a from-scratch run and not a different model bolted on. Two things changed on top of that continued pretraining:
d_model=240 (~9M parameters). Gen-4.5 grows that to d_model=360 (~20M parameters) using a function-preserving width expansion — the existing trained weights are embedded into the larger matrices rather than the model restarting from random init, so the extra capacity is trained on top of what the smaller model had already learned, not instead of it.At the time these results were produced, this checkpoint had gone through 6,900 training steps across 3 sessions post-width-growth, with a best validation loss of 1.0729. Numbers throughout this card come from the EMA (exponential moving average) weights, which is standard practice for evaluation at this scale — it consistently produces smoother, less erratic generations than the raw training weights.
We generated 1,000 completions — 1,000 distinct prompts, one generation each, temperature 0.5, top-k 40, 35 new bytes — and every single one was read by hand and sorted into one of three categories. No automated heuristic, no filtering, no cherry-picking; everything below is the real distribution.
Grading criteria (same strict standard as prior NoTokenLM evaluations — "grammatically fine but says nothing coherent" does not count as a win):
| Category | Definition | Count | Share |
|---|---|---|---|
| Fully coherent | Correct grammar and the sentence actually makes sense — characters, objects, and pronouns tracked correctly throughout. | 749 | 74.9% |
| Grammar OK, meaning breaks down | Reads like well-formed English sentence-by-sentence, but drifts into a pronoun/gender mismatch, a non-sequitur detail, or an object described inconsistently with the scene. | 246 | 24.6% |
| Grammar breaks down | The sentence structure itself collapses — stuck repetition, a garbled or malformed clause. | 5 | 0.5% |
Result: 74.9% fully coherent, 99.5% grammatically correct overall, on a test set with no repeated prompts and no simplification.
"Leo was carrying a folded map very carefully, while Sam was making a plan to find a wool scarf."
-> "He had heard tales of a magical sc[arf]"
"Just before sunset, the young fox was cleaning up at the market after a long day."
-> "The warm smell of fresh fruit fill[ed the air]"
"Long ago, Rosie found a folded map in the attic."
-> "It was hidden in a box of old book[s]"
"Every afternoon, Otto spent the whole morning in the flower field."
-> "She loved to play there every day."
"Without any warning, Sam was looking for a stack of leaves on the hill."
-> "He had heard tales of a secret soc[iety]"
"On a rainy Tuesday, Anna noticed a wooden box was missing."
-> "It was her lost city that she had"
A pronoun/gender mismatch a sentence or clause after a character is introduced is the single most common failure inside this category.
"That very night, Nora was looking for a paint brush in the toy store."
-> "She had a big blue blue but never" <- stuck repetition, then a dangling fragment
"Aria began to dig a hole in the village, while Miles asked a friend for help carrying a glass jar."
-> "They began to dug and play and sil" <- wrong verb inflection + trails into worFrom the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys notokenlm-gen-4-5 for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (notokenlm-gen-4-5 below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"notokenlm-gen-4-5","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.