Text Generation
Transformers
Safetensors
English
gpt2
causal-lm
nanogpt
bpe
educational
base-model
Eval Results (legacy)
text-generation-inference
Instructions to use SlayerLab/pollock-mini-lm-125m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SlayerLab/pollock-mini-lm-125m with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SlayerLab/pollock-mini-lm-125m")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SlayerLab/pollock-mini-lm-125m") model = AutoModelForCausalLM.from_pretrained("SlayerLab/pollock-mini-lm-125m", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SlayerLab/pollock-mini-lm-125m with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SlayerLab/pollock-mini-lm-125m" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SlayerLab/pollock-mini-lm-125m", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/SlayerLab/pollock-mini-lm-125m
- SGLang
How to use SlayerLab/pollock-mini-lm-125m 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 "SlayerLab/pollock-mini-lm-125m" \ --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": "SlayerLab/pollock-mini-lm-125m", "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 "SlayerLab/pollock-mini-lm-125m" \ --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": "SlayerLab/pollock-mini-lm-125m", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use SlayerLab/pollock-mini-lm-125m with Docker Model Runner:
docker model run hf.co/SlayerLab/pollock-mini-lm-125m
Release Pollock 1.1 (r003)
Browse filesPublish the verified r003 Transformers artifact, tokenizer, English benchmark results, model card, changelog, training history, and release manifest.
- CHANGELOG.md +8 -0
- README.md +42 -42
- benchmarks/english.json +0 -0
- config.json +1 -1
- model.safetensors +1 -1
- release_manifest.json +24 -33
- training-history/r003.md +133 -0
CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
| 2 |
|
| 3 |
Revision numbers identify published model states independently of release names.
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
## r002 — Pollock 1.0
|
| 6 |
|
| 7 |
- Expanded the architecture from 12/12/768 to 12/14/896 while remaining below 128M total parameters.
|
|
|
|
| 2 |
|
| 3 |
Revision numbers identify published model states independently of release names.
|
| 4 |
|
| 5 |
+
## r003 — Pollock 1.1
|
| 6 |
+
|
| 7 |
+
- Kept the r002 architecture, tokenizer, dataset, context, effective batch, and four-pass token budget unchanged.
|
| 8 |
+
- Increased the learning-rate range from 3e-4→3e-5 to 4e-4→4e-5 and trained on 2× NVIDIA L40S.
|
| 9 |
+
- Improved all seven reported English zero-shot primary metrics over r002.
|
| 10 |
+
|
| 11 |
+
Full record: [`training-history/r003.md`](./training-history/r003.md)
|
| 12 |
+
|
| 13 |
## r002 — Pollock 1.0
|
| 14 |
|
| 15 |
- Expanded the architecture from 12/12/768 to 12/14/896 while remaining below 128M total parameters.
|
README.md
CHANGED
|
@@ -8,35 +8,35 @@ license_link: https://huggingface.co/SlayerLab/pollock-mini-lm-125m/blob/main/LI
|
|
| 8 |
datasets: [SlayerLab/minimal-en-corpus-2.5b]
|
| 9 |
tags: [causal-lm, gpt2, nanogpt, bpe, educational, base-model]
|
| 10 |
model-index:
|
| 11 |
-
- name: Pollock 1.
|
| 12 |
results:
|
| 13 |
- task: {type: text-generation, name: Language modeling}
|
| 14 |
dataset: {type: SlayerLab/minimal-en-corpus-2.5b, name: Minimal EN validation (sampled), split: validation}
|
| 15 |
-
metrics: [{type: loss, value: 2.
|
| 16 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 17 |
dataset: {type: blimp, name: BLiMP, split: train}
|
| 18 |
-
metrics: [{type: acc, value: 0.
|
| 19 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 20 |
dataset: {type: EleutherAI/lambada_openai, name: LAMBADA OpenAI, split: test}
|
| 21 |
-
metrics: [{type: acc, value: 0.
|
| 22 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 23 |
dataset: {type: hellaswag, name: HellaSwag, split: validation}
|
| 24 |
-
metrics: [{type: acc_norm, value: 0.
|
| 25 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 26 |
dataset: {type: piqa, name: PIQA, split: validation}
|
| 27 |
-
metrics: [{type: acc_norm, value: 0.
|
| 28 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 29 |
dataset: {type: sciq, name: SciQ, split: test}
|
| 30 |
-
metrics: [{type: acc_norm, value: 0.
|
| 31 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 32 |
dataset: {type: allenai/ai2_arc, config: ARC-Easy, name: ARC-Easy, split: test}
|
| 33 |
-
metrics: [{type: acc_norm, value: 0.
|
| 34 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 35 |
dataset: {type: allenai/ai2_arc, config: ARC-Challenge, name: ARC-Challenge, split: test}
|
| 36 |
-
metrics: [{type: acc_norm, value: 0.
|
| 37 |
---
|
| 38 |
|
| 39 |
-
# Pollock 1.
|
| 40 |
|
| 41 |

|
| 42 |
|
|
@@ -46,15 +46,15 @@ model-index:
|
|
| 46 |
|
| 47 |
### Opis
|
| 48 |
|
| 49 |
-
Pollock
|
| 50 |
|
| 51 |
-
Nazwa luźno nawiązuje do gestu malarskiego Jacksona Pollocka: nanoGPT jest płótnem, na którym dane, konfiguracja i decyzje treningowe tworzą różne wzorce zachowania. Pełne dane techniczne tej wersji znajdują się w [`training-history/
|
| 52 |
|
| 53 |
### Architektura i tokenizer
|
| 54 |
|
| 55 |
| Właściwość | Wartość |
|
| 56 |
|---|---:|
|
| 57 |
-
| Rewizja / wydanie |
|
| 58 |
| Typ | decoder-only Transformer w stylu GPT-2 |
|
| 59 |
| Warstwy / głowy / embedding | 12 / 14 / 896 |
|
| 60 |
| Maksymalny kontekst | 1024 tokeny |
|
|
@@ -79,29 +79,29 @@ Model wytrenowano na [`SlayerLab/minimal-en-corpus-2.5b`](https://huggingface.co
|
|
| 79 |
| Akumulacja globalna / na GPU | 40 / 20 micro-stepów |
|
| 80 |
| Effective batch | 491 520 tokenów |
|
| 81 |
| Optymalizator | fused AdamW, betas 0.9/0.95 |
|
| 82 |
-
| Learning rate |
|
| 83 |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
|
| 84 |
| Precyzja | BF16 |
|
| 85 |
-
| Sprzęt | 2× NVIDIA
|
| 86 |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit `3adf61e` |
|
| 87 |
|
| 88 |
### Ewaluacja
|
| 89 |
|
| 90 |
-
Loss treningowy szacowano na
|
| 91 |
|
| 92 |
Benchmarki wykonano zero-shot na pełnych splitach przy użyciu `lm-evaluation-harness` 0.4.12, batch size 8 i BF16.
|
| 93 |
|
| 94 |
| Benchmark | Główna metryka | Wynik | Próbki |
|
| 95 |
|---|---|---:|---:|
|
| 96 |
-
| BLiMP | accuracy | 0.
|
| 97 |
-
| LAMBADA OpenAI | accuracy | 0.
|
| 98 |
-
| HellaSwag | normalized accuracy | 0.
|
| 99 |
-
| PIQA | normalized accuracy | 0.
|
| 100 |
-
| SciQ | normalized accuracy | 0.
|
| 101 |
-
| ARC-Easy | normalized accuracy | 0.
|
| 102 |
-
| ARC-Challenge | normalized accuracy | 0.
|
| 103 |
|
| 104 |
-
LAMBADA osiągnęła perplexity
|
| 105 |
|
| 106 |
### Użycie z Transformers
|
| 107 |
|
|
@@ -119,7 +119,7 @@ output = model.generate(
|
|
| 119 |
print(tokenizer.decode(output[0], skip_special_tokens=True))
|
| 120 |
```
|
| 121 |
|
| 122 |
-
Model używa standardowego `GPT2LMHeadModel`; `trust_remote_code=True` nie jest potrzebne. Dla
|
| 123 |
|
| 124 |
### Ograniczenia i odpowiedzialne użycie
|
| 125 |
|
|
@@ -134,15 +134,15 @@ Model używa standardowego `GPT2LMHeadModel`; `trust_remote_code=True` nie jest
|
|
| 134 |
|
| 135 |
### Overview
|
| 136 |
|
| 137 |
-
Pollock
|
| 138 |
|
| 139 |
-
The name loosely refers to Jackson Pollock's painterly gesture: nanoGPT is the canvas on which data, configuration, and training decisions create different behavioral patterns. See [`training-history/
|
| 140 |
|
| 141 |
### Architecture and tokenizer
|
| 142 |
|
| 143 |
| Property | Value |
|
| 144 |
|---|---:|
|
| 145 |
-
| Revision / release |
|
| 146 |
| Type | GPT-2-style decoder-only Transformer |
|
| 147 |
| Layers / heads / width | 12 / 14 / 896 |
|
| 148 |
| Maximum context | 1,024 tokens |
|
|
@@ -167,33 +167,33 @@ The model was trained on [`SlayerLab/minimal-en-corpus-2.5b`](https://huggingfac
|
|
| 167 |
| Global / per-GPU accumulation | 40 / 20 micro-steps |
|
| 168 |
| Effective batch | 491,520 tokens |
|
| 169 |
| Optimizer | fused AdamW, betas 0.9/0.95 |
|
| 170 |
-
| Learning rate |
|
| 171 |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
|
| 172 |
| Precision | BF16 |
|
| 173 |
-
| Hardware | 2× NVIDIA
|
| 174 |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit `3adf61e` |
|
| 175 |
|
| 176 |
### Evaluation
|
| 177 |
|
| 178 |
-
Training-time loss was estimated
|
| 179 |
|
| 180 |
-
Benchmarks used complete splits with `lm-evaluation-harness` 0.4.12, zero-shot
|
| 181 |
|
| 182 |
| Benchmark | Primary metric | Score | Samples |
|
| 183 |
|---|---|---:|---:|
|
| 184 |
-
| BLiMP | accuracy | 0.
|
| 185 |
-
| LAMBADA OpenAI | accuracy | 0.
|
| 186 |
-
| HellaSwag | normalized accuracy | 0.
|
| 187 |
-
| PIQA | normalized accuracy | 0.
|
| 188 |
-
| SciQ | normalized accuracy | 0.
|
| 189 |
-
| ARC-Easy | normalized accuracy | 0.
|
| 190 |
-
| ARC-Challenge | normalized accuracy | 0.
|
| 191 |
|
| 192 |
-
LAMBADA perplexity was
|
| 193 |
|
| 194 |
### Usage
|
| 195 |
|
| 196 |
-
Use the Transformers example in the Polish section. The artifact uses standard `GPT2LMHeadModel`; `trust_remote_code=True` is unnecessary. No
|
| 197 |
|
| 198 |
### Limitations and responsible use
|
| 199 |
|
|
@@ -208,7 +208,7 @@ Use the Transformers example in the Polish section. The artifact uses standard `
|
|
| 208 |
|
| 209 |
Kod nanoGPT jest na licencji MIT. Korpus łączy źródła o różnych warunkach i nie ma jednej wspólnej licencji, dlatego model oznaczono jako `license: other`. Szczegóły: [`LICENSE.md`](./LICENSE.md) i karta datasetu.
|
| 210 |
|
| 211 |
-
nanoGPT code is MIT-licensed. The corpus combines sources governed by different terms and has no single common license, so the model is marked `license: other`. See [`LICENSE.md`](./LICENSE.md) and the dataset card.
|
| 212 |
|
| 213 |
## Pochodzenie / Attribution
|
| 214 |
|
|
|
|
| 8 |
datasets: [SlayerLab/minimal-en-corpus-2.5b]
|
| 9 |
tags: [causal-lm, gpt2, nanogpt, bpe, educational, base-model]
|
| 10 |
model-index:
|
| 11 |
+
- name: Pollock 1.1
|
| 12 |
results:
|
| 13 |
- task: {type: text-generation, name: Language modeling}
|
| 14 |
dataset: {type: SlayerLab/minimal-en-corpus-2.5b, name: Minimal EN validation (sampled), split: validation}
|
| 15 |
+
metrics: [{type: loss, value: 2.5528755188, name: Final sampled validation loss}]
|
| 16 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 17 |
dataset: {type: blimp, name: BLiMP, split: train}
|
| 18 |
+
metrics: [{type: acc, value: 0.7773880597}]
|
| 19 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 20 |
dataset: {type: EleutherAI/lambada_openai, name: LAMBADA OpenAI, split: test}
|
| 21 |
+
metrics: [{type: acc, value: 0.2899281972}, {type: perplexity, value: 47.70114023}]
|
| 22 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 23 |
dataset: {type: hellaswag, name: HellaSwag, split: validation}
|
| 24 |
+
metrics: [{type: acc_norm, value: 0.3034256124}]
|
| 25 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 26 |
dataset: {type: piqa, name: PIQA, split: validation}
|
| 27 |
+
metrics: [{type: acc_norm, value: 0.6109902067}]
|
| 28 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 29 |
dataset: {type: sciq, name: SciQ, split: test}
|
| 30 |
+
metrics: [{type: acc_norm, value: 0.659}]
|
| 31 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 32 |
dataset: {type: allenai/ai2_arc, config: ARC-Easy, name: ARC-Easy, split: test}
|
| 33 |
+
metrics: [{type: acc_norm, value: 0.428030303}]
|
| 34 |
- task: {type: text-generation, name: Zero-shot evaluation}
|
| 35 |
dataset: {type: allenai/ai2_arc, config: ARC-Challenge, name: ARC-Challenge, split: test}
|
| 36 |
+
metrics: [{type: acc_norm, value: 0.2534129693}]
|
| 37 |
---
|
| 38 |
|
| 39 |
+
# Pollock 1.1 — r003
|
| 40 |
|
| 41 |

|
| 42 |
|
|
|
|
| 46 |
|
| 47 |
### Opis
|
| 48 |
|
| 49 |
+
Pollock to niewielki, anglojęzyczny model bazowy typu decoder-only, wytrenowany od zera jako czytelny eksperyment edukacyjny. Implementacja bazuje na [nanoGPT](https://github.com/karpathy/nanoGPT) i własnym tokenizerze byte-level BPE. Jest to model do uzupełniania tekstu, nie asystent konwersacyjny.
|
| 50 |
|
| 51 |
+
Nazwa luźno nawiązuje do gestu malarskiego Jacksona Pollocka: nanoGPT jest płótnem, na którym dane, konfiguracja i decyzje treningowe tworzą różne wzorce zachowania. Pełne dane techniczne tej wersji znajdują się w [`training-history/r003.md`](./training-history/r003.md), a różnice między wydaniami w [`CHANGELOG.md`](./CHANGELOG.md).
|
| 52 |
|
| 53 |
### Architektura i tokenizer
|
| 54 |
|
| 55 |
| Właściwość | Wartość |
|
| 56 |
|---|---:|
|
| 57 |
+
| Rewizja / wydanie | r003 / Pollock 1.1 |
|
| 58 |
| Typ | decoder-only Transformer w stylu GPT-2 |
|
| 59 |
| Warstwy / głowy / embedding | 12 / 14 / 896 |
|
| 60 |
| Maksymalny kontekst | 1024 tokeny |
|
|
|
|
| 79 |
| Akumulacja globalna / na GPU | 40 / 20 micro-stepów |
|
| 80 |
| Effective batch | 491 520 tokenów |
|
| 81 |
| Optymalizator | fused AdamW, betas 0.9/0.95 |
|
| 82 |
+
| Learning rate | 4e-4 → 4e-5, cosine decay |
|
| 83 |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
|
| 84 |
| Precyzja | BF16 |
|
| 85 |
+
| Sprzęt | 2× NVIDIA L40S |
|
| 86 |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit `3adf61e` |
|
| 87 |
|
| 88 |
### Ewaluacja
|
| 89 |
|
| 90 |
+
Loss treningowy szacowano na stałych podzbiorach po 1 228 800 tokenów na split. Finalny checkpoint uzyskał validation loss **2.552876**; najlepszy wynik to **2.5362** w kroku 20 000. Nie należy porównywać tych wartości bezpośrednio z losowo próbkowaną walidacją r002.
|
| 91 |
|
| 92 |
Benchmarki wykonano zero-shot na pełnych splitach przy użyciu `lm-evaluation-harness` 0.4.12, batch size 8 i BF16.
|
| 93 |
|
| 94 |
| Benchmark | Główna metryka | Wynik | Próbki |
|
| 95 |
|---|---|---:|---:|
|
| 96 |
+
| BLiMP | accuracy | 0.777388 | 67 000 |
|
| 97 |
+
| LAMBADA OpenAI | accuracy | 0.289928 | 5 153 |
|
| 98 |
+
| HellaSwag | normalized accuracy | 0.303426 | 10 042 |
|
| 99 |
+
| PIQA | normalized accuracy | 0.610990 | 1 838 |
|
| 100 |
+
| SciQ | normalized accuracy | 0.659000 | 1 000 |
|
| 101 |
+
| ARC-Easy | normalized accuracy | 0.428030 | 2 376 |
|
| 102 |
+
| ARC-Challenge | normalized accuracy | 0.253413 | 1 172 |
|
| 103 |
|
| 104 |
+
LAMBADA osiągnęła perplexity 47.701140. Pełne metryki i protokół zapisano w historii r003.
|
| 105 |
|
| 106 |
### Użycie z Transformers
|
| 107 |
|
|
|
|
| 119 |
print(tokenizer.decode(output[0], skip_special_tokens=True))
|
| 120 |
```
|
| 121 |
|
| 122 |
+
Model używa standardowego `GPT2LMHeadModel`; `trust_remote_code=True` nie jest potrzebne. Dla r003 nie opublikowano jeszcze próbek generacji. Historyczne próbki są przypisane do poprzednich wag w historii r001.
|
| 123 |
|
| 124 |
### Ograniczenia i odpowiedzialne użycie
|
| 125 |
|
|
|
|
| 134 |
|
| 135 |
### Overview
|
| 136 |
|
| 137 |
+
Pollock is a small English decoder-only base language model trained from scratch as a readable educational experiment. It is based on [nanoGPT](https://github.com/karpathy/nanoGPT) and a custom byte-level BPE tokenizer. It is a completion model, not a conversational assistant.
|
| 138 |
|
| 139 |
+
The name loosely refers to Jackson Pollock's painterly gesture: nanoGPT is the canvas on which data, configuration, and training decisions create different behavioral patterns. See [`training-history/r003.md`](./training-history/r003.md) for the complete technical record and [`CHANGELOG.md`](./CHANGELOG.md) for release-to-release changes.
|
| 140 |
|
| 141 |
### Architecture and tokenizer
|
| 142 |
|
| 143 |
| Property | Value |
|
| 144 |
|---|---:|
|
| 145 |
+
| Revision / release | r003 / Pollock 1.1 |
|
| 146 |
| Type | GPT-2-style decoder-only Transformer |
|
| 147 |
| Layers / heads / width | 12 / 14 / 896 |
|
| 148 |
| Maximum context | 1,024 tokens |
|
|
|
|
| 167 |
| Global / per-GPU accumulation | 40 / 20 micro-steps |
|
| 168 |
| Effective batch | 491,520 tokens |
|
| 169 |
| Optimizer | fused AdamW, betas 0.9/0.95 |
|
| 170 |
+
| Learning rate | 4e-4 → 4e-5, cosine decay |
|
| 171 |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
|
| 172 |
| Precision | BF16 |
|
| 173 |
+
| Hardware | 2× NVIDIA L40S |
|
| 174 |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit `3adf61e` |
|
| 175 |
|
| 176 |
### Evaluation
|
| 177 |
|
| 178 |
+
Training-time loss was estimated on fixed subsets of 1,228,800 tokens per split. The final checkpoint achieved validation loss **2.552876**; the best result was **2.5362** at step 20,000. These values are not directly comparable with r002's randomly sampled training validation.
|
| 179 |
|
| 180 |
+
Benchmarks used complete splits with `lm-evaluation-harness` 0.4.12, zero few-shot examples, batch size 8, and BF16.
|
| 181 |
|
| 182 |
| Benchmark | Primary metric | Score | Samples |
|
| 183 |
|---|---|---:|---:|
|
| 184 |
+
| BLiMP | accuracy | 0.777388 | 67,000 |
|
| 185 |
+
| LAMBADA OpenAI | accuracy | 0.289928 | 5,153 |
|
| 186 |
+
| HellaSwag | normalized accuracy | 0.303426 | 10,042 |
|
| 187 |
+
| PIQA | normalized accuracy | 0.610990 | 1,838 |
|
| 188 |
+
| SciQ | normalized accuracy | 0.659000 | 1,000 |
|
| 189 |
+
| ARC-Easy | normalized accuracy | 0.428030 | 2,376 |
|
| 190 |
+
| ARC-Challenge | normalized accuracy | 0.253413 | 1,172 |
|
| 191 |
|
| 192 |
+
LAMBADA perplexity was 47.701140. Full metrics and protocol details are recorded in the r003 history.
|
| 193 |
|
| 194 |
### Usage
|
| 195 |
|
| 196 |
+
Use the Transformers example in the Polish section. The artifact uses standard `GPT2LMHeadModel`; `trust_remote_code=True` is unnecessary. No r003 generation samples have been published yet. Historical samples are explicitly attached to the predecessor weights in the r001 history.
|
| 197 |
|
| 198 |
### Limitations and responsible use
|
| 199 |
|
|
|
|
| 208 |
|
| 209 |
Kod nanoGPT jest na licencji MIT. Korpus łączy źródła o różnych warunkach i nie ma jednej wspólnej licencji, dlatego model oznaczono jako `license: other`. Szczegóły: [`LICENSE.md`](./LICENSE.md) i karta datasetu.
|
| 210 |
|
| 211 |
+
nanoGPT code is MIT-licensed. The corpus combines sources governed by different terms and has no single common license, so the model is marked as `license: other`. See [`LICENSE.md`](./LICENSE.md) and the dataset card.
|
| 212 |
|
| 213 |
## Pochodzenie / Attribution
|
| 214 |
|
benchmarks/english.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
config.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
| 12 |
"initializer_range": 0.02,
|
| 13 |
"layer_norm_epsilon": 1e-05,
|
| 14 |
"model_type": "gpt2",
|
| 15 |
-
"model_version": "1.
|
| 16 |
"n_ctx": 1024,
|
| 17 |
"n_embd": 896,
|
| 18 |
"n_head": 14,
|
|
|
|
| 12 |
"initializer_range": 0.02,
|
| 13 |
"layer_norm_epsilon": 1e-05,
|
| 14 |
"model_type": "gpt2",
|
| 15 |
+
"model_version": "1.1",
|
| 16 |
"n_ctx": 1024,
|
| 17 |
"n_embd": 896,
|
| 18 |
"n_head": 14,
|
model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 510713512
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3a9964a0ba5f6d20ef6061d2a7e4442c1b001209ebe80f7b7148a25573decaa9
|
| 3 |
size 510713512
|
release_manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
{
|
| 2 |
"schema_version": 2,
|
| 3 |
-
"revision":
|
| 4 |
-
"revision_id": "
|
| 5 |
-
"release": "Pollock 1.
|
| 6 |
"model_id": "SlayerLab/pollock-mini-lm-125m",
|
| 7 |
"source_checkpoint": {
|
| 8 |
-
"path_in_training_workspace": "runs/
|
| 9 |
-
"sha256": "
|
| 10 |
"iteration": 22004,
|
| 11 |
"tokens_seen": 10815406080,
|
| 12 |
"native_nanogpt_parameters": 126637952,
|
|
@@ -30,8 +30,8 @@
|
|
| 30 |
"ddp_world_size": 2,
|
| 31 |
"effective_batch_tokens": 491520,
|
| 32 |
"optimizer": "fused AdamW",
|
| 33 |
-
"learning_rate": 0.
|
| 34 |
-
"min_learning_rate": 0.
|
| 35 |
"schedule": "cosine",
|
| 36 |
"warmup_iters": 440,
|
| 37 |
"lr_decay_iters": 22003,
|
|
@@ -43,26 +43,21 @@
|
|
| 43 |
"compile": true,
|
| 44 |
"backend": "nccl",
|
| 45 |
"seed": 1337,
|
| 46 |
-
"
|
| 47 |
-
"
|
|
|
|
| 48 |
},
|
| 49 |
"evaluation": {
|
| 50 |
-
"
|
| 51 |
-
"
|
| 52 |
-
"
|
| 53 |
-
"
|
|
|
|
| 54 |
"benchmark_harness": "lm-evaluation-harness 0.4.12",
|
| 55 |
"benchmark_num_fewshot": 0,
|
| 56 |
"benchmark_batch_size": 8,
|
| 57 |
-
"
|
| 58 |
-
|
| 59 |
-
"lambada_openai": {"acc": 0.2780904327576169, "perplexity": 53.66752251060021, "samples": 5153},
|
| 60 |
-
"hellaswag": {"acc_norm": 0.29874526986656047, "acc": 0.2818163712407887, "samples": 10042},
|
| 61 |
-
"piqa": {"acc_norm": 0.6033732317736671, "acc": 0.6137105549510338, "samples": 1838},
|
| 62 |
-
"sciq": {"acc_norm": 0.658, "acc": 0.737, "samples": 1000},
|
| 63 |
-
"arc_easy": {"acc_norm": 0.42297979797979796, "acc": 0.4659090909090909, "samples": 2376},
|
| 64 |
-
"arc_challenge": {"acc_norm": 0.24146757679180889, "acc": 0.20819112627986347, "samples": 1172}
|
| 65 |
-
}
|
| 66 |
},
|
| 67 |
"conversion": {
|
| 68 |
"target_class": "GPT2LMHeadModel",
|
|
@@ -73,19 +68,15 @@
|
|
| 73 |
"max_absolute_logit_error": 0.0
|
| 74 |
},
|
| 75 |
"artifacts": {
|
| 76 |
-
"README.md": {"sha256": "
|
| 77 |
-
"CHANGELOG.md": {"sha256": "
|
| 78 |
-
"training-history/
|
| 79 |
-
"
|
| 80 |
-
"
|
| 81 |
-
"LICENSE.md": {"sha256": "46cbe928ed0aa24875f02f774313b27ec9d8abdf41f0c9ef67e0adb4e0614de4"},
|
| 82 |
-
"config.json": {"sha256": "0ad9e47efb8d2ddf4666f016a286604365faa4ff6ece9654718c3e4daa43c41e"},
|
| 83 |
"generation_config.json": {"sha256": "435beb27be51f0ed054f4a011e5109d125cdadc118b8799b18b155cc798d94d2"},
|
| 84 |
-
"model.safetensors": {"sha256": "
|
| 85 |
"special_tokens_map.json": {"sha256": "8b2257a17ea997bb038f43b133aefec82344ad2b8abc2b8a02a6c0a994ed624e"},
|
| 86 |
"tokenizer.json": {"sha256": "6cda4e5ec8293f3b821e02253f9c0e88e43ad4f7c6e1324763e1fb91749fef51"},
|
| 87 |
-
"tokenizer_config.json": {"sha256": "4cdabe37dbdc1adfcc017ee9a1f86ab89bdf184827d2d9f05181cae0f8af19bf"}
|
| 88 |
-
"logs/training.log": {"sha256": "ff856088bdf504759600553a4e9ad5a23f965d54646838adcf0599bb1621d6e1"},
|
| 89 |
-
"logs/benchmark-english.log": {"sha256": "f81ad6c915ae49a0d49f61c15ea86a265c31364e5418150c35aa416d4809e22a"}
|
| 90 |
}
|
| 91 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"schema_version": 2,
|
| 3 |
+
"revision": 3,
|
| 4 |
+
"revision_id": "r003",
|
| 5 |
+
"release": "Pollock 1.1",
|
| 6 |
"model_id": "SlayerLab/pollock-mini-lm-125m",
|
| 7 |
"source_checkpoint": {
|
| 8 |
+
"path_in_training_workspace": "runs/r003-lr4e-4-v4/checkpoints/ckpt.pt",
|
| 9 |
+
"sha256": "912483b44bb177c7a62fe19a53fc6db7b333cf881c57de15daf9dd7209d90a6b",
|
| 10 |
"iteration": 22004,
|
| 11 |
"tokens_seen": 10815406080,
|
| 12 |
"native_nanogpt_parameters": 126637952,
|
|
|
|
| 30 |
"ddp_world_size": 2,
|
| 31 |
"effective_batch_tokens": 491520,
|
| 32 |
"optimizer": "fused AdamW",
|
| 33 |
+
"learning_rate": 0.0004,
|
| 34 |
+
"min_learning_rate": 0.00004,
|
| 35 |
"schedule": "cosine",
|
| 36 |
"warmup_iters": 440,
|
| 37 |
"lr_decay_iters": 22003,
|
|
|
|
| 43 |
"compile": true,
|
| 44 |
"backend": "nccl",
|
| 45 |
"seed": 1337,
|
| 46 |
+
"evaluation_seed": 4242,
|
| 47 |
+
"hardware": "2x NVIDIA L40S",
|
| 48 |
+
"nanogpt_commit": "3adf61e154c3fe3fca428ad6bc3818b27a3b8291"
|
| 49 |
},
|
| 50 |
"evaluation": {
|
| 51 |
+
"protocol": "fixed sampled subset",
|
| 52 |
+
"subset_tokens_per_split": 1228800,
|
| 53 |
+
"final_validation_loss": 2.552875518798828,
|
| 54 |
+
"best_validation_loss": 2.5362,
|
| 55 |
+
"best_validation_step": 20000,
|
| 56 |
"benchmark_harness": "lm-evaluation-harness 0.4.12",
|
| 57 |
"benchmark_num_fewshot": 0,
|
| 58 |
"benchmark_batch_size": 8,
|
| 59 |
+
"truncated_benchmark_requests": 80,
|
| 60 |
+
"results_file": "benchmarks/english.json"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
},
|
| 62 |
"conversion": {
|
| 63 |
"target_class": "GPT2LMHeadModel",
|
|
|
|
| 68 |
"max_absolute_logit_error": 0.0
|
| 69 |
},
|
| 70 |
"artifacts": {
|
| 71 |
+
"README.md": {"sha256": "5ab395ed94618c311257fed4c16c40ed558919e6b0b0f12177eca4250dc41f5a"},
|
| 72 |
+
"CHANGELOG.md": {"sha256": "00a60accbe6dfe0734326124c789f842141f61ecc26d7cd2f8291b148bfd125f"},
|
| 73 |
+
"training-history/r003.md": {"sha256": "4ae07419880227300a5c6c2ae259d7f609d928f33ab9c0c91cbce44dc6b56428"},
|
| 74 |
+
"benchmarks/english.json": {"sha256": "7dd602e81a79bbdad4393b9031d0f584148076310d85cbda71fb6867b1ad63d8"},
|
| 75 |
+
"config.json": {"sha256": "89816fc9a57e4915ef884864dfb7b0502dbc16e3da749e781ce41b2a2c7ce26d"},
|
|
|
|
|
|
|
| 76 |
"generation_config.json": {"sha256": "435beb27be51f0ed054f4a011e5109d125cdadc118b8799b18b155cc798d94d2"},
|
| 77 |
+
"model.safetensors": {"sha256": "3a9964a0ba5f6d20ef6061d2a7e4442c1b001209ebe80f7b7148a25573decaa9"},
|
| 78 |
"special_tokens_map.json": {"sha256": "8b2257a17ea997bb038f43b133aefec82344ad2b8abc2b8a02a6c0a994ed624e"},
|
| 79 |
"tokenizer.json": {"sha256": "6cda4e5ec8293f3b821e02253f9c0e88e43ad4f7c6e1324763e1fb91749fef51"},
|
| 80 |
+
"tokenizer_config.json": {"sha256": "4cdabe37dbdc1adfcc017ee9a1f86ab89bdf184827d2d9f05181cae0f8af19bf"}
|
|
|
|
|
|
|
| 81 |
}
|
| 82 |
}
|
training-history/r003.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# r003 - Pollock 1.1 training record
|
| 2 |
+
|
| 3 |
+
## Identity and provenance
|
| 4 |
+
|
| 5 |
+
| Field | Value |
|
| 6 |
+
|---|---|
|
| 7 |
+
| Revision / release | `r003` / Pollock 1.1 |
|
| 8 |
+
| Model ID | `SlayerLab/pollock-mini-lm-125m` |
|
| 9 |
+
| Source run | `runs/r003-lr4e-4-v4` |
|
| 10 |
+
| Source checkpoint | `checkpoints/ckpt.pt` |
|
| 11 |
+
| Checkpoint iteration / SHA-256 | 22,004 / `912483b44bb177c7a62fe19a53fc6db7b333cf881c57de15daf9dd7209d90a6b` |
|
| 12 |
+
| Benchmark adapter SHA-256 | `0f53aa6b8454e856f8c4c489c7e6cbf207b8e124fe06bbb239315c017fe16fc0` |
|
| 13 |
+
| nanoGPT commit | `3adf61e154c3fe3fca428ad6bc3818b27a3b8291` (dirty workspace recorded) |
|
| 14 |
+
| W&B run | [`uro1w8l1`](https://wandb.ai/dawidmajewski-ezotic/minimal-en/runs/uro1w8l1) |
|
| 15 |
+
| Training environment | [DMPod GPT](https://github.com/dawidmajewski/dmpod-gpt) on RunPod |
|
| 16 |
+
| Run status | completed, exit code 0 |
|
| 17 |
+
|
| 18 |
+
The native checkpoint reports `iter_num=22004`. The wrapper's pre-run estimate in `config.json` used 22,003 target updates and is one effective batch lower because the legacy nanoGPT loop is inclusive. This record follows the native checkpoint and r002 release convention: 22,004 updates and 10,815,406,080 token presentations.
|
| 19 |
+
|
| 20 |
+
## Architecture and parameter accounting
|
| 21 |
+
|
| 22 |
+
| Setting | Value |
|
| 23 |
+
|---|---:|
|
| 24 |
+
| Type | GPT-2-style decoder-only Transformer |
|
| 25 |
+
| Layers / heads / width | 12 / 14 / 896 |
|
| 26 |
+
| Head dimension / MLP width | 64 / 3,584 |
|
| 27 |
+
| Context / vocabulary | 1,024 / 12,288 |
|
| 28 |
+
| Activation / dropout / bias | GELU / 0.0 / false |
|
| 29 |
+
| Position representation | learned absolute embeddings |
|
| 30 |
+
| Input/output token weights | tied |
|
| 31 |
+
| nanoGPT reported count | 126,637,952 |
|
| 32 |
+
| Native unique trainable total | 127,555,456 |
|
| 33 |
+
|
| 34 |
+
The architecture and parameter counts are unchanged from r002. The Transformers artifact has 127,674,624 unique serialized parameters, including 119,168 zero-valued compatibility bias parameters.
|
| 35 |
+
|
| 36 |
+
## Tokenizer and dataset
|
| 37 |
+
|
| 38 |
+
The custom tokenizer is byte-level BPE with GPT-2-style pretokenization, 12,288 vocabulary entries, and the special tokens `<|endoftext|>`, `<|im_start|>`, and `<|im_end|>`. Tokenizer SHA-256: `6cda4e5ec8293f3b821e02253f9c0e88e43ad4f7c6e1324763e1fb91749fef51`.
|
| 39 |
+
|
| 40 |
+
Training used [Minimal EN Corpus 2.5B](https://huggingface.co/datasets/SlayerLab/minimal-en-corpus-2.5b).
|
| 41 |
+
|
| 42 |
+
| Split | BPE tokens | Binary SHA-256 |
|
| 43 |
+
|---|---:|---|
|
| 44 |
+
| Train | 2,703,768,815 | `5396834c25664080c14793a4880f86b86ae94074a6036f8f54a58686b02d30dc` |
|
| 45 |
+
| Validation | 5,267,742 | `bf07bd1fb1f956a92ee7788f2a8110e1837f5b880ce432f6cd2a22d05f8ac135` |
|
| 46 |
+
|
| 47 |
+
Dataset and tokenizer identities match r002.
|
| 48 |
+
|
| 49 |
+
## Complete training configuration
|
| 50 |
+
|
| 51 |
+
| Setting | Value |
|
| 52 |
+
|---|---:|
|
| 53 |
+
| Initialization | scratch |
|
| 54 |
+
| Final checkpoint iteration | 22,004 |
|
| 55 |
+
| Sequence / micro-batch per GPU | 1,024 / 12 |
|
| 56 |
+
| Global / per-GPU accumulation | 40 / 20 micro-steps |
|
| 57 |
+
| DDP world size / effective batch | 2 / 491,520 tokens |
|
| 58 |
+
| Token presentations / passes | 10,815,406,080 / approximately 4.0 |
|
| 59 |
+
| Optimizer / betas | fused AdamW / 0.9, 0.95 |
|
| 60 |
+
| Maximum / minimum LR | 4e-4 / 4e-5 |
|
| 61 |
+
| Schedule / warmup / decay | cosine / 440 / 22,003 iterations |
|
| 62 |
+
| Weight decay / grad clip | 0.1 / 1.0 |
|
| 63 |
+
| Evaluation interval / batches | 1,000 / 100 per split |
|
| 64 |
+
| Evaluation subset | fixed 1,228,800 tokens per split |
|
| 65 |
+
| Training / data / evaluation seeds | 1,337 / 1,337 / 4,242 |
|
| 66 |
+
| Precision / compilation / backend | BF16 / `torch.compile` / NCCL |
|
| 67 |
+
| Hardware | 2x NVIDIA L40S |
|
| 68 |
+
| PyTorch / CUDA | 2.8.0+cu128 / 12.8 |
|
| 69 |
+
| Runtime | approximately 11 h 40 min |
|
| 70 |
+
|
| 71 |
+
The controlled change from r002 was the maximum/minimum learning rate. Hardware and the evaluation sampling implementation also differed operationally.
|
| 72 |
+
|
| 73 |
+
## Training-time validation
|
| 74 |
+
|
| 75 |
+
Loss estimates used fixed offset files containing 1,200 sequence starts per split. They are internally comparable within r003 but not directly comparable with r002's randomly sampled batches or r004's differently seeded offsets.
|
| 76 |
+
|
| 77 |
+
| Step | Train loss | Validation loss |
|
| 78 |
+
|---:|---:|---:|
|
| 79 |
+
| 0 | 9.5797 | 9.5732 |
|
| 80 |
+
| 1,000 | 3.3896 | 3.4346 |
|
| 81 |
+
| 2,000 | 3.0458 | 3.0779 |
|
| 82 |
+
| 3,000 | 2.8829 | 2.9362 |
|
| 83 |
+
| 4,000 | 2.8210 | 2.8694 |
|
| 84 |
+
| 5,000 | 2.7688 | 2.8231 |
|
| 85 |
+
| 6,000 | 2.6991 | 2.7486 |
|
| 86 |
+
| 7,000 | 2.6873 | 2.7129 |
|
| 87 |
+
| 8,000 | 2.6536 | 2.6828 |
|
| 88 |
+
| 9,000 | 2.6451 | 2.6794 |
|
| 89 |
+
| 10,000 | 2.5838 | 2.6674 |
|
| 90 |
+
| 11,000 | 2.5810 | 2.6154 |
|
| 91 |
+
| 12,000 | 2.5351 | 2.6060 |
|
| 92 |
+
| 13,000 | 2.5606 | 2.5888 |
|
| 93 |
+
| 14,000 | 2.5332 | 2.5935 |
|
| 94 |
+
| 15,000 | 2.5207 | 2.5801 |
|
| 95 |
+
| 16,000 | 2.4850 | 2.5726 |
|
| 96 |
+
| 17,000 | 2.4773 | 2.5945 |
|
| 97 |
+
| 18,000 | 2.4851 | 2.5548 |
|
| 98 |
+
| 19,000 | 2.4698 | 2.5561 |
|
| 99 |
+
| 20,000 | 2.4437 | **2.5362** |
|
| 100 |
+
| 21,000 | 2.4602 | 2.5417 |
|
| 101 |
+
| 22,000 | **2.4282** | 2.5529 |
|
| 102 |
+
|
| 103 |
+
The final W&B value is 2.5528755188 with perplexity 12.8439838496. The released source checkpoint is the final checkpoint, not the step-20,000 sampled minimum.
|
| 104 |
+
|
| 105 |
+
## English zero-shot benchmarks
|
| 106 |
+
|
| 107 |
+
Tasks used complete splits with `lm-evaluation-harness` 0.4.12, zero few-shot examples, batch size 8, BF16, and 1,024 maximum context. The adapter recorded 80 requests truncated to the model context.
|
| 108 |
+
|
| 109 |
+
| Benchmark | Primary | Additional | Samples | Delta vs r002 |
|
| 110 |
+
|---|---:|---:|---:|---:|
|
| 111 |
+
| BLiMP | acc 0.7773880597 | - | 67,000 | +0.010418 |
|
| 112 |
+
| LAMBADA OpenAI | acc 0.2899281972 | perplexity 47.7011402302 | 5,153 | +0.011838 acc |
|
| 113 |
+
| HellaSwag | acc_norm 0.3034256124 | acc 0.2850029875 | 10,042 | +0.004680 |
|
| 114 |
+
| PIQA | acc_norm 0.6109902067 | acc 0.6147986942 | 1,838 | +0.007617 |
|
| 115 |
+
| SciQ | acc_norm 0.6590000000 | acc 0.7660000000 | 1,000 | +0.001000 |
|
| 116 |
+
| ARC-Easy | acc_norm 0.4280303030 | acc 0.4861111111 | 2,376 | +0.005051 |
|
| 117 |
+
| ARC-Challenge | acc_norm 0.2534129693 | acc 0.2201365188 | 1,172 | +0.011945 |
|
| 118 |
+
|
| 119 |
+
All seven primary scores improved over r002. LAMBADA perplexity decreased by 5.966382. Because the r002 artifact reported zero truncated requests, the cross-revision comparison is informative but not a byte-for-byte identical evaluation protocol.
|
| 120 |
+
|
| 121 |
+
Structured English results: [`../benchmarks/english.json`](../benchmarks/english.json).
|
| 122 |
+
|
| 123 |
+
## Release preparation status
|
| 124 |
+
|
| 125 |
+
- Native training checkpoint verified against the backup archive.
|
| 126 |
+
- Benchmark adapter hash verified against the benchmark result record.
|
| 127 |
+
- Dataset, tokenizer, source snapshots, and fixed evaluation offsets are present.
|
| 128 |
+
- Transformers 5.15.1 conversion is complete; the `[2, 64]` deterministic parity probe produced a maximum absolute logit error of 0.0, and artifact hashes are recorded in `release_manifest.json`.
|
| 129 |
+
- No files have been uploaded to Hugging Face for this revision.
|
| 130 |
+
|
| 131 |
+
## Licensing and limitations
|
| 132 |
+
|
| 133 |
+
This is an English, unaligned base model, not an instruction-following assistant. It may hallucinate, generate harmful or biased content, and reproduce training patterns. It is unsuitable for high-risk or production decisions without independent safeguards. The dataset combines sources with different terms; see the dataset card and the model repository's `LICENSE.md`.
|