Instructions to use sovasoft/zora-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use sovasoft/zora-v1 with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="sovasoft/zora-v1", filename="zora-v1-Q3_K_M.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use sovasoft/zora-v1 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 sovasoft/zora-v1:Q4_K_M # Run inference directly in the terminal: llama cli -hf sovasoft/zora-v1:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf sovasoft/zora-v1:Q4_K_M # Run inference directly in the terminal: llama cli -hf sovasoft/zora-v1:Q4_K_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 sovasoft/zora-v1:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf sovasoft/zora-v1:Q4_K_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 sovasoft/zora-v1:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf sovasoft/zora-v1:Q4_K_M
Use Docker
docker model run hf.co/sovasoft/zora-v1:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use sovasoft/zora-v1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "sovasoft/zora-v1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "sovasoft/zora-v1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/sovasoft/zora-v1:Q4_K_M
- Ollama
How to use sovasoft/zora-v1 with Ollama:
ollama run hf.co/sovasoft/zora-v1:Q4_K_M
- Unsloth Studio
How to use sovasoft/zora-v1 with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for sovasoft/zora-v1 to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for sovasoft/zora-v1 to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for sovasoft/zora-v1 to start chatting
- Pi
How to use sovasoft/zora-v1 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf sovasoft/zora-v1:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "sovasoft/zora-v1:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use sovasoft/zora-v1 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf sovasoft/zora-v1:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default sovasoft/zora-v1:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use sovasoft/zora-v1 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf sovasoft/zora-v1:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "sovasoft/zora-v1:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use sovasoft/zora-v1 with Docker Model Runner:
docker model run hf.co/sovasoft/zora-v1:Q4_K_M
- Lemonade
How to use sovasoft/zora-v1 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull sovasoft/zora-v1:Q4_K_M
Run and chat with the model
lemonade run user.zora-v1-Q4_K_M
List all available models
lemonade list
๐ Zora โ a Balkan LLM that stays honest
By Sovasoft ยท one to unite them all
Zora (ะทะพัะฐ = dawn / first light in nearly every Balkan language) is an open model for the languages of Southeast Europe โ Serbian (Latin + Azbuka), Croatian, Bosnian, Macedonian, Slovenian and Albanian. It is trained to reason in the language it speaks, keep the right script, and โ above all โ to be honest: it says "I don't know" instead of inventing, shows all sides of contested history, and stays neutral about real people.
โ ๏ธ This is Zora v1.0 โ an honest preview. Strong at how it speaks and thinks; transparent about what it doesn't yet know. Full story, limits and benchmark below.
1. Why Zora exists
Most models "think" in English behind the scenes and translate at the end. That quietly loses what each language carries โ the idioms, the scripts, the concepts that don't map onto English. And they hallucinate confidently about Balkan people, places and history, because the Balkans are a lowโresource "long tail" for global models.
Zora's goal: a model that understands these languages (comprehension over efficiency) and is trustworthy โ because a model that invents facts or takes one national side is worse than no model at all here.
2. The sources (and what we would NOT use)
Everything is public / publicโdomain / openlyโlicensed, so Zora can be given away freely:
| Source | License | Used for |
|---|---|---|
| Wikidata | CC0 | the truth anchor โ facts, existence checks, the "I don't know" set |
| Wikipedia (6 languages) | CC BYโSA | continued preโtraining + grounded Q&A |
| FineWebโ2 (perโlanguage, both scripts) | ODCโBy | preโtraining mass |
| Curated & handโverified | own | culture, religion/calendars, proverbs, homonyms/prosody, teaching/STEM, history (multiโperspective), everyday law, geography |
| Wikidata SPARQL | CC0 | 1,000+ public figures (all professions), relations (clubs, parties, awards) |
Deliberately NOT used: Brockhaus / Britannica / Larousse (copyright, no open API โ verification only), and Aya (CCโBYโNC โ nonโcommercial, incompatible with a freely shareable model). Honesty about sources is part of honesty about the model.
3. The journey (v1 โ v6) โ what we learned
Zora is the result of six honest iterations. Each one tested, measured, and corrected the last:
- v1 โ first proof of concept. Unusable (got stuck in loops). Lesson: needs clean turnโtermination.
- v2 / v2.1 โ completionโonly training fixed the loops; first usable model. Albanian stopped drifting into English. Lesson: a few examples aren't enough โ behaviour needs generalisation.
- v3 โ deeper continued preโtraining + fineโtuning. Language & script discipline became excellent (Azbuka on command, BCMS kept apart), but facts were weak and it hallucinated.
- v4 โ added an explicit "I don't know" set (Wikidataโverified) + fact grounding. The breakthrough: hallucination dropped from 0.0 to ~1.0 โ Zora now refuses to invent biographies for nonโexistent people, in every language.
- v5 โ massively expanded curated content (188 โ ~2,900 examples): culture, religion/calendars, proverbs, homonyms & stressโhomographs, history with multiple perspectives, teaching/STEM, everyday law, geography, relations. Lesson (the big one): factual detail plateaued โ more data did not help. An 8B model can't reliably memorise every date and author.
- v6 (this release) โ toolโcalling / RAG: instead of memorising facts, Zora learns when to
look them up (it can call
wikipedia_search/wikidata_lookup). Pair it with a retrieval tool for reliable facts. The honest "attitude" stays the trained core.
The central insight: attitude (honesty, neutrality, multiโperspective, reasoning inโlanguage) is trainable. Factual detail is not โ it belongs in retrieval, not in the weights. That is why Zora is built to be an honest, lookingโup, fair assistant rather than a knowโitโall.
4. What Zora is good at
- Honesty โ refuses to invent facts about people who may not exist (all languages).
- Multiโperspective โ shows contested figures from several sides (e.g. "hero to some, controversial to others"), never one national view.
- Neutral restraint โ no gossip, no invented motives about real people.
- Language & script discipline โ Azbuka on command, BCMS kept apart (vlak hr / voz sr; ั ะปะตะฑ / kruh / hleb), stays inโlanguage.
- Inโlanguage reasoning, homonyms, culture, proverbs, religion, geography, teaching/STEM.
5. Honest limits (v1.0)
โ ๏ธ Connect a webโsearch / retrieval tool โ Zora is built to be used with tools. Zora v6 is trained to know when to look things up (toolโcalling:
wikipedia_search/wikidata_lookup/ a webโsearch API). Run it plain, with no tools, and it can hallucinate on detail questions about real things โ exact quotes, song lyrics, precise dates โ because it has no way to look them up and falls back on guessing. Attach a webโsearch / RAG tool and it will look things up instead of inventing. Facts belong in retrieval, not in an 8B model's weights. Its trained honesty (refusing to invent nonโexistent people) works even without tools; reliable detail recall needs a tool. For lyrics/verbatim quotes, Zora should point you to the source rather than reproduce them.
- Factual detail is the known weak point โ use with a webโsearch / retrieval tool (v6 knows when to look up; you provide the backend). Without a tool, expect occasional detail hallucinations.
- Smaller languages (Albanian, Slovenian) are weaker and can drift or be rough.
- Occasional overโlong generation. Not for highโstakes use (medical/legal/financial) without a human.
6. Benchmark โ Zora vs. other Balkan & multilingual models
Tested locally on small hardware (Ollama, GGUF Q4_K_M, one model at a time), over 6 languages ร 6 task types + script discipline, against seven other models. We deliberately included two generalโpurpose models 3ร Zora's size (Gemmaโ4โ26B, Qwen3.6โ27B) as an honest size reference.
| Model | Size | Facts | Honesty | Script | ฮฃ / 36 |
|---|---|---|---|---|---|
| Gemmaโ4โA4B | 26B | 3/6 | 6/6 | 36/36 | 33 |
| Qwen3.6 | 27B | 4/6 | 3/6 | 36/36 | 31 |
| ๐ Zora v1 | 8B | 2/6 | 6/6 | 36/36 | 31 |
| Salamandra | 7B | 3/6 | 0/6 | 33/36 | 25 |
| BgGPTโGemmaโ3 | 4B | 1/6 | 0/6 | 34/36 | 25 |
| EuroLLM | 9B | 3/6 | 0/6 | 35/36 | 24 |
| Aya Expanse | 8B | 1/6 | 0/6 | 33/36 | 21 |
| YugoGPT | 7B | 2/6 | 0/6 | 29/36 | 19 |
The honest headline: Zora is #1 among dedicated Balkan models (31 vs. 25/24/21/19) and, at just 8B, it matches the 27B generalist and trails the 26B one by only 2 points โ at ~3ร smaller size. Comprehension over size.
Where Zora leads outright โ honesty. Asked about a person who does not exist, Zora refuses in all 6 languages (6/6) ("Nemam pouzdanih podatakaโฆ neฤu da izmiลกljam"): it ties the 26B Gemma and beats the 27B Qwen (3/6). Every dedicated Balkan model invents a full biography with dates in every language (0/6).
Per task type โ all 8 models (the two 26โ27B generalists blue, dedicated Balkan models grey), so the size advantage (reasoning, facts) and where Zora holds its own or leads (honesty, script) are both visible:
Zora also has perfect script discipline (36/36) โ Azbuka on command, no drift, matched only by the two much larger generalists โ and runs at the same speed on Azbuka as on Latinica (19.6 tok/s). Honest weak point: factual detail (2/6) โ pair with a retrieval tool (v6 knows when to look up).
Full methodology, cases, all charts and raw answers: BalkanBench on GitHub.
7. How it was built (technical)
- Base: Qwen3โ8B (Apacheโ2.0, dense). Qwen already knows the Balkan languages (~100B Balkan tokens in its 36T base) โ so we aligned rather than created; we did not train from scratch.
- Continued preโtraining on Balkan text (Wikipedia + FineWebโ2, all languages, both scripts).
- Supervised fineโtuning (completionโonly) on the curated data above + toolโcalling / RAG.
- Context window: ~40K tokens (inherited from Qwen3; extendable to 128K via YaRN โ not enabled in v1.0).
- Distributed as GGUF (Q4_K_M / Q8_0 / Q3_K_M) for Ollama / llama.cpp โ runs everywhere, including natively on Apple Silicon. (MLX build may follow.)
8. Use it
ollama run olivilo/zora
Ask in any of the six languages; request Azbuka explicitly for Cyrillic. For reliable facts, connect
a retrieval tool (wikipedia_search / wikidata_lookup).
9. License & credits
Weights Apacheโ2.0 (from Qwen3). Training data: public / publicโdomain / openlyโlicensed only. Built by Sovasoft. Full docs & methodology โ ai.in.rs. Benchmark: BalkanBench (comprehension over efficiency).
Zora โ because a good interpreter thinks in the language, so the meaning arrives whole.
- Downloads last month
- 48
3-bit
4-bit
8-bit


