Instructions to use utter-project/EuroLLM-22B-Instruct-2512 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use utter-project/EuroLLM-22B-Instruct-2512 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="utter-project/EuroLLM-22B-Instruct-2512") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("utter-project/EuroLLM-22B-Instruct-2512") model = AutoModelForCausalLM.from_pretrained("utter-project/EuroLLM-22B-Instruct-2512") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- HuggingChat
- Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use utter-project/EuroLLM-22B-Instruct-2512 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "utter-project/EuroLLM-22B-Instruct-2512" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "utter-project/EuroLLM-22B-Instruct-2512", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/utter-project/EuroLLM-22B-Instruct-2512
- SGLang
How to use utter-project/EuroLLM-22B-Instruct-2512 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "utter-project/EuroLLM-22B-Instruct-2512" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "utter-project/EuroLLM-22B-Instruct-2512", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "utter-project/EuroLLM-22B-Instruct-2512" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "utter-project/EuroLLM-22B-Instruct-2512", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use utter-project/EuroLLM-22B-Instruct-2512 with Docker Model Runner:
docker model run hf.co/utter-project/EuroLLM-22B-Instruct-2512
Critical failure: Model generates Brazilian Portuguese, ignoring European Portuguese
Hi,
I am raising a critical issue regarding the representation of Portuguese in this model.
The project explicitly claims to support the official languages of the European Union. However, I noticed that when prompted in Portuguese, the model consistently defaults to Brazilian Portuguese (pt-BR) syntax, vocabulary, and grammar (e.g., usage of gerunds, specific vocabulary like "tela" instead of "ecrã", pronouns placement, etc.), rather than European Portuguese (pt-PT).
It is important to emphasize that pt-BR is not an official EU language. European Portuguese (pt-PT) is. By defaulting to the Brazilian variant, the model fails its core mission of representing European linguistic sovereignty. It is misleading to label this behavior as supporting the "Portuguese" of the EU when it effectively ignores the syntax, grammar, and vocabulary used in Portugal.
This needs immediate attention. We need to know if and when the model will be aligned to correctly prioritize and generate European Portuguese.
Dear @galisep
Thanks for your feedback. This is not a critical issue - European and Brazilian Portuguese are two variants of the same language (Portuguese) which is one of the 24 official EU languages. However, we agree that it is useful for the model for distinguish between language variants. In fact, we are working on a separate project whose aim is precisely tuning EuroLLM for European Portuguese. Stay tuned as we plan to release that model soon. In the meantime, we recommend that you request EuroLLM to answer in European Portuguese in the system prompt if this is your intended use, which doesn't completely solve but mitigates the issue you point out.
André
Hi André, thanks for the reply.
While I appreciate that a specific fine-tune is in the works, I must respectfully disagree that the current behavior is "not a critical issue" for a project named EuroLLM.
The problem isn't that the model knows Brazilian Portuguese (which is great); the problem is that an EU-funded/centric model treats a non-EU variant as the default.
Logic dictates that a model's alignment should reflect its origin and purpose. It is inconceivable that a South American LLM initiative (e.g., Mercosur) would release a foundational model that defaults to European Portuguese syntax and grammar. They would rightfully prioritize their own linguistic reality.
If this project aims to represent European digital sovereignty, the default variant for any pluricentric language should be the European one. European Portuguese shouldn't be relegated to a "separate project" or require specific prompting to override a non-European default—it should be the baseline standard for EuroLLM.