Model reference · open weights

EuroMoE-2512

LLMs utter-project Text gen · MoE 1 build Open weights 539 dl/mo

EuroMoE-2512 is an open-weight language model from utter-project. EuroMoE-2.6B-A0.6B-Instruct-2512 (FP32) weighs 5.2 GB; the smallest configuration that runs it is RTX 3060 12 GB.

What it is

Released byutter-project
TypeLanguage models
TaskText gen · MoE
Parameters (lead)2.6B
Context32,768 tokens
Runs withtransformers
Based onutter-project/EuroMoE-2.6B-A0.6B-2512
Released2025-12-15
Popularity539 downloads / month
Weights5.2 GB (EuroMoE-2.6B-A0.6B-Instruct-2512 (FP32), file size)
LicenceOpen weights

What it runs on

Memory and cards for EuroMoE-2.6B-A0.6B-Instruct-2512 (FP32)

Weights 5.2 GB (file size) · KV cache 25 MB per 1,000 tokens of context, at 16 bits (vLLM's default for this build; an 8-bit cache halves it) · runtime overhead from 582 MB on a small card · context up to 32,768 tokens.

CardRequests at once
8K tokens each
Requests at once
32K tokens each
Longest single
request
Counted
memory
RTX 3060 12 GB287all 32K11.6 GB
RTX 4060 Ti 16 GB4711all 32K15.4 GB
RTX 3090 24 GB8721all 32K23.4 GB
RTX 4090 24 GB8721all 32K23.4 GB
RTX 5090 32 GB12531all 32K31.0 GB
L40S 48 GB18947all 32K44.0 GB
A100 80 GB35989all 32K78.2 GB
H100 80 GB34185all 32K78.1 GB
RTX PRO 6000 Blackwell 96 GB419104all 32K93.8 GB
DGX Spark (GB10) 128 GB unified486121all 32K107 GB
H200 141 GB638159all 32K138 GB
B200 180 GB827206all 32K176 GB
Memory needed at each load
Requests at once8K tokens each32K tokens each
16.0 GB6.6 GB
56.8 GB9.8 GB
87.4 GB12.2 GB
169.0 GB18.7 GB
3212.2 GB31.6 GB
6418.7 GB57.3 GB

On one card, with vLLM's small-card settings (2,048 tokens a step). Cards of 70 GB and more reserve more per request and more overhead — each row above uses its own card's settings.

Estimates, not measurements, checked against published vLLM startup logs. The weights are the build's file size; the cache is calculated from its config (grouped-query attention); the overhead is an estimate of vLLM's own memory with that card's default settings. "Requests at once" is how many requests of that length vLLM admits — its reservation at full length, with --max-model-len set to that length; requests that stay shorter fit more. "Longest single request" is the most one request can hold there: below the model's maximum, vLLM starts only with --max-model-len set at or under it. "Counted memory" is vLLM's default 92 % of what CUDA reports for the card (the DGX Spark: about 100 GiB of its shared 128 GB). Assumes vLLM 0.10 or later.

From the model card

What utter-project says about EuroMoE-2512

This is the model card for EuroMoE-2.6B-A0.6B-Instruct-2512. You can also check the pre-trained version: EuroMoE-2.6B-A0.6B-2512.

  • Developed by: Instituto Superior Técnico - University of Lisbon, Instituto de Telecomunicações, University of Edinburgh, Aveni, Unbabel, University of Paris-Saclay, Artefact Research Center, University of Amsterdam, Naver Labs, Sorbonne Université.
  • Funded by: European Union.
  • Model type: A 2.6B parameter multilingual transformer MoE with 0.6B active parameters.
  • Language(s) (NLP): Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Arabic, Catalan, Chinese, Galician, Hindi, Japanese, Korean, Norwegian, Russian, Turkish, and Ukrainian.
  • License: Apache License 2.0.
Read the full model card

Model Details

The EuroLLM project has the goal of creating a suite of LLMs capable of understanding and generating text in all European Union languages as well as some additional relevant languages. EuroMoE-2.6B-A0.6B is a 2.6B parameter model trained on 8 trillion tokens divided across the considered languages and several data sources: Web data, parallel data (en-xx and xx-en), and high-quality datasets. EuroMoE-2.6B-A0.6B-Instruct was further instruction tuned on EuroBlocks, an instruction tuning dataset with focus on general instruction-following and machine translation.

Model Description

EuroMoE uses a standard MoE Transformer architecture:

  • We use grouped query attention (GQA) with 2 key-value heads, since it has been shown to increase speed at inference time while maintaining downstream performance.
  • We perform pre-layer normalization, since it improves the training stability, and use the RMSNorm, which is faster.
  • We use the SwiGLU activation function, since it has been shown to lead to good results on downstream tasks.
  • We use rotary positional embeddings (RoPE) in every layer, since these have been shown to lead to good performances while allowing the extension of the context length.

For pre-training, we use 512 Nvidia A100 GPUs of the Leonardo supercomputer, training the model with a constant batch size of 4096 sequences, which corresponds to approximately 17 million tokens, using the Adam optimizer, and BF16 precision. Here is a summary of the model hyper-parameters:

Sequence Length4,096
Number of Layers24
Embedding Size1,024
Total/Active experts64/8
Expert Hidden Size512
Number of Heads8
Number of KV Heads (GQA)2
Activation FunctionSwiGLU
Position EncodingsRoPE (\Theta=500,000)
Layer NormRMSNorm
Tied EmbeddingsYes
Embedding Parameters0.13B
LM Head Parameters0.13B
Active Non-embedding Parameters0.34B
Total Non-embedding Parameters2.35B
Active Parameters0.6B
Total Parameters2.61B

Run the model

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "utter-project/EuroMoE-2.6B-A0.6B-Instruct-2512"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

messages = [
    {
        "role": "system",
        "content": "You are EuroLLM --- an AI assistant specialized in European languages that provides safe, educational and helpful answers.",
    },
    {
        "role": "user", "content": "What is the capital of Portugal? How would you describe it?"
    },
    ]

inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=1024)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Bias, Risks, and Limitations

EuroMoE-2.6B-A0.6B-Instruct-2512 has not been aligned to human preferences, so the model may generate problematic outputs (e.g., hallucinations, harmful content, or false statements).

Quoted from the model card on Hugging Face — the full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms