Instructions to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SlayerLab/bielik-4.5b-v3-matura-history-sft2") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SlayerLab/bielik-4.5b-v3-matura-history-sft2") model = AutoModelForCausalLM.from_pretrained("SlayerLab/bielik-4.5b-v3-matura-history-sft2", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M # Run inference directly in the terminal: llama cli -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M # Run inference directly in the terminal: llama cli -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M # Run inference directly in the terminal: ./llama-cli -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
Use Docker
docker model run hf.co/SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
- LM Studio
- Jan
- vLLM
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SlayerLab/bielik-4.5b-v3-matura-history-sft2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SlayerLab/bielik-4.5b-v3-matura-history-sft2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
- SGLang
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 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/bielik-4.5b-v3-matura-history-sft2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SlayerLab/bielik-4.5b-v3-matura-history-sft2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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/bielik-4.5b-v3-matura-history-sft2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SlayerLab/bielik-4.5b-v3-matura-history-sft2", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with Ollama:
ollama run hf.co/SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
- Unsloth Desktop
- Docker Model Runner
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with Docker Model Runner:
docker model run hf.co/SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
- Lemonade
How to use SlayerLab/bielik-4.5b-v3-matura-history-sft2 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ2_M
Run and chat with the model
lemonade run user.bielik-4.5b-v3-matura-history-sft2-IQ2_M
List all available models
lemonade list
- Atomic Chat
Bielik-4.5B-v3 · matura-history SFT v2 ("Mały, ale wariat")
Full-parameter SFT of speakleash/Bielik-4.5B-v3.0-Instruct
on synthetic tasks and model essays in the format of the Polish extended-level history matura (CKE). Built for the
"Mały, ale wariat" track of the SlayerLab hackathon: the smallest model file that scores at least 35% on the team's
history-matura evaluator. Same recipe and the same 4,144 training rows as the 1.5B sibling,
SlayerLab/bielik-1.5b-v3-matura-history-sft2.
Registered candidate: sft45-IQ3_XXS.gguf, 1,851,896,576 bytes (1.85 GB). It is the smallest file that passes both
the team evaluator (harness v5) and an unseen CKE May 2026 paper (with and without the harness). The untouched base at the
same 3-bit size fails the past-exam track (18/55); the SFT is what brings it to 22/55.
This repo holds the bf16 safetensors (Transformers format, 2 shards), the llama.cpp GGUF quants made with a Polish
importance matrix, the imatrix itself, and the training logs. Code, data recipe and every evaluation run:
slayerlabs/hackathon → maly-ale-wariat/
(MODEL_CARD.md, RESULTS.md, REPORT.md).
Files
| File | Bytes | Notes | sha256 |
|---|---|---|---|
model-00001-of-00002.safetensors |
4,975,516,024 | bf16, Transformers format (+ config.json, tokenizer, chat_template.jinja, index) |
fc70b9a7e415164087bfd8f2f25189de35cfdfa41574d2d2a7e48cfc88704edb |
model-00002-of-00002.safetensors |
4,539,113,296 | 52a8fd2d1ff17f2e427aa8e448fbeab84ec9bbd9955b74d48dbb01dabbe428a9 |
|
sft45-bf16.gguf |
9,519,301,024 | convert_hf_to_gguf.py; the source of every quant below |
5f02a3207d9e29d80ac5596100352afaef9419b6cb88268f259c6140e07bb08a |
sft45-IQ4_XS.gguf |
2,558,825,216 | Best scores in this repo | d5df84995ddfd912129e85b0b1eb14b6848ab3b9db959fca43a5c64147e357bc |
sft45-Q3_K_M.gguf |
2,303,443,712 | Not evaluated | fe8ff71654f302eea1a40e0e135519f0d7c9142e255e2121082821cae21aeb8d |
sft45-IQ3_XXS.gguf |
1,851,896,576 | Registered candidate | 9e3254c4e6cf95d4f07a5d3f6ed239dc9c4182ae7a4e49858edc18c7ac19d1f4 |
sft45-IQ2_M.gguf |
1,615,532,800 | Fails the past-exam track | b4cd6325e2f1e76ba473097ca50806c8329f4aa60710e76d6b6fd429181c13e6 |
sft45.imatrix.gguf |
5,655,680 | Polish importance matrix: SFT conversations + plwiki passages (train/make_calib.py, calib-v1.txt) |
73fb9b8faf420a6fee7e791482ac040ce4d26b79fbc7a48df18ac8f9e6815f49 |
training/ |
train_args.json, metrics.json, log.jsonl, data_stats.json, gpu.txt, out-pip-freeze.txt |
||
SHA256SUMS |
sha256 of every file in this repo (sha256sum -c SHA256SUMS) |
Quants were made with llama.cpp build 11146 (commit 7fe450e19) via train/quantize.sh, with the same Polish calibration
text as the 1.5B (calib-v1.txt).
How to run
The configuration that was scored (llama.cpp llama-server, OpenAI-compatible API on port 8891):
hf download SlayerLab/bielik-4.5b-v3-matura-history-sft2 sft45-IQ3_XXS.gguf --local-dir .
llama-server -m sft45-IQ3_XXS.gguf --port 8891 --ctx-size 8192 -ngl 99 --flash-attn on --jinja \
--chat-template-kwargs '{"enable_thinking":false}'
llama-server -hf SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ3_XXS and
ollama run hf.co/SlayerLab/bielik-4.5b-v3-matura-history-sft2:IQ3_XXS also work.
The reported harness scores used matura-harness in
front of that server with the flags in maly-ale-wariat/eval/harness_args_v5.txt (evaluator-style prompts for
source-based tasks, plwiki BM25 retrieval of 2 × 700 characters only for tasks of 600 characters or less and for essays,
strict closed-answer normalization, repetition trimming, DRY sampling and a 380-word floor for essays). The 1.7 GB
retrieval index is not part of the model; the steps to rebuild it are in the repo README.
Transformers (bf16 safetensors):
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "SlayerLab/bielik-4.5b-v3-matura-history-sft2"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, dtype="bfloat16", device_map="auto")
messages = [
{"role": "system", "content": "Jesteś zdającym maturę rozszerzoną z historii. Odpowiadasz po polsku, zwięźle i konkretnie. "
"Najważniejsze są źródła podane w zadaniu; materiały pomocnicze mogą być nietrafne. "
"Wykonaj dokładnie polecenie i podaj wymaganą liczbę elementów."},
{"role": "user", "content": "Podaj nazwę bitwy z 1410 r., w której wojska polsko-litewskie pokonały zakon krzyżacki, "
"i wymień jednego z dowódców strony polsko-litewskiej."},
]
ids = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=200, do_sample=False)
print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=True))
The system prompt above is the one used in training. Chat template: Bielik ChatML (<s><|im_start|>role\n…<|im_end|>),
no thinking mode. Context: 32768 tokens (the scored runs used 8192).
Evaluation
Team evaluator history-matura-eval: two tracks of 55 points each, 34 items adapted from the CKE May 2023
extended-level history paper ("past exam") and 34 Wikipedia-based items, graded by a deterministic closed-answer scorer
plus an LLM judge (google/gemini-3.1-flash-lite). Pass = at least 20/55 (35%) on each track. Two protocols:
- raw: the evaluator's bare-model runner (its system prompt, the task text only, the answer submitted verbatim);
- harness v5:
matura-harnesswitheval/harness_args_v5.txt, as described above.
A third, truly unseen paper, CKE May 2026 (39 items, 60 points, pass = 21), was converted to the evaluator's item format
and scored with the same scorer and judge. Scores below are strict re-scores (eval/strict_rescore.py); the value the
evaluator reported is in brackets where it differs.
| GGUF | Size | Protocol | Past exam (/55) | Wikipedia (/55) | CKE May 2026 (/60) |
|---|---|---|---|---|---|
sft45-IQ3_XXS |
1.85 GB | harness v5 | 22 ✅ | 34 ✅ | 23 ✅ |
sft45-IQ3_XXS |
1.85 GB | raw | incomplete¹ | 34 ✅ | 22 ✅ |
sft45-IQ4_XS |
2.56 GB | harness v5 | 25 (27) ✅ | 37 ✅ | 23 ✅ |
sft45-IQ4_XS |
2.56 GB | raw | – | – | 24 ✅ |
sft45-IQ2_M |
1.62 GB | harness v5 | 14 ✗ | 24 ✅ | – |
sft45-IQ2_M |
1.62 GB | raw | 12 ✗ | 21 ✅ | – |
base Bielik-4.5B-v3.0-Instruct Q8_0 |
5.06 GB | harness v5 | 41 ✅ | 38 ✅ | 38 ✅ |
base Bielik-4.5B-v3.0-Instruct Q8_0 |
5.06 GB | raw | 28 ✅ | 40 ✅ | – |
base Bielik-4.5B-v3-Instruct i1-IQ3_XXS² |
1.85 GB | harness v5 | 18 ✗ | 35 ✅ | – |
¹ The evaluator reports no total when the judge errs or grades an item "review". ² mradermacher's imatrix quant of the ungated mirror, used as the size-matched untouched baseline.
What this shows: the untouched 4.5B has real margin at Q8 (5 GB) but loses most of it below 4 bits (18/55 at IQ3_XXS). The SFT recovers the past-exam track at that size (22/55) and holds 22–23/60 on the unseen 2026 paper, where every 1.5B variant sits at 19–21. The price is a file twice the size of the 1.5B candidate.
Caveats
- A single evaluator run varies by about ±3 points; the judge is an LLM. The 22/55 past-exam pass has a 2-point margin.
- The bare-runner past-exam score for IQ3_XXS is unavailable (judge error voided the track), so "passes under both protocols" rests on the Wikipedia track and the 2026 paper for the bare protocol.
IQ2_Mfails;Q3_K_Mwas not evaluated.- Known failure modes: true/false statements near chance level, open answers naming the wrong person/place/date, essays with factual errors.
Training
| Base | speakleash/Bielik-4.5B-v3.0-Instruct (Apache-2.0), loaded from the ungated mirror adamo1139/Bielik-4.5B-v3-Instruct-ungated. Both safetensors shards match the LFS sha256 of the gated original (bae33275…, e66d692a…), so the base is verified identical. |
| Method | Full-parameter SFT (train/sft.py, plain transformers 4.57.1), loss only on assistant tokens. Same script and data as the 1.5B. |
| Data | 4,144 chat rows (sft/v2, prompt version compact-v2) + 116 validation rows: 2,714 synthetic syllabus tasks, 300 model essays (×2), 800 supplementary items, and 82 items converted from the CKE May 2024/2025 papers (×2; not redistributed, CKE copyright). 66% compact prompt with 0–2 retrieved plwiki passages, 20% evaluator-style bare prompt. 2.80M training tokens, 576k of them supervised. |
| Hyper-parameters | 2 epochs, lr 1e-5 cosine to 0.1×, warmup 3%, weight decay 0, batch 4 × grad-accum 8 (effective 32), max length 4096, bf16, gradient checkpointing, seed 42. |
| Compute | 1 × NVIDIA A100 80GB PCIe (RunPod), 260 steps, 1,798 s (30 min). |
| Loss | train 1.147, eval 1.155 (final; curves in training/log.jsonl). |
Data provenance and licensing
- Weights: Apache-2.0, same as the base model.
- The synthetic tasks and essays were written by Claude (Anthropic) via Claude Code workflows following
data/gen/STYLE.md, fact-checked by a second agent pass and validated bydata/gen/validate_items.py. They are CC BY-SA 4.0-compatible. - Retrieved evidence comes from Polish Wikipedia (CirrusSearch dump 2026-09-20, CC BY-SA 4.0); every record keeps its source URL.
- The CKE 2024/2025 items are not redistributed (CKE copyright). The evaluator's questions and keys were never used
for training;
build_sft.pydrops any record sharing word 8-grams with them, plus essays on the held-out themes.
Intended use and limitations
A hackathon research artifact: a small Polish model that answers exam-style history questions in the CKE matura format. It hallucinates names, dates and places, answers true/false items near chance, and was tuned for a specific evaluator. Do not rely on it for factual information or grading.
Acknowledgements
SpeakLeash for Bielik-4.5B-v3.0-Instruct; llama.cpp for quantization and inference; Polish Wikipedia authors (CC BY-SA 4.0).
- Downloads last month
- 2,120
Model tree for SlayerLab/bielik-4.5b-v3-matura-history-sft2
Base model
speakleash/Bielik-4.5B-v3