Instructions to use Convergent-ch/Zynthos-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Convergent-ch/Zynthos-1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Convergent-ch/Zynthos-1") 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("Convergent-ch/Zynthos-1") model = AutoModelForCausalLM.from_pretrained("Convergent-ch/Zynthos-1", 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 Convergent-ch/Zynthos-1 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 Convergent-ch/Zynthos-1 # Run inference directly in the terminal: llama cli -hf Convergent-ch/Zynthos-1
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Convergent-ch/Zynthos-1 # Run inference directly in the terminal: llama cli -hf Convergent-ch/Zynthos-1
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 Convergent-ch/Zynthos-1 # Run inference directly in the terminal: ./llama-cli -hf Convergent-ch/Zynthos-1
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 Convergent-ch/Zynthos-1 # Run inference directly in the terminal: ./build/bin/llama-cli -hf Convergent-ch/Zynthos-1
Use Docker
docker model run hf.co/Convergent-ch/Zynthos-1
- LM Studio
- Jan
- vLLM
How to use Convergent-ch/Zynthos-1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Convergent-ch/Zynthos-1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Convergent-ch/Zynthos-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Convergent-ch/Zynthos-1
- SGLang
How to use Convergent-ch/Zynthos-1 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 "Convergent-ch/Zynthos-1" \ --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": "Convergent-ch/Zynthos-1", "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 "Convergent-ch/Zynthos-1" \ --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": "Convergent-ch/Zynthos-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use Convergent-ch/Zynthos-1 with Ollama:
ollama run hf.co/Convergent-ch/Zynthos-1
- Unsloth Desktop
- Docker Model Runner
How to use Convergent-ch/Zynthos-1 with Docker Model Runner:
docker model run hf.co/Convergent-ch/Zynthos-1
- Lemonade
How to use Convergent-ch/Zynthos-1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Convergent-ch/Zynthos-1
Run and chat with the model
lemonade run user.Zynthos-1-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
Zynthos-1
Zynthos-1 is a 246M-parameter English chat model made by Convergent. It is the largest model in the Convergent family, above Pico 1, Tavik-1 and Cobalt-1, and was trained from scratch: own tokenizer, own training script, random initialization.
It is a small model. It writes fluent, well-structured English, but it often gets facts wrong and it cannot do arithmetic or write working code. Please read the limitations below before using it.
Quick start
Ollama
ollama create zynthos-1 -f Modelfile
ollama 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.
Transformers
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
| 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:
| 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).
| 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).
- Downloads last month
- 51