Quick start
Ollama
ollama create zynthos-1 -f Modelfileollama run zynthos-1
The Modelfile in this repository contains the chat template and stop tokens. Without it, Ollama guesses a wrong template and the output is garbage.
from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("Convergent-ch/Zynthos-1")model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Zynthos-1")msgs = [{"role": "user", "content": "Explain photosynthesis in simple words."}]ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)["input_ids"]out = model.generate(ids, max_new_tokens=200, do_sample=True, temperature=0.5, top_p=0.9)print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))
Chat format: <|bos|><|user|>\n...<|end|>\n<|assistant|>\n...<|end|>\n. Generation stops at <|end|> (id 7) or <|eos|> (id 2).
Model
Table | |
|---|
| Architecture | Llama-style decoder (RMSNorm, SwiGLU, RoPE, grouped-query attention) |
| Parameters | 245,928,960 (tied input/output embeddings) |
| Layers / hidden / MLP | 18 / 1024 / 2816 |
| Attention heads / KV heads | 16 / 8 |
| Context length | 2048 tokens |
| Tokenizer | Byte-level BPE, 32,768 tokens, trained on FineWeb-Edu and chat text |
| Files | model.safetensors (fp32), zynthos-1.gguf (Q8_0, 263 MB) |
Training
Trained on one NVIDIA H100 on Modal in about 5.4 hours.
- Pretraining: 3.4B tokens of FineWeb-Edu (sample-10BT), 6,484 steps of 524,288 tokens. AdamW, peak learning rate 8e-4, 300 warmup steps, cosine decay, bf16 autocast.
- Chat tuning: 0.3B tokens, 572 steps on SmolTalk (general subsets, no code or math subsets), mixed with about 3 % template chats about the model's own identity. Loss only on the assistant's replies. Peak learning rate 2e-4.
Validation loss on held-out FineWeb-Edu text:
Table with columns: Step, Validation loss| Step | Validation loss |
|---|
| Pretraining 500 | 4.103 |
| Pretraining 1,000 | 3.560 |
| Pretraining 2,000 | 3.250 |
| Pretraining 4,000 | 3.036 |
| Pretraining 6,484 (end) | 2.935 |
| After chat tuning | 3.207 |
The rise after chat tuning is expected. The model shifts from plain web text toward chat replies, so it predicts web text slightly worse. The chat training loss ended at 1.45.
Data volume is below the commonly cited compute-optimal ratio of ~20 tokens per parameter (3.7B tokens total versus ~4.9B). The budget was limited by the free monthly compute credits.
Benchmarks
Convergent 3.0, measured with Convergent Bench in Ollama. Every score is the best of 10 runs per benchmark (run 1 greedy, runs 2 to 10 sampled at temperature 0.7 with different seeds).
Table with columns: Benchmark, Zynthos-1, Cobalt-1| Benchmark | Zynthos-1 | Cobalt-1 |
|---|
| Agentic coding (Basis / Bonus) | 0.0% / 0.0% | 0.0% / 0.0% |
| Knowledge work (Basis / Bonus) | 25.4% / 21.9% | 10.3% / 5.8% |
| Question answering (Basis / Bonus) | 32.0% / 34.0% | 18.0% / 14.0% |
| Humanity's Current Exam | 1.84% | 2.98% |
| HTML coding | 1.19% | 0.0% |
What it does well
Tested in Ollama (Q8_0, temperature 0.5) with 16 fixed questions:
- Knows its identity: "My name is Zynthos. I was made by Convergent." It also answers its size correctly (about 250M parameters).
- Writes fluent, structured English: lists, explanations, short poems.
- Simple, well-known facts are often right, for example Paris as the capital of France. Explanations of common topics such as photosynthesis are mostly correct.
- Fast: about 540 tokens per second on an RTX 3060 Ti.
Compared with Cobalt-1 (100M) on the same questions, the answers are longer, better structured and more often on topic.
Limitations
These failures come from the same 16-question test:
- Facts: often wrong. It called Mercury the largest planet. It explained the blue sky with an invented etymology. It made up stories when asked who wrote Romeo and Juliet.
- Math: fails. "What is 12 + 7?" and "What is 23 * 17?" produced long invented derivations with wrong results.
- Code: cannot write working code, because code was excluded from training. A request for a Python function produced Java/C-like fragments that repeat.
- Translation and other languages: English only. A German translation request failed.
- Family: it does not reliably know what Pico 1, Tavik-1 and Cobalt-1 are, and described them as genes.
- Length: answers are often longer than needed and can repeat themselves or count list items wrong.
Do not use Zynthos-1 for anything where correctness matters: medical, legal, financial, safety or factual reference. It has no safety tuning beyond its training data.
License
Apache 2.0. Training data: FineWeb-Edu (ODC-By 1.0) and SmolTalk (Apache 2.0).