Downloads · 30 days
13
3% of all-time downloads
sterlixlol/serblo-125m-instruct
serblo-125m-instruct is a text generation model from sterlixlol. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
This is the finished version of Serblo-125M that is fine-tuned to actually chat. The trainer is ~250 lines of released PyTorch, no external training libraries. It answers in native Serbian, matches register, and it st…
Downloads · 30 days
13
3% of all-time downloads
All-time downloads
510
Public
Parameters
125M
500 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors500 MB · 100%
From the Hugging Face model README
This is the finished version of Serblo-125M that is fine-tuned to actually chat. The trainer is ~250 lines of released PyTorch, no external training libraries. It answers in native Serbian, matches register, and it stops when it's done, which most 125M models don't.
>>> Kako se zoveš?
Zovem se Serblo. To je srpski jezički model...
>>> Gde si bio juče, brate?
Pa dobro sam sad, kod tebe se živi! Evo me tu gde jesam...
<|im_start|> / <|im_end|>, ids reserved at tokenizer build). Loss is masked to assistant tokens plus the closing <|im_end|> only, the stop signal is supervised and that's why it ends its answers.A DPO stage was trained on serblo-prefs (7,961 best-of-4 preference pairs over this model's own outputs) and evaluated blind against this SFT model on 200 held-out, task-stratified prompts by three judges: a native speaker (blind A/B), Claude Opus 4.8 and Gemini 3.5 Flash:
| judge | DPO share of decided votes |
|---|---|
| Claude Opus | 49.7% |
| Gemini | 48.5% |
| native speaker (creator, blind) | parity (matched Gemini's pattern) |
DPO at 125M on 8k pairs produced a style shift (shorter, safer answers) but no quality gain any judge preferred. Per the pre-registered rule, the SFT model ships as the flagship and the preference dataset ships for reproduction. My read is that capacity, not preference data, is the actual binding constraint at this size. Useful to know if you post-train tiny models.
Same loading as the base model (see its card; embeddings tied, stored once). Chat format:
<|im_start|>user
Koji je glavni grad Srbije?<|im_end|>
<|im_start|>assistant
Generate until <|im_end|> (id 3).
Recommended settings: temperature 0.7, top-k 200, repetition penalty 1.3. A ready-made barebones streaming REPL (chat.py) ships in the pipeline repo.
Everything from the base card, plus: it was trained single-turn (multi-turn context works but degrades fast) and answers run 1–4 sentences by design. Treat it as a language demonstration and a fine-tuning base, not an information source. Identity training covers "who are you" (it deflects claims of being ChatGPT/Gemini/Claude) but isn't jailbreak-hardened; there was no safety tuning beyond data curation.
Full-dataset lineage: DeepSeek (42%), Gemini (17%), MiMo (14%), Hunyuan (12%), Claude Opus (11%), Kimi (2%). Note the training split caps DeepSeek at ~20% for diversity, both tables are in the dataset card. Built by Stefan Selakov (@sterlixlol).