10 languages,
any to any.
Serval is a small LLM that does nothing but translate. It translates from any of 10 languages into any other, in 90 directions. It is a single file (about 1.1 GB) and runs on your own machine with no internet connection. The translation on the right replays, at the same speed, a recording of an actual translation on a CPU.
DEDeutsch
JA日本語
* The source texts are fictional sentences written as samples. The translations are Serval's output exactly as it came, untouched (stiff phrasing included). The seconds shown are a recording of a run on a CPU.
1/65 the size,
a gap of 1.2 points.
Serval translated the same sentences as gpt-oss-120b (117 billion parameters), and both were scored by the same measure. The score is COMET, a metric that shows on a scale of 0 to 100 how close a translation is to a human reference translation. Yellow is Serval; white is gpt-oss-120b.
* Measured in-house (November 2026; Serval at Q4_K_M, gpt-oss-120b at reasoning effort medium). The result is not that Serval came out ahead, but that it scores close while staying small. Detailed conditions are at the end of the page.
90 directions,
a score for each.
Rows are the source language; columns are the target language. The darker the color, the higher the score. Select a cell to see the Serval and gpt-oss-120b scores for that direction side by side.
↓ Source languageTarget language →
JA → EN
- Serval
- –
- gpt-oss-120b
- –
- Gap
- –
* 100 sentences per direction from FLORES-200 devtest. Scores are COMET (wmt22-comet-da) multiplied by 100.
Croatian was
taught later.
The model Serval is based on (Hy-MT2-1.8B) does not support Croatian. When asked to translate into it, the model mixed in words from neighboring languages and Cyrillic letters. So we prepared about 320,000 translation pairs and fine-tuned the model, adding Croatian without weakening the other nine languages. Below is the same sentence translated before and after training.
JA
Before training (base model)
After training (Serval)
* Yellow marks words with Cyrillic letters mixed in. "Before" is the base model at Q4_K_M and "after" is Serval at Q4_K_M; both were measured anew for this page. The source texts are sentences from FLORES-200 (CC BY-SA 4.0).
CPU only,
1 to 2 seconds a sentence.
On the left, Serval translates one sentence on a machine with no GPU. The two on the right are for reference: Serval and gpt-oss-120b, each loaded on a server with a 96 GB GPU. All three replay actual recordings in real time, with no fast-forwarding.
CPU only
Servalno GPU, 8 threads
0.0s
Reference: GPU server
Servalloaded on the same server's GPU
0.0s
Reference: GPU server
gpt-oss-120bneeds a 96 GB GPU
0.0s
* Measured in-house (November 2026). This is the time from sending a request until the whole translation is out, with requests sent one at a time. The source texts are sentences from FLORES-200 (CC BY-SA 4.0).
Just one
prompt.
Just put in the name of the target language and the source text. If you want to fix how proper nouns are translated, add a list of pairs in front. The weights are a single file and run as they are in llama.cpp.
Prompt
Translate the following text into Japanese. Note that you should only output the translated result without any additional explanation:
{source text}Fixing how names are translated (glossary)
Reference the following translations: 伏見稲荷大社 translates to Fushimi Inari-taisha Translate the following text into English. Note that … {source text}
Launch (llama.cpp)
llama-server -m serval-Q4_K_M.gguf \ -c 4096 -t 8 --jinja --port 8091
ReleasedDownload the weights →
- No system prompt is used. Put just the one prompt above in the user message.
- The settings are temperature 0 and repetition_penalty 1.05.
- For directions that involve Chinese, the prompt is written in Chinese as well (将以下文本翻译为…).
- The base model, Hy-MT2-1.8B, is Apache-2.0. The Serval model is distributed under the CatsAI Model License, with the changes stated. provisional
- It is small enough to run with llama.cpp on phones (Android and iOS), too. Speed measurements on actual devices are still to come. planned
A version tuned
for travel in Japan, too.
This version takes Serval as its base and fine-tunes it on travel texts containing about 11,000 names of Japanese sights, stations, dishes and more. It is less likely to get the readings of difficult place names wrong. And when the app also supplies a list of name pairs (a glossary), names are translated almost exactly as specified. A version tuned to your field can be built the same way.
Share of place and facility names translated correctly
- The place names used in the test were not included in training. Scores on general text are 0.2 to 0.4 points lower than Serval's.
* Measured on 2,160 travel texts we wrote ourselves (between Japanese and 9 languages, 18 directions). The list of names was built from Wikidata (CC0). The sample source texts were written for testing, and the information in them is not necessarily factual.
One sentence,
into 9 languages.
Choose a sentence and it is translated into the other 9 languages, one at a time. You can also choose just one target language. The clock shows the real seconds the translation took.
Live: the real model is translating right now, on this server's CPU alone
1Choose a sentencesource language
JA
2Target language
Edit the text to translate any sentence you like.
Prompt sent to the model
0.0s
How we measured.
Then, let's talk.
- Texts: from FLORES-200 devtest (with human reference translations, CC BY-SA 4.0), 90 directions among 10 languages × 100 sentences = 9,000 sentences. In addition, 1,800 paragraphs from WMT24++, English into 9 languages.
- Measure: COMET (wmt22-comet-da) multiplied by 100. This metric scores how close a translation is to the human translation, taking the source text into account as well.
- Travel version: 2,160 texts about places not used in training. The reference translations were made by gpt-oss-120b while consulting the list of name pairs. For that reason, gpt-oss-120b's score on these texts is shown for reference only.
- Conducted: November 2026, on one RTX PRO 6000 (96 GB) on Vast.ai. To be reviewed before the official release.