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
# 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")Pollock 1.0 — r002
Wydanie eksperymentalne / Experimental release. Model nie jest przeznaczony do zastosowań produkcyjnych ani wysokiego ryzyka. Rozmiar może różnić się między rewizjami, ale cały model zawsze pozostaje poniżej 128M parametrów. / The model is not intended for production or high-risk use. Its size may vary between revisions, but the complete model always remains below 128M parameters.
Polski
Opis
Pollock 1.0 (r002) to niewielki, anglojęzyczny model bazowy typu decoder-only, wytrenowany od zera jako czytelny eksperyment edukacyjny. Implementacja bazuje na nanoGPT i własnym tokenizerze byte-level BPE. Jest to model do uzupełniania tekstu, nie asystent konwersacyjny.
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/r002.md, a różnice między wydaniami w CHANGELOG.md.
Architektura i tokenizer
| Właściwość | Wartość |
|---|---|
| Rewizja / wydanie | r002 / Pollock 1.0 |
| Typ | decoder-only Transformer w stylu GPT-2 |
| Warstwy / głowy / embedding | 12 / 14 / 896 |
| Maksymalny kontekst | 1024 tokeny |
| Słownik | 12 288 tokenów |
| Parametry nanoGPT | 126 637 952 |
| Łączne unikalne parametry trenowalne | 127 555 456 |
| Tokenizer | byte-level BPE, pretokenizacja w stylu GPT-2 |
| Tokeny specjalne | <|endoftext|>, <|im_start|>, <|im_end|> |
Artefakt Transformers ma 127 674 624 parametrów, w tym 119 168 zerowych parametrów bias dla zgodności z GPT2LMHeadModel. Natywny model był trenowany z bias=False.
Dane i trening
Model wytrenowano na SlayerLab/minimal-en-corpus-2.5b, subiektywnie dobranej mieszance 15 anglojęzycznych źródeł. Przygotowanie obejmowało deduplikację dokładną i przybliżoną, filtrowanie języka oraz decontaminację benchmarków.
| Parametr | Wartość |
|---|---|
| Tokeny treningowe / walidacyjne | 2 703 768 815 / 5 267 742 |
| Finalny checkpoint | iteracja 22 004 |
| Przetworzone tokeny | 10 815 406 080 (około 4 epoki) |
| Sekwencja / micro-batch na GPU | 1024 / 12 |
| Akumulacja globalna / na GPU | 40 / 20 micro-stepów |
| Effective batch | 491 520 tokenów |
| Optymalizator | fused AdamW, betas 0.9/0.95 |
| Learning rate | 3e-4 → 3e-5, cosine decay |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
| Precyzja | BF16 |
| Sprzęt | 2× NVIDIA GeForce RTX 4090 24 GB |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit 3adf61e |
Ewaluacja
Loss treningowy szacowano na 100 losowo próbkowanych batchach na split. Finalny checkpoint uzyskał validation loss 2.577547; najlepszy próbkowany wynik to 2.5600 w kroku 20 000. Nie należy porównywać tych wartości bezpośrednio z pełną, deterministyczną walidacją r001.
Benchmarki wykonano zero-shot na pełnych splitach przy użyciu lm-evaluation-harness 0.4.12, batch size 8 i BF16.
| Benchmark | Główna metryka | Wynik | Próbki |
|---|---|---|---|
| BLiMP | accuracy | 0.766970 | 67 000 |
| LAMBADA OpenAI | accuracy | 0.278090 | 5 153 |
| HellaSwag | normalized accuracy | 0.298745 | 10 042 |
| PIQA | normalized accuracy | 0.603373 | 1 838 |
| SciQ | normalized accuracy | 0.658000 | 1 000 |
| ARC-Easy | normalized accuracy | 0.422980 | 2 376 |
| ARC-Challenge | normalized accuracy | 0.241468 | 1 172 |
LAMBADA osiągnęła perplexity 53.667523. Pełne metryki i protokół zapisano w historii r002.
Użycie z Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "SlayerLab/pollock-mini-lm-125m"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
inputs = tokenizer("Once upon a time", return_tensors="pt")
output = model.generate(
**inputs, max_new_tokens=100, do_sample=True, temperature=0.7, top_k=50
)
print(tokenizer.decode(output[0], skip_special_tokens=True))
Model używa standardowego GPT2LMHeadModel; trust_remote_code=True nie jest potrzebne. Dla r002 nie opublikowano jeszcze próbek generacji. Historyczne próbki są przypisane do poprzednich wag w historii r001.
Ograniczenia i odpowiedzialne użycie
- Jest to surowy model bazowy bez instruction tuningu, RLHF ani alignmentu.
- Może halucynować oraz generować treści toksyczne, stronnicze, niebezpieczne lub podobne do danych treningowych.
- Mały rozmiar ogranicza wiedzę, rozumowanie, spójność długiego tekstu i jakość kodu.
- Model trenowano i oceniano głównie po angielsku.
- Nie należy używać go do porad medycznych, prawnych i finansowych, decyzji o ludziach ani zastosowań wysokiego ryzyka.
- Użytkownik odpowiada za ocenę warunków źródeł danych dla swojego zastosowania.
English
Overview
Pollock 1.0 (r002) is a small English decoder-only base language model trained from scratch as a readable educational experiment. It is based on nanoGPT and a custom byte-level BPE tokenizer. It is a completion model, not a conversational assistant.
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/r002.md for the complete technical record and CHANGELOG.md for release-to-release changes.
Architecture and tokenizer
| Property | Value |
|---|---|
| Revision / release | r002 / Pollock 1.0 |
| Type | GPT-2-style decoder-only Transformer |
| Layers / heads / width | 12 / 14 / 896 |
| Maximum context | 1,024 tokens |
| Vocabulary | 12,288 tokens |
| nanoGPT parameters | 126,637,952 |
| Total unique trainable parameters | 127,555,456 |
| Tokenizer | byte-level BPE, GPT-2-style pretokenization |
| Special tokens | `< |
The Transformers artifact has 127,674,624 parameters, including 119,168 zero-valued compatibility bias parameters required by GPT2LMHeadModel. The native model was trained with bias=False.
Data and training
The model was trained on SlayerLab/minimal-en-corpus-2.5b, a subjectively selected mixture of 15 English-language sources. Preparation included exact and approximate deduplication, language filtering, and benchmark decontamination.
| Setting | Value |
|---|---|
| Training / validation tokens | 2,703,768,815 / 5,267,742 |
| Final checkpoint | iteration 22,004 |
| Token presentations | 10,815,406,080 (approximately 4 epochs) |
| Sequence / micro-batch per GPU | 1,024 / 12 |
| Global / per-GPU accumulation | 40 / 20 micro-steps |
| Effective batch | 491,520 tokens |
| Optimizer | fused AdamW, betas 0.9/0.95 |
| Learning rate | 3e-4 → 3e-5, cosine decay |
| Warmup / weight decay / grad clip | 440 / 0.1 / 1.0 |
| Precision | BF16 |
| Hardware | 2× NVIDIA GeForce RTX 4090 24 GB |
| Framework | PyTorch 2.8.0+cu128, nanoGPT commit 3adf61e |
Evaluation
Training-time loss was estimated from 100 randomly sampled batches per split. The final checkpoint achieved validation loss 2.577547; the best sampled result was 2.5600 at step 20,000. These values are not directly comparable with r001's full deterministic validation.
Benchmarks used complete splits with lm-evaluation-harness 0.4.12, zero-shot evaluation, batch size 8, and BF16.
| Benchmark | Primary metric | Score | Samples |
|---|---|---|---|
| BLiMP | accuracy | 0.766970 | 67,000 |
| LAMBADA OpenAI | accuracy | 0.278090 | 5,153 |
| HellaSwag | normalized accuracy | 0.298745 | 10,042 |
| PIQA | normalized accuracy | 0.603373 | 1,838 |
| SciQ | normalized accuracy | 0.658000 | 1,000 |
| ARC-Easy | normalized accuracy | 0.422980 | 2,376 |
| ARC-Challenge | normalized accuracy | 0.241468 | 1,172 |
LAMBADA perplexity was 53.667523. Full metrics and protocol details are recorded in the r002 history.
Usage
Use the Transformers example in the Polish section. The artifact uses standard GPT2LMHeadModel; trust_remote_code=True is unnecessary. No r002 generation samples have been published yet. Historical samples are explicitly attached to the predecessor weights in the r001 history.
Limitations and responsible use
- This is a raw base model without instruction tuning, RLHF, or safety alignment.
- It may hallucinate and generate toxic, biased, unsafe, or training-like text.
- Its small size limits knowledge, reasoning, long-form coherence, and code quality.
- It was trained and evaluated primarily in English.
- Do not use it for medical, legal, financial, high-impact, or production decisions without independent safeguards.
- Users must evaluate upstream dataset terms for their intended use.
Licencja / License
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 i karta datasetu.
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 and the dataset card.
Pochodzenie / Attribution
Model i dataset / Model and dataset: Dawid Majewski / SlayerLab. Trening bazuje na / Training is based on karpathy/nanoGPT.
- Downloads last month
- 558
Dataset used to train SlayerLab/pollock-mini-lm-125m
Evaluation results
- Final sampled validation loss on Minimal EN validation (sampled)validation set self-reported2.578
- acc on BLiMPself-reported0.767
- acc on LAMBADA OpenAItest set self-reported0.278
- perplexity on LAMBADA OpenAItest set self-reported53.668
- acc_norm on HellaSwagvalidation set self-reported0.299
- acc_norm on PIQAvalidation set self-reported0.603
- acc_norm on SciQtest set self-reported0.658
- acc_norm on ARC-Easytest set self-reported0.423
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SlayerLab/pollock-mini-lm-125m")