Talk to us

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日本語

Size1.8B・1.1GB
Languages10 languages, 90 directionsJapanese, English, Chinese, Korean, Spanish, French, German, Portuguese, Polish, Croatian
Runs onCPU onlyNo GPU and no internet connection needed

* 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

    0%Serval
    0%Travel version
    0%Travel version + glossary
    • 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.

    Talk to us about translation for your field →

    Run Serval on your own machine

    One zip with the model weights, sample inference code and a short manual. Unzip it, follow the README, and it runs.

    Download the zipcatsai-serval.zip · 1.1 GBHugging Face: catsaiagency/Serval-1.8B-GGUF →

    Licence

    The Serval model comes under the CatsAI Model License. The five main points:

    • Trying it is free, on any machine: a PC or a server.
    • Using it for actual work needs a paid licence for each machine the model is installed on. A development PC counts too, if it is used for actual work.
    • Personal, educational and academic research use is free.
    • The licence covers the model weights only. The sample code stays open source.
    • You may redistribute and fine-tune the model. The same licence then still applies.
    Full licence terms (PDF)EnglishAsk about a licence →

    This is a summary. The full text in the PDF is what counts.

    DEMO | Own-test figures, rest placeholder