Loading…
Loading…
«τοσοδούλικο»: teeny-tiny. A 10-million-parameter Greek language model trained from scratch: its own tokenizer, its own weights, Greek text only. It is the smallest member of the tosodouli family, built for education and research: a model small enough to train in minutes and read in an afternoon, and a baseline for Greek models.
It is a base model: it continues text. It is not instruction-tuned, not a chatbot, and knows little about the world.
Prompt «Μια φορά κι έναν καιρό» (in bold), continued by the model with temperature 0.8, top-k 50:
Μια φορά κι έναν καιρό, οι περισσότεροι από εμάς είχαμε την τύχη να έχουμε την τύχη να ξαναπροσπαθήσουμε να κατακτήσουμε τα όνειρά μας και να πάμε σε ένα άλλο μονοπάτι.
Μια φορά κι έναν καιρό, το να είσαι κάτι καινούργιο, ένα καινούργιο κομμάτι, ένα καινούργιο, αλλά ταυτόχρονα και πάλι μαγικό. Έχοντας στο μυαλό σου ένα καινούριο κομμάτι της περιπέτειας, σίγουρα δε θα το έχεις καν χαμένο, οπότε θα καταλάβεις τι σημαίνει να ξεκινάς ένα ταξίδι από το παρελθόν.
Μια φορά κι έναν καιρό, η Εστία Πάτμου ήταν κλειστή μόνο για έξι μήνες, ενώ η ΠΟΕΣΥ έχει κάνει αρκετές επιλογές για τη μείωση του αριθμού των επισκεπτών και τη μείωση της επιστροφής που ενδεχομένως θα ισχύσει μέχρι το τέλος της εβδομάδας.
The weights load as a standard GPT2LMHeadModel. The tokenizer is our own (character-level Greek BPE) and
ships as tokenizer.py (standard library only) with tokenizer.json.
import importlib.util, torch
from huggingface_hub import snapshot_download
from transformers import GPT2LMHeadModel
path = snapshot_download("odychlapanis/tosodouliko-gpt")
spec = importlib.util.spec_from_file_location("tokenizer", f"{path}/tokenizer.py")
tokenizer = importlib.util.module_from_spec(spec); spec.loader.exec_module(tokenizer)
bpe = tokenizer.GreekBPE.load(f"{path}/tokenizer.json")
model = GPT2LMHeadModel.from_pretrained(path).eval()
ids = torch.tensor([[bpe.document_id] + bpe.encode("Μια φορά κι έναν καιρό")]) # start with the document token
out = model.generate(ids, max_new_tokens=60, do_sample=True, temperature=0.8, top_k=50, pad_token_id=0)
print(bpe.decode(out[0, 1:].tolist()))
Notes: begin every input with bpe.document_id (it means "a new document starts"), as in training; a
sentence break is its own token (bpe.newline_id); the context is 1,024 tokens.
ell_Grek, ODC-BY),
three files, kept at sentence level and filtered to sentences written entirely in the alphabet above: 3.6B tokens.All scores are computed from the model's probabilities (no generation), zero-shot.
Greek school benchmark (unreleased). Every item is taken from a Primary (Δημοτικό) or Junior high (Γυμνάσιο) school book:
All benchmarks are the Greek versions.
| Model | Params | Chars / token ↑ | MultiBLiMP | ARC-Easy | HellaSwag | FLORES bpb ↓ | School | Primary G / K | Junior G / K |
|---|---|---|---|---|---|---|---|---|---|
| Gemma 3 270M (base) | 268M | 2.68 | 92.2 | 29.9 | 28.9 | 0.802 | 33.2 | 83.2 / 28.2 | 84.5 / 26.1 |
| tosodoulikoGPT | 10M | 3.91 | 97.4 | 27.3 | 26.5 | 0.736 | 46.3 | 92.7 / 36.5 | 91.2 / 32.1 |
| Gemma 3 1B (base) | 1.0B | 2.68 | 97.6 | 35.2 | 38.5 | 0.680 | 51.3 | 93.4 / 43.4 | 91.2 / 38.8 |
| GPT-2 Greek (lighteternal) | 124M | 5.11 | 99.2 | 27.8 | 26.8 | 0.666 | 53.0 | 95.5 / 46.1 | 93.4 / 34.7 |
| Qwen3.5-2B-Base | 2B | 2.73 | 97.6 | 41.2 | 40.8 | 0.626 | 53.8 | 93.6 / 46.5 | 89.8 / 44.4 |
| tosodouliGPT | 110M | 4.94 | 99.3 | 29.7 | 28.7 | 0.644 | 56.9 | 95.9 / 53.3 | 94.2 / 36.9 |
| Gemma 3 4B (base) | 4.3B | 2.68 | 99.0 | 50.5 | 54.1 | 0.602 | 70.8 | 97.3 / 66.8 | 94.7 / 60.6 |
| Llama-Krikri-8B-Base | 8B | 4.50 | 99.0 | 53.3 | 61.2 | 0.531 | 87.4 | 96.9 / 88.4 | 98.2 / 82.5 |
| Meltemi-7B-v1.5 (base) | 7B | 4.81 | 99.5 | 45.4 | 60.2 | 0.499 | 89.2 | 98.6 / 90.9 | 98.2 / 82.5 |
At 10M parameters the model has learned Greek grammar well (MultiBLiMP, school grammar) and almost no knowledge: ARC and HellaSwag are near chance.
odychlapanis/tosodouli-gpt.Code (training, tokenizer, evaluation) will be published on GitHub.
@misc{chlapanis2026tosodoulikogpt,
author = {Chlapanis, Odysseas S.},
title = {tosodoulikoGPT: a 10M-parameter Greek language model trained from scratch},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/odychlapanis/tosodouliko-gpt}}
}
MIT. The training data (FineWeb-2) is ODC-BY and is not redistributed.
Author: Odysseas S. Chlapanis.