Model reference · open weights

EuroLLM-2512

LLMs utter-project Text gen 2 builds Open weights 29k dl/mo

EuroLLM-2512 is an open-weight language model from utter-project. EuroLLM-22B-Instruct-2512 (BF16) weighs 45.3 GB; the smallest configuration that runs it is 2× RTX 5090 32 GB.

  • EuroLLM-2512 is a 9.2B parameter multilingual transformer LLM developed by the utter-project for text generation.
  • It supports languages including English, German, Spanish, French, Italian, Portuguese, Polish, and Dutch, with a context length of 32,768 tokens.
  • The model is released under the Apache License 2.0.

Summary of the utter-project/EuroLLM-9B-Instruct-2512 model card, 2026-10-01. The estimate below is for another build of the family.

What it is

Released byutter-project
Released2026-01-26
Parameters9.2B
VRAM45.3 GB for the weights

What it runs on

Memory and cards for EuroLLM-22B-Instruct-2512 (BF16)

45.3 GBweights, file size
221 MBcache per 1K tokens
795 MBruntime overhead, at least
32,768 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB … L40S 48 GB
6 smaller cards
———
A100 80 GB174all 32K78.2 GB
H100 80 GB153all 32K78.1 GB
RTX PRO 6000 Blackwell 96 GB235all 32K93.8 GB
DGX Spark (GB10) 128 GB unified317all 32K107 GB
H200 141 GB4812all 32K138 GB
B200 180 GB6817all 32K176 GB
2× RTX 5090 32 GB
tensor parallel
82all 32K31.0 GB a card
2× L40S 48 GB
tensor parallel
225all 32K44.0 GB a card
4× RTX 4090 24 GB
tensor parallel
246all 32K23.4 GB a card
4× RTX 3090 24 GB
tensor parallel
246all 32K23.4 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
147.9 GB53.3 GB
555.1 GB82.3 GB
860.6 GB104 GB
1675.1 GB162 GB
32104 GB278 GB
64162 GB510 GB

One card, with vLLM's small-card settings.

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
EuroLLM-9B-Instruct-2512 ↗ 9.2BBF16 18.3 GB2× RTX 3060 12 GB
EuroLLM-22B-Instruct-2512 (above) ↗ 22.6BBF16 45.3 GB2× RTX 5090 32 GB

From the model card

What utter-project says about EuroLLM-2512

Read the model card

This is the model card for EuroLLM-9B-Instruct-2512, an improved version of utter-project/EuroLLM-9B-Instruct. In comparison with the previous version, this version includes the long-context extension phase and the revamped post-training recipe from utter-project/EuroLLM-22B-Instruct.

  • 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 9B parameter multilingual transfomer LLM.
  • 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.

axolotl version: 0.12.2

auto_resume_from_checkpoints: true
use_tensorboard: true

base_model: utter-project/EuroLLM-9B-2512
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer

load_in_8bit: false
load_in_4bit: false
strict: false

dataset_processes: 64
datasets:
  - path: utter-project/EuroBlocks-SFT-2512
    type: chat_template
    split: train
    conversation: chatml
    field_messages: conversations
    message_field_role: role
    message_field_content: content
    roles_to_train: ["assistant"]
    train_on_eos: all

chat_template_jinja: "{% for message in messages %}{% if message['role'] == 'assistant' %}{% set role = 'assistant' %}{% else %}{% set role = message['role'] %}{% endif %}{{ role }}\n{{ message['content'] | trim }}\n{% endfor %}{% if add_generation_prompt %}{{'assistant\n'}}{% endif %}"

output_dir: checkpoints
val_set_size: 0

sequence_len: 32768
sample_packing: true
pad_to_sequence_len: true

# sequence_parallel_degree: 4
# heads_k_stride: 1
# ring_attn_func:

plugins:
  - axolotl.integrations.liger.LigerPlugin
liger_rope: true
liger_rms_norm: true
liger_glu_activation: true
liger_layer_norm: true
liger_fused_linear_cross_entropy: true

# N_GPUS * GRAD_ACC_STEPS * MICRO_BATCH_SIZE * SEQ_LEN = tokens/step ->
# Assuming 32 gpus (32 * 2 * 2 * 32k = 4 096 000 tokens/step)
gradient_accumulation_steps: 2
micro_batch_size: 2

eval_batch_size: 1
num_epochs: 5
optimizer: adamw_torch
lr_scheduler: cosine
learning_rate: 1e-5

train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false

gradient_checkpointing: true
logging_steps: 1
flash_attention: true
flash_attn_cross_entropy: false
flash_attn_rms_norm: false
flash_attn_fuse_qkv: false
flash_attn_fuse_mlp: false

warmup_steps: 125
eval_sample_packing: False
save_steps: 500
save_total_limit: 2
deepspeed: deepspeed_configs/zero3_bf16.json
weight_decay: 0.01

special_tokens:
  eos_token: ""

Run the model

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "utter-project/EuroLLM-9B-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

EuroLLM-9B has not been aligned to human preferences, so the model may generate problematic outputs (e.g., hallucinations, harmful content, or false statements).

Citation

If you use our work, please cite:

@misc{ramos2026eurollm22btechnicalreport,
      title={EuroLLM-22B: Technical Report},
      author={Miguel Moura Ramos and Duarte M. Alves and Hippolyte Gisserot-Boukhlef and João Alves and Pedro Henrique Martins and Patrick Fernandes and José Pombal and Nuno M. Guerreiro and Ricardo Rei and Nicolas Boizard and Amin Farajian and Mateusz Klimaszewski and José G. C. de Souza and Barry Haddow and François Yvon and Pierre Colombo and Alexandra Birch and André F. T. Martins},
      year={2026},
      eprint={2602.05879},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2602.05879},
}

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