Text Generation
Transformers
Safetensors
PyTorch
byte-level
tiny-lm
micro-model
research
from-scratch
rope
swiglu
muon-optimizer
custom-code
notokenlm_microgen
Instructions to use omurberaisik/NoTokenLM-MicroGen with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use omurberaisik/NoTokenLM-MicroGen with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="omurberaisik/NoTokenLM-MicroGen")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("omurberaisik/NoTokenLM-MicroGen", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use omurberaisik/NoTokenLM-MicroGen with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "omurberaisik/NoTokenLM-MicroGen" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "omurberaisik/NoTokenLM-MicroGen", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/omurberaisik/NoTokenLM-MicroGen
- SGLang
How to use omurberaisik/NoTokenLM-MicroGen with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "omurberaisik/NoTokenLM-MicroGen" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "omurberaisik/NoTokenLM-MicroGen", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "omurberaisik/NoTokenLM-MicroGen" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "omurberaisik/NoTokenLM-MicroGen", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use omurberaisik/NoTokenLM-MicroGen with Docker Model Runner:
docker model run hf.co/omurberaisik/NoTokenLM-MicroGen
Update README.md
Browse files
README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
|
|
|
| 3 |
language:
|
| 4 |
- en
|
| 5 |
- es
|
|
@@ -27,7 +28,7 @@ pipeline_tag: text-generation
|
|
| 27 |
|
| 28 |
**Tokenizer-free, byte-level language models, trained entirely from scratch**
|
| 29 |
|
| 30 |
-
[](https://
|
| 31 |
|
| 32 |
</div>
|
| 33 |
|
|
@@ -68,6 +69,7 @@ All models: byte-level input (vocab size 256, no tokenizer), causal decoder-only
|
|
| 68 |
|
| 69 |
**~1,925 parameters.** The smallest model in the series — a single attention head, a single layer, `d_model=5`. Targeted 20GB of FineWeb data in streaming mode, and is the only model in the series that actually completed its full data target. This model exists purely to probe whether a model at this scale can produce anything beyond noise — it is not expected to produce coherent text.
|
| 70 |
|
|
|
|
| 71 |
**Example outputs** *(temperature=0.5)*:
|
| 72 |
|
| 73 |
```
|
|
@@ -82,6 +84,7 @@ Prompt 3:
|
|
| 82 |
|
| 83 |
**~14,952 parameters** (8x larger than 2.5). The first model in the series to use RoPE (rotary position embeddings) and SwiGLU activations; 3 layers, 4-head attention. Targeted 30GB of FineWeb but did not complete that budget before training was stopped. Fixes an initialization bug found in 2.5, where the default PyTorch init combined with tied embeddings caused logits to blow up.
|
| 84 |
|
|
|
|
| 85 |
**Example outputs** *(temperature=0.5)*:
|
| 86 |
|
| 87 |
```
|
|
@@ -96,6 +99,7 @@ Prompt 3:
|
|
| 96 |
|
| 97 |
**~59,952 parameters.** The last and largest model in the 2.x line. 4 layers, a Muon optimizer (Newton-Schulz orthogonalization for matrix parameters) combined with AdamW, and PyTorch's native Flash Attention (SDPA). Targeted 35GB of FineWeb, again not fully completed. **This is the point in the series where the model starts producing actual, real words** rather than word-shaped noise — output is still far from consistently coherent, but recognizable English words start appearing reliably from here on.
|
| 98 |
|
|
|
|
| 99 |
**Example outputs** *(temperature=0.5)*:
|
| 100 |
|
| 101 |
```
|
|
@@ -110,6 +114,7 @@ Prompt 3:
|
|
| 110 |
|
| 111 |
**~344,768 parameters** (5.75x larger than 2.7). 5 layers, 8-head attention, context extended to 256 bytes, data source switched to the education-filtered **FineWeb-Edu**. The WSD (warmup-stable-decay) learning rate schedule was made data-budget-based rather than step-based, after 2.7's fixed step estimate turned out to be off by roughly 53%. bf16 mixed precision was introduced. Targeted 60GB of FineWeb-Edu; did not complete that budget. This is the point where grammar becomes noticeably real — still weak, but genuinely present.
|
| 112 |
|
|
|
|
| 113 |
**Example outputs** *(temperature=0.5)*:
|
| 114 |
|
| 115 |
```
|
|
@@ -124,6 +129,7 @@ Prompt 3:
|
|
| 124 |
|
| 125 |
**~500,560 parameters.** 3.5 showed real syntactic structure (correct conjunctions and subject-verb agreement, e.g. "While X are Y") but no semantic consistency (subject/object mismatches like "cards = employees"). 3.6's goal was to keep that grammatical foundation and build topic and meaning coherence on top of it. 6 layers, `d_model=80` (head_dim=10 — RoPE requires an even head_dim, which is why an earlier d_model=88 attempt with head_dim=11 failed). Data moved to a chained multi-source stream: a small but high-quality `Ultra-FineWeb-EDU` subset first, falling back automatically to the much larger `Ultra-FineWeb`, then to `FineWeb-Edu` as a last resort. Training did not complete its full intended data budget.
|
| 126 |
|
|
|
|
| 127 |
**Example outputs** *(temperature=0.5)*:
|
| 128 |
|
| 129 |
```
|
|
@@ -140,6 +146,7 @@ Prompt 3:
|
|
| 140 |
|
| 141 |
**3.7 is stronger than 3.6 in English too**, not just multilingual — the added data and continued training moved English quality forward as well, on top of adding three new languages. In Spanish, Indonesian, and Italian, quality is clearly behind English: the model reliably picks the right language (it doesn't answer in the wrong one) but can drop or garble words within a sentence. Training did not complete its full intended data budget.
|
| 142 |
|
|
|
|
| 143 |
**Example outputs** *(temperature=0.5)*:
|
| 144 |
|
| 145 |
```
|
|
@@ -187,7 +194,7 @@ print(output)
|
|
| 187 |
|
| 188 |
Or use the model picker below to jump straight to a ready-to-run notebook — it loads whichever model you pick and runs generation for you:
|
| 189 |
|
| 190 |
-
[](https://
|
| 191 |
|
| 192 |
> Note: because this single repository hosts six separate checkpoints (one per subfolder) rather than one model at the repo root, Hugging Face's default "Use this model" widget doesn't correctly represent it — use the snippet or the notebook above instead.
|
| 193 |
|
|
|
|
| 1 |
---
|
| 2 |
license: apache-2.0
|
| 3 |
+
library_name: transformers
|
| 4 |
language:
|
| 5 |
- en
|
| 6 |
- es
|
|
|
|
| 28 |
|
| 29 |
**Tokenizer-free, byte-level language models, trained entirely from scratch**
|
| 30 |
|
| 31 |
+
[](https://huggingface.co/omurberaisik/NoTokenLM-MicroGen/blob/main/notebook.ipynb)
|
| 32 |
|
| 33 |
</div>
|
| 34 |
|
|
|
|
| 69 |
|
| 70 |
**~1,925 parameters.** The smallest model in the series — a single attention head, a single layer, `d_model=5`. Targeted 20GB of FineWeb data in streaming mode, and is the only model in the series that actually completed its full data target. This model exists purely to probe whether a model at this scale can produce anything beyond noise — it is not expected to produce coherent text.
|
| 71 |
|
| 72 |
+
<!-- EXAMPLES:2.5 -->
|
| 73 |
**Example outputs** *(temperature=0.5)*:
|
| 74 |
|
| 75 |
```
|
|
|
|
| 84 |
|
| 85 |
**~14,952 parameters** (8x larger than 2.5). The first model in the series to use RoPE (rotary position embeddings) and SwiGLU activations; 3 layers, 4-head attention. Targeted 30GB of FineWeb but did not complete that budget before training was stopped. Fixes an initialization bug found in 2.5, where the default PyTorch init combined with tied embeddings caused logits to blow up.
|
| 86 |
|
| 87 |
+
<!-- EXAMPLES:2.6 -->
|
| 88 |
**Example outputs** *(temperature=0.5)*:
|
| 89 |
|
| 90 |
```
|
|
|
|
| 99 |
|
| 100 |
**~59,952 parameters.** The last and largest model in the 2.x line. 4 layers, a Muon optimizer (Newton-Schulz orthogonalization for matrix parameters) combined with AdamW, and PyTorch's native Flash Attention (SDPA). Targeted 35GB of FineWeb, again not fully completed. **This is the point in the series where the model starts producing actual, real words** rather than word-shaped noise — output is still far from consistently coherent, but recognizable English words start appearing reliably from here on.
|
| 101 |
|
| 102 |
+
<!-- EXAMPLES:2.7 -->
|
| 103 |
**Example outputs** *(temperature=0.5)*:
|
| 104 |
|
| 105 |
```
|
|
|
|
| 114 |
|
| 115 |
**~344,768 parameters** (5.75x larger than 2.7). 5 layers, 8-head attention, context extended to 256 bytes, data source switched to the education-filtered **FineWeb-Edu**. The WSD (warmup-stable-decay) learning rate schedule was made data-budget-based rather than step-based, after 2.7's fixed step estimate turned out to be off by roughly 53%. bf16 mixed precision was introduced. Targeted 60GB of FineWeb-Edu; did not complete that budget. This is the point where grammar becomes noticeably real — still weak, but genuinely present.
|
| 116 |
|
| 117 |
+
<!-- EXAMPLES:3.5 -->
|
| 118 |
**Example outputs** *(temperature=0.5)*:
|
| 119 |
|
| 120 |
```
|
|
|
|
| 129 |
|
| 130 |
**~500,560 parameters.** 3.5 showed real syntactic structure (correct conjunctions and subject-verb agreement, e.g. "While X are Y") but no semantic consistency (subject/object mismatches like "cards = employees"). 3.6's goal was to keep that grammatical foundation and build topic and meaning coherence on top of it. 6 layers, `d_model=80` (head_dim=10 — RoPE requires an even head_dim, which is why an earlier d_model=88 attempt with head_dim=11 failed). Data moved to a chained multi-source stream: a small but high-quality `Ultra-FineWeb-EDU` subset first, falling back automatically to the much larger `Ultra-FineWeb`, then to `FineWeb-Edu` as a last resort. Training did not complete its full intended data budget.
|
| 131 |
|
| 132 |
+
<!-- EXAMPLES:3.6 -->
|
| 133 |
**Example outputs** *(temperature=0.5)*:
|
| 134 |
|
| 135 |
```
|
|
|
|
| 146 |
|
| 147 |
**3.7 is stronger than 3.6 in English too**, not just multilingual — the added data and continued training moved English quality forward as well, on top of adding three new languages. In Spanish, Indonesian, and Italian, quality is clearly behind English: the model reliably picks the right language (it doesn't answer in the wrong one) but can drop or garble words within a sentence. Training did not complete its full intended data budget.
|
| 148 |
|
| 149 |
+
<!-- EXAMPLES:3.7 -->
|
| 150 |
**Example outputs** *(temperature=0.5)*:
|
| 151 |
|
| 152 |
```
|
|
|
|
| 194 |
|
| 195 |
Or use the model picker below to jump straight to a ready-to-run notebook — it loads whichever model you pick and runs generation for you:
|
| 196 |
|
| 197 |
+
[](https://huggingface.co/omurberaisik/NoTokenLM-MicroGen/blob/main/notebook.ipynb)
|
| 198 |
|
| 199 |
> Note: because this single repository hosts six separate checkpoints (one per subfolder) rather than one model at the repo root, Hugging Face's default "Use this model" widget doesn't correctly represent it — use the snippet or the notebook above instead.
|
| 200 |
|